{ "info": { "author": "jerrymakesjelly", "author_email": "ganzhaoyu037@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Topic :: Utilities" ], "description": "Auto Remove Torrents\n======================\n|PyPI| |TravisCI| |Coverage| |Codacy| |Downloads| |MIT|\n\nThis 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.\n\nThis program supports qBittorrent/Transmission/\u03bcTorrent. If you like, star it :sparkles: :)\n\nReadme version in other languages: `\u7b80\u4f53\u4e2d\u6587`_.\n\n.. _\u7b80\u4f53\u4e2d\u6587: https://github.com/jerrymakesjelly/autoremove-torrents/blob/master/README-cn.rst\n\n.. |Codacy| image:: https://api.codacy.com/project/badge/Grade/6e5509ecb4714ed697c65f35d71cff65\n :target: https://www.codacy.com/app/jerrymakesjelly/autoremove-torrents?utm_source=github.com&utm_medium=referral&utm_content=jerrymakesjelly/autoremove-torrents&utm_campaign=Badge_Grade\n.. |TravisCI| image:: https://www.travis-ci.org/jerrymakesjelly/autoremove-torrents.svg?branch=master\n :target: https://www.travis-ci.org/jerrymakesjelly/autoremove-torrents\n.. |Coverage| image:: https://api.codacy.com/project/badge/Coverage/6e5509ecb4714ed697c65f35d71cff65 \n :target: https://www.codacy.com/app/jerrymakesjelly/autoremove-torrents?utm_source=github.com&utm_medium=referral&utm_content=jerrymakesjelly/autoremove-torrents&utm_campaign=Badge_Coverage\n.. |MIT| image:: https://img.shields.io/badge/license-MIT-blue.svg\n :target: https://github.com/jerrymakesjelly/autoremove-torrents/blob/master/LICENSE\n.. |PyPI| image:: https://badge.fury.io/py/autoremove-torrents.svg\n :target: https://badge.fury.io/py/autoremove-torrents\n.. |Downloads| image:: https://img.shields.io/pypi/dm/autoremove-torrents.svg\n :target: https://pypi.org/project/autoremove-torrents/\n\nRequirements\n-------------\n* Python 2.7 or Python 3\n\nThat's all. It's a simple but smart program.\n\n\nQuick Start\n-------------\nInstallation\n+++++++++++++++++++\nInstall from pip\n^^^^^^^^^^^^^^^^^\n::\n\n pip install autoremove-torrents\n\nor\n\nInstall from GitHub\n^^^^^^^^^^^^^^^^^^^^\n::\n\n git clone https://github.com/jerrymakesjelly/autoremove-torrents.git\n cd autoremove-torrents\n python3 setup.py install\n\n\nWrite your configuration file\n++++++++++++++++++++++++++++++\nIn order to satisfactory your needs, you have to learn how to write a configuration file. \n\nYou can put the configuration file anywhere on your disk. The autoremove-torrents looks for ``config.yml`` in the Shell's current working directory::\n\n vim ./config.yml\n\n\nThe grammar is quite easy, for example::\n\n my_task:\n client: qbittorrent\n host: http://127.0.0.1\n username: admin\n password: adminadmin\n strategies:\n my_strategy:\n categories:\n - IPT\n remove: seeding_time > 1209600 or ratio > 1\n delete_data: true\n\nThe 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.\n\n.. _Wiki: https://github.com/jerrymakesjelly/autoremove-torrents/wiki\n\nRun\n++++\n::\n\n autoremove-torrents\n\nIf you just want to see which torrents can be removed but don't want to really remove them, use ``--view`` command line argument.\n\n\nSetting up scheduled tasks\n-----------------------------\nIf you want to check whether there is any torrent can be removed every 15 minutes, the crontab can help you. Look at the example::\n\n crontab -e\n\nAnd then, add a line at the end of the file (please confirm the path of the autoremove-torrents and your program)::\n\n*/15 * * * * /usr/bin/autoremove-torrents --conf=/home/jerrymakesjelly/autoremove-torrents/config.yml --log=/home/jerrymakesjelly/autoremove-torrents/logs\n\nThe ``--conf`` indicates the path to the configuration file.\nThe ``--log`` argument specifies the path to store the log files (Must be existed).\n\nScreenshot\n-----------\n|Screenshot|\n\n.. |Screenshot| image:: https://user-images.githubusercontent.com/6760674/40576720-a78097fe-612d-11e8-9dda-8aac0c5011a2.png\n\nChangelog\n----------\n**Tue, 17 Sep 2019**: Version 1.4.6.\n\n* Fix problem that the tracker filter needs to specific ports when the tracker URL includes port number. (#38)\n\n**Thu, 6 Jun 2019**: Version 1.4.5.\n\n* Added status `StalledUpload` and `StalledDownload`. (#34)\n\n**Wed, 22 May 2019**: Version 1.4.4.\n\n* 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)\n* New feature: if the content of `filter` has only one line, now it is allowed to write down directly without using list.\n\n**Sun, 19 May 2019**: Version 1.4.3.\n\n* Supported Python 2.7. (#29)\n* Stopped supporting Python 3.4. (kennethreitz/requests#5092)\n\n**Mon, 13 May 2019**: Version 1.4.2.\n\n* Fixed missing parser files. (#32)\n* Fixed association of operators. (#32) Now the operator `and` and `or` are guaranteed to be left-associative.\n\n**Mon, 6 May 2019**: Version 1.4.1.\n\n* Fixed missing dependency: `ply`.\n* Fixed the warning of duplicate definition in condition `remove`.\n\n**Mon, 6 May 2019**: Updated Wiki.\n\n* Added the description of `remove` condition into Simplified-Chinese Wiki.\n\n**Wed, 1 May 2019**: Version 1.4.0.\n\n* Removed torrent status restriction in ``seeding_time`` and ``ratio`` condition (#19).\n - 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).\n - But now we have a ``status`` filter, this restriction becomes unnecessary, and its behavior may be different from users expectation.\n* Supported custom remove expressions (#15).\n - Now we can write the condition that we want directly and clearly, e.g. ``remove: ratio > 1``.\n - 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.\n - The old remove conditions are still available.\n\n**Wed, 17 Apr 2019**: Version 1.3.0.\n\n* Fixed bug: Program gets stuck when there are a lot of torrents in qBittorrent client (`Issue #22 `_).\n* Fixed bug: Duplicated logging in status filter.\n* Log system was updated:\n - Log path can be specified (Use ``--log`` argument, e.g. ``--log=/home/jerrymakesjelly/logs``) (`Issue #23 `_).\n - Logs are stored in different files by day (Format: ``autoremove.%Y-%m-%d.log``).\n* Changed the word ``seed`` to ``torrent`` (`Issue #25 `_).\n* Removed uncessary debug messages.\n\n**Mon, 10 Jan 2019**: Version 1.2.5.\n\n* Fixed bug: Incorrect number of torrents in multiple strategies (`Issue #10 `_, thanks to @momokoo for the report and PR).\n* Fixed bug: Incorrect number of torrents in qBittorrent (`Issue #13 `_).\n\n**Thu, 31 May 2018**: Version 1.2.4.\n\n* Fixed startup failure.\n\n**Wed, 30 May 2018**: Version 1.2.3. Added new features.\n\n* Allowed to use environment variables to specify *host*, *username* and *password*.\n* Allowed *username* and *password* to be empty (or one of them is empty) to log in a WebUI without username and/or password.\n* Now the program won't quit directly when a task goes failed.\n\n**Sun, 27 May 2018**: Version 1.2.2. Added new features :smile:\n\n* Added new filter: Torrent Status\n* Added new condition: Maximum number of torrents\n\n**Sat, 26 May 2018**: Version 1.2.1. Fixed issue in *setup.py*.\n\n**Sat, 26 May 2018**: Version 1.2.0. Refactoring was completed, and was published to PyPI.\n\n* New features will be added soon.\n* Now we can install it via *pip*.\n\n**Mon, 14 May 2018**: Version 1.1.0. Created *setup.py*.\n\nYou can now use the *autoremove-torrents* command directly instead of *python3 main.py*.\n\n**Wed, 28 Mar 2018**: (Correct document) The *delete_data* field shouldn't be indented.\n\n**Thu, 22 Mar 2018**: First version :bowtie:\n\nTODO List\n-----------\nDepend on users' feedback.\n\n* Support Deluge and rtorrent in the future\n\n* Add remove condition: Disk free space\n\n* Add remove condition: Max/Min average UL/DL speed\n\nIf you have any problem, please submit `issues`_.\n\n.. _issues: https://github.com/jerrymakesjelly/autoremove-torrents/issues", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jerrymakesjelly/autoremove-torrents", "keywords": "python autoremove torrent", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "autoremove-torrents", "package_url": "https://pypi.org/project/autoremove-torrents/", "platform": "", "project_url": "https://pypi.org/project/autoremove-torrents/", "project_urls": { "Homepage": "https://github.com/jerrymakesjelly/autoremove-torrents" }, "release_url": "https://pypi.org/project/autoremove-torrents/1.4.6/", "requires_dist": null, "requires_python": "", "summary": "Automatically remove torrents according to your strategies.", "version": "1.4.6" }, "last_serial": 5839228, "releases": { "1.1.0": [ { "comment_text": "", "digests": { "md5": "fe0dadeeefd6914ffeb68f1f808ede7e", "sha256": "66cc089dba39475ff8c402b4f29ea57ea5824bee61f019fb45204aa7f95afc46" }, "downloads": -1, "filename": "autoremove_torrents-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "fe0dadeeefd6914ffeb68f1f808ede7e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15410, "upload_time": "2018-05-14T11:42:53", "url": "https://files.pythonhosted.org/packages/ee/cd/a32fc37320a0231ad877662ed7d86cc432e553ef70971cb9a419daac9998/autoremove_torrents-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "42348c00af4b70a6ad7225db2f4a91fa", "sha256": "dde648dfb9d524089ef4b40fd94edf8a2996204cc5fa2e41eb21ab05df27910b" }, "downloads": -1, "filename": "autoremove-torrents-1.1.0.tar.gz", "has_sig": false, "md5_digest": "42348c00af4b70a6ad7225db2f4a91fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9347, "upload_time": "2018-05-14T11:42:55", "url": "https://files.pythonhosted.org/packages/84/fb/fe2c0e2c9f996188e3750eabf33171488444c3e0d0e3e80604647392df92/autoremove-torrents-1.1.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "7385174304da0939bdc3b96695d4102e", "sha256": "c61ce47075828512cd77d6e2061d0cc19c05a8a87a505ba74b106e9d5f0cdaa7" }, "downloads": -1, "filename": "autoremove-torrents-1.2.1.tar.gz", "has_sig": false, "md5_digest": "7385174304da0939bdc3b96695d4102e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10870, "upload_time": "2018-05-26T04:48:43", "url": "https://files.pythonhosted.org/packages/b6/5f/9175c71e76cad33fca341b3350f2724c89689d1aeace795b7f951e721586/autoremove-torrents-1.2.1.tar.gz" } ], "1.2.4": [ { "comment_text": "", "digests": { "md5": "e5d69c1c16bbbd7eb507c9ac013f7c40", "sha256": "75879103ea7dca4755a760102b87169bdccba157dad12641e3756dac29376908" }, "downloads": -1, "filename": "autoremove-torrents-1.2.4.tar.gz", "has_sig": false, "md5_digest": "e5d69c1c16bbbd7eb507c9ac013f7c40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12467, "upload_time": "2018-05-31T11:38:01", "url": "https://files.pythonhosted.org/packages/c3/5c/21091afa78f1a1026ef6cabe26c5e5aa4261a380105eee856ed70f8f304e/autoremove-torrents-1.2.4.tar.gz" } ], "1.2.5": [ { "comment_text": "", "digests": { "md5": "4f8e48cbd1aceb91c3625d09e83a8979", "sha256": "f8ec4cc5fe03a509eba80e5e2f34c38e6fdc8181bba630ca7ebc6211e5846b75" }, "downloads": -1, "filename": "autoremove-torrents-1.2.5.tar.gz", "has_sig": false, "md5_digest": "4f8e48cbd1aceb91c3625d09e83a8979", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13123, "upload_time": "2019-01-10T13:05:53", "url": "https://files.pythonhosted.org/packages/c8/56/f5dd6cfe395386113394a3d16e41ca5bd6a6842224c8cdfd0e95b8544d52/autoremove-torrents-1.2.5.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "a831775619bb64e51fd4084209db17cc", "sha256": "a5794731cc3b884824feae00800f5640616c36e4ad3ac21fe5fbbf3728fc345f" }, "downloads": -1, "filename": "autoremove-torrents-1.3.0.tar.gz", "has_sig": false, "md5_digest": "a831775619bb64e51fd4084209db17cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13415, "upload_time": "2019-04-18T08:54:09", "url": "https://files.pythonhosted.org/packages/1e/74/05fc91624798e1b4ab5d8e4fbf283a5292f7b87cc748f7e11bb55d0ab627/autoremove-torrents-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "86f11b5b13998b52e2555c9d73619091", "sha256": "1ee42942b29583e742fc539247c0dc0846ce070f110da25948e1835256b0a771" }, "downloads": -1, "filename": "autoremove-torrents-1.4.0.tar.gz", "has_sig": false, "md5_digest": "86f11b5b13998b52e2555c9d73619091", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15619, "upload_time": "2019-05-01T16:24:59", "url": "https://files.pythonhosted.org/packages/20/ec/de12f0f7b2f8724c49d66dab9ee8eba8909f6cfd3f6e7fd1ad6bc127e4ad/autoremove-torrents-1.4.0.tar.gz" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "f685ee3ccc48565146fa9dd58617c28d", "sha256": "b6dcfcd8e21f7122e1e0f22a6168d649a9159035b91b1e2c2bce1d775f2ec966" }, "downloads": -1, "filename": "autoremove-torrents-1.4.1.tar.gz", "has_sig": false, "md5_digest": "f685ee3ccc48565146fa9dd58617c28d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14960, "upload_time": "2019-05-06T15:13:48", "url": "https://files.pythonhosted.org/packages/1b/a9/404ba90dc3a09e2f20e3cb4d06acd99af069a49bbdc33a8a6570e3583d47/autoremove-torrents-1.4.1.tar.gz" } ], "1.4.2": [ { "comment_text": "", "digests": { "md5": "3b3cde1b52eae112c51152c62f31f35a", "sha256": "2bd399ef968e8f930cd73c6b6726d19f4cdb5d5a75a8ace997b3f906bac3860d" }, "downloads": -1, "filename": "autoremove-torrents-1.4.2.tar.gz", "has_sig": false, "md5_digest": "3b3cde1b52eae112c51152c62f31f35a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15690, "upload_time": "2019-05-13T07:18:27", "url": "https://files.pythonhosted.org/packages/e2/06/4911bf9559b3c36023e6cd279a5291f8aa49c2e380da4ef3be7164a270d1/autoremove-torrents-1.4.2.tar.gz" } ], "1.4.3": [ { "comment_text": "", "digests": { "md5": "7f77fb671a54ce9945979b0ff7f99ad4", "sha256": "7419ccb90d2c3237c16f9a46cb05c41eb7d84c6c99e5b13065c8880521298201" }, "downloads": -1, "filename": "autoremove-torrents-1.4.3.tar.gz", "has_sig": false, "md5_digest": "7f77fb671a54ce9945979b0ff7f99ad4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16041, "upload_time": "2019-05-19T14:40:03", "url": "https://files.pythonhosted.org/packages/fe/7f/3604a11a71378c764f0664eeeb3cdaa5276361a9125dd8344183b8ac3895/autoremove-torrents-1.4.3.tar.gz" } ], "1.4.4": [ { "comment_text": "", "digests": { "md5": "173056246d6069c1934b8118752da74f", "sha256": "d8efd1a56814643e1fa6ad50e431bd4532f0c4c10ce78580d150f01340f6e27b" }, "downloads": -1, "filename": "autoremove-torrents-1.4.4.tar.gz", "has_sig": false, "md5_digest": "173056246d6069c1934b8118752da74f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16251, "upload_time": "2019-05-22T13:28:37", "url": "https://files.pythonhosted.org/packages/1e/e7/e49dd82a4ce945da6702e6b50b846dedd4a2dff9b28ea4bcf55f0dc1b6db/autoremove-torrents-1.4.4.tar.gz" } ], "1.4.5": [ { "comment_text": "", "digests": { "md5": "a3c59d608245766c922f688f1f95fb7a", "sha256": "da2832a40c6c91fa3de663768814818d57908743b3fcf565bdfed88b35347854" }, "downloads": -1, "filename": "autoremove-torrents-1.4.5.tar.gz", "has_sig": false, "md5_digest": "a3c59d608245766c922f688f1f95fb7a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16580, "upload_time": "2019-06-06T13:22:38", "url": "https://files.pythonhosted.org/packages/9d/fc/fdd4c677899d96a1e7d07fb385fa2464afa45859d490cf7941ae49066077/autoremove-torrents-1.4.5.tar.gz" } ], "1.4.6": [ { "comment_text": "", "digests": { "md5": "e94185ad82f30e94f87c914368bfeb41", "sha256": "e909dd0baca946bc904592f56c46dcc1fdff2904768251d882c70e3701c3b18d" }, "downloads": -1, "filename": "autoremove-torrents-1.4.6.tar.gz", "has_sig": false, "md5_digest": "e94185ad82f30e94f87c914368bfeb41", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16393, "upload_time": "2019-09-17T03:01:40", "url": "https://files.pythonhosted.org/packages/56/a4/a6bfee0a5c11d5840c660eb4d9f44fca896839351d0cda9a3664a3dba805/autoremove-torrents-1.4.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e94185ad82f30e94f87c914368bfeb41", "sha256": "e909dd0baca946bc904592f56c46dcc1fdff2904768251d882c70e3701c3b18d" }, "downloads": -1, "filename": "autoremove-torrents-1.4.6.tar.gz", "has_sig": false, "md5_digest": "e94185ad82f30e94f87c914368bfeb41", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16393, "upload_time": "2019-09-17T03:01:40", "url": "https://files.pythonhosted.org/packages/56/a4/a6bfee0a5c11d5840c660eb4d9f44fca896839351d0cda9a3664a3dba805/autoremove-torrents-1.4.6.tar.gz" } ] }