Automatically remove torrents according to your strategies.

## Project description

This program can help you to remove your torrents. Now you don’t need to worry about your disk space - according to your strategies, the program will check each torrent if it satisfies the remove condition; If so, delete it automatically.

This program supports qBittorrent/Transmission/μTorrent. If you like, star it :star2: :)

Readme version in other languages: 简体中文.

## Requirements

• Python 2.7 or Python 3

We recommend you to use Python 3.6 or higher version of Python.

## Quick Start

### Installation

#### Install from pip

pip install autoremove-torrents

or

#### Install from GitHub

git clone https://github.com/jerrymakesjelly/autoremove-torrents.git
cd autoremove-torrents
python3 setup.py install

In order to satisfactory your needs, you have to learn how to write a configuration file.

You can put the configuration file anywhere on your disk. The autoremove-torrents looks for config.yml in the Shell’s current working directory:

vim ./config.yml

The grammar is quite easy, for example:

my_task:
client: qbittorrent
host: http://127.0.0.1
strategies:
my_strategy:
categories: IPT
remove: seeding_time > 1209600 or ratio > 1
delete_data: true

The program will delete those torrents whose categories are IPT, seeding time is above 1209600 seconds or ratio is greater than 1. Read the documents to learn more.

### Run

autoremove-torrents

If you just want to see which torrents can be removed but don’t want to really remove them, use --view command line argument.

If you want to check whether there is any torrent can be removed every 15 minutes, the crontab can help you. Look at the example:

crontab -e

And then, add a line at the end of the file (please confirm the path of the autoremove-torrents and your program):

*/15 * * * * /usr/bin/autoremove-torrents --conf=/home/jerrymakesjelly/autoremove-torrents/config.yml --log=/home/jerrymakesjelly/autoremove-torrents/logs

The --conf indicates the path to the configuration file. The --log argument specifies the path to store the log files (Must be existed).

## Changelog

Sun, 19 June 2022: Version 1.5.4.

### Changes

• Remove outgoing port status info. (#101) (#135)
• We have confirmed a bug, which is, the outgoing port status checker will fail and report ‘portTested: http error 400: Bad Request’ when we are using Transmission and check the outgoing port status in IPv6 network.

• Since there are no configurations relying on this status, we remove it.

• Change last_activity’s behaviour. (#93) (#98) (#109)
• It won’t remove those torrents that have never been active anymore.

• These torrents that have never been active can be removed by the following configuration:
• last_activity: never or last_activity: none for last_activity condition.

• last_activity = never or last_activity = none for remove expression.

### Features

• Support equality (=) comparison in remove expression.

### Fix

• Fix a bug that Downloaded/Uploaded Size conditions and free_space/remote_free_space cannot handle decimals correctly. (#133) Thanks to @sfwn!

• Fix a bug that last_activity condition doesn’t work in Deluge 2.0.3 and above. (#119)

More changelogs

## TODO List

Depend on users’ feedback. If you have any problem, please submit issues.

## Project details

Uploaded source
Uploaded py3