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 :sparkles: :)
Readme version in other languages: 简体中文.
Requirements
Python 2.7 or Python 3
That’s all. It’s a simple but smart program.
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
Write your configuration file
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 username: admin password: adminadmin 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. Visit Wiki 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.
Setting up scheduled tasks
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).
Screenshot
Changelog
Thu, 6 Jun 2019: Version 1.4.5.
Added status StalledUpload and StalledDownload. (#34)
Wed, 22 May 2019: Version 1.4.4.
Fixed a bug that when condition seed_size / maximum_number is used together with condtion ratio / create_time / seeding_time, the task will fail. (#33)
New feature: if the content of filter has only one line, now it is allowed to write down directly without using list.
Sun, 19 May 2019: Version 1.4.3.
Supported Python 2.7. (#29)
Stopped supporting Python 3.4. (kennethreitz/requests#5092)
Mon, 13 May 2019: Version 1.4.2.
Fixed missing parser files. (#32)
Fixed association of operators. (#32) Now the operator and and or are guaranteed to be left-associative.
Mon, 6 May 2019: Version 1.4.1.
Fixed missing dependency: ply.
Fixed the warning of duplicate definition in condition remove.
Mon, 6 May 2019: Updated Wiki.
Added the description of remove condition into Simplified-Chinese Wiki.
Wed, 1 May 2019: Version 1.4.0.
- Removed torrent status restriction in seeding_time and ratio condition (#19).
Before this version, seeding_time and ratio condition will only remove those torrents whose status are seeding. We set this restriction to provide a method for users to avoid a torrent being removed by changing its status (e.g. pause seeding).
But now we have a status filter, this restriction becomes unnecessary, and its behavior may be different from users expectation.
- Supported custom remove expressions (#15).
Now we can write the condition that we want directly and clearly, e.g. remove: ratio > 1.
Composite condition expressions are also supported, e.g. remove: (seeding_time < 86400 and ratio > 1) or (seeding_time > 86400 and ratio > 3). Visit Wiki to learn more.
The old remove conditions are still available.
Wed, 17 Apr 2019: Version 1.3.0.
Fixed bug: Program gets stuck when there are a lot of torrents in qBittorrent client (Issue #22).
Fixed bug: Duplicated logging in status filter.
- Log system was updated:
Log path can be specified (Use --log argument, e.g. --log=/home/jerrymakesjelly/logs) (Issue #23).
Logs are stored in different files by day (Format: autoremove.%Y-%m-%d.log).
Changed the word seed to torrent (Issue #25).
Removed uncessary debug messages.
Mon, 10 Jan 2019: Version 1.2.5.
Fixed bug: Incorrect number of torrents in multiple strategies (Issue #10, thanks to @momokoo for the report and PR).
Fixed bug: Incorrect number of torrents in qBittorrent (Issue #13).
Thu, 31 May 2018: Version 1.2.4.
Fixed startup failure.
Wed, 30 May 2018: Version 1.2.3. Added new features.
Allowed to use environment variables to specify host, username and password.
Allowed username and password to be empty (or one of them is empty) to log in a WebUI without username and/or password.
Now the program won’t quit directly when a task goes failed.
Sun, 27 May 2018: Version 1.2.2. Added new features :smile:
Added new filter: Torrent Status
Added new condition: Maximum number of torrents
Sat, 26 May 2018: Version 1.2.1. Fixed issue in setup.py.
Sat, 26 May 2018: Version 1.2.0. Refactoring was completed, and was published to PyPI.
New features will be added soon.
Now we can install it via pip.
Mon, 14 May 2018: Version 1.1.0. Created setup.py.
You can now use the autoremove-torrents command directly instead of python3 main.py.
Wed, 28 Mar 2018: (Correct document) The delete_data field shouldn’t be indented.
Thu, 22 Mar 2018: First version :bowtie:
TODO List
Depend on users’ feedback.
Support Deluge and rtorrent in the future
Add remove condition: Disk free space
Add remove condition: Max/Min average UL/DL speed
If you have any problem, please submit issues.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file autoremove-torrents-1.4.5.tar.gz
.
File metadata
- Download URL: autoremove-torrents-1.4.5.tar.gz
- Upload date:
- Size: 16.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.7.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | da2832a40c6c91fa3de663768814818d57908743b3fcf565bdfed88b35347854 |
|
MD5 | a3c59d608245766c922f688f1f95fb7a |
|
BLAKE2b-256 | 9dfcfdd4c677899d96a1e7d07fb385fa2464afa45859d490cf7941ae49066077 |