# Autotorrent2
![Test result](https://github.com/JohnDoee/autotorrent2/actions/workflows/main.yml/badge.svg?branch=master)
Match torrents and data, remove torrents based on data, cleanup your disk for unseeded files.
Autotorrent2 does everything you currently miss in your flow.
## Supported
* Torrent clients: rtorrent, Deluge, Transmission and qBittorrent
* OS: Any, but only tested on linux
* Python: 3.7+ are the only tested versions, might work with lower 3.x.
## Quickstart guide
Install Autotorrent2
```bash
python3 -m venv ~/.autotorrent # Create virtual environment where we install autotorrent2
~/.autotorrent/bin/pip install autotorrent2 # Actually install autotorrent2
# Optional, add at2 to your commandline
echo "alias at2=~/.autotorrent/bin/at2" >> ~/.bashrc
source ~/.bashrc
```
The first time Autotorrent2 is run without a known config file, it will create a base config file.
```bash
at2 check-config
```
The default location is ~/.config/autotorrent/config.toml - edit it to match your setup.
See the example configuration file for setting description [found here](config.example.toml).
Test the connections and see if it can connect to all your configured clients.
```bash
at2 test-connection
```
Now you are ready to actually use it, check out the [Usage page for fun things to do](https://johndoee.github.io/autotorrent2/usage/) and [CLI page for featurelist](https://johndoee.github.io/autotorrent2/cli/)
## Note about running autotorrent2 in a script
It can be fun to run scripts automatically and see cross-seeding just happen.
Autotorrent2 is not really designed for multiple instances at once so it is recommenced to use a lock to prevent this.
Instead of just `at2` then use e.g. `flock ~/.autotorrent.lock -c 'at2'` which prevents multiple instances of Autototrrent2 at once.
## Note about Docker
If you use Autotorrent2 in a docker container or with a torrent client running in docker then the recommendation is to align the paths.
If your torrent data is located in /mnt/data outside docker then you should map it similarly inside the docker container and you will save yourself from a lot of headaches.
Personally I recommend mounting your data source as read-only because bittorrent clients are write-happy that might corrupt your data.
## Docker usage
There is a docker image published automatically now.
Basic usage:
```bash
docker run -ti --rm -v ${PWD}/autotorrent.db:autotorrent.db -v ${PWD}/config.toml:config.toml ghcr.io/johndoee/autotorrent2:master check-config
```
Cron usage, check config every 5 minute.
```bash
docker run -ti --rm -v ${PWD}/autotorrent.db:autotorrent.db -v ${PWD}/config.toml:config.toml ghcr.io/johndoee/autotorrent2:master cron '*/5 * * * *' check-config
```
## Todo
Assortment of stuff that is planned.
- [ ] When Autotorrent2 is working on a task, e.g. copying a file to cache, then it might look like as it is stalled. An indicator should be added.
- [ ] Client normalization indexing, e.g. index based on how transmission and qbittorrent handles problematic filenames
- [ ] Torrent discovery for a torrent site.
## Known bugs
Assortment of stuff I am not sure I can do much about.
- [ ] Transmission (3.x) does not parse all emojis correctly and will return the wrong filename. [This is fixed in Transmission 4.0.2.](https://github.com/transmission/transmission/pull/5096)
## License
MIT
Raw data
{
"_id": null,
"home_page": "https://github.com/johndoee/autotorrent2",
"name": "autotorrent2",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "",
"author": "John",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/7b/42/f232d12971c320e5cf54f987fea1242470b793ab55a549bf4159a9f295ca/autotorrent2-1.3.0.tar.gz",
"platform": null,
"description": "# Autotorrent2\n\n![Test result](https://github.com/JohnDoee/autotorrent2/actions/workflows/main.yml/badge.svg?branch=master)\n\nMatch torrents and data, remove torrents based on data, cleanup your disk for unseeded files.\nAutotorrent2 does everything you currently miss in your flow.\n\n## Supported\n\n* Torrent clients: rtorrent, Deluge, Transmission and qBittorrent\n* OS: Any, but only tested on linux\n* Python: 3.7+ are the only tested versions, might work with lower 3.x.\n\n## Quickstart guide\n\nInstall Autotorrent2\n\n```bash\npython3 -m venv ~/.autotorrent # Create virtual environment where we install autotorrent2\n~/.autotorrent/bin/pip install autotorrent2 # Actually install autotorrent2\n\n# Optional, add at2 to your commandline\necho \"alias at2=~/.autotorrent/bin/at2\" >> ~/.bashrc\nsource ~/.bashrc\n```\n\nThe first time Autotorrent2 is run without a known config file, it will create a base config file.\n\n```bash\nat2 check-config\n```\n\nThe default location is ~/.config/autotorrent/config.toml - edit it to match your setup.\nSee the example configuration file for setting description [found here](config.example.toml).\n\nTest the connections and see if it can connect to all your configured clients.\n\n```bash\nat2 test-connection\n```\n\nNow you are ready to actually use it, check out the [Usage page for fun things to do](https://johndoee.github.io/autotorrent2/usage/) and [CLI page for featurelist](https://johndoee.github.io/autotorrent2/cli/)\n\n## Note about running autotorrent2 in a script\n\nIt can be fun to run scripts automatically and see cross-seeding just happen.\nAutotorrent2 is not really designed for multiple instances at once so it is recommenced to use a lock to prevent this.\n\nInstead of just `at2` then use e.g. `flock ~/.autotorrent.lock -c 'at2'` which prevents multiple instances of Autototrrent2 at once.\n\n## Note about Docker\n\nIf you use Autotorrent2 in a docker container or with a torrent client running in docker then the recommendation is to align the paths.\nIf your torrent data is located in /mnt/data outside docker then you should map it similarly inside the docker container and you will save yourself from a lot of headaches.\n\nPersonally I recommend mounting your data source as read-only because bittorrent clients are write-happy that might corrupt your data.\n\n## Docker usage\n\nThere is a docker image published automatically now.\n\nBasic usage:\n\n```bash\ndocker run -ti --rm -v ${PWD}/autotorrent.db:autotorrent.db -v ${PWD}/config.toml:config.toml ghcr.io/johndoee/autotorrent2:master check-config\n```\n\nCron usage, check config every 5 minute.\n\n```bash\ndocker run -ti --rm -v ${PWD}/autotorrent.db:autotorrent.db -v ${PWD}/config.toml:config.toml ghcr.io/johndoee/autotorrent2:master cron '*/5 * * * *' check-config\n```\n\n## Todo\n\nAssortment of stuff that is planned.\n\n- [ ] When Autotorrent2 is working on a task, e.g. copying a file to cache, then it might look like as it is stalled. An indicator should be added.\n- [ ] Client normalization indexing, e.g. index based on how transmission and qbittorrent handles problematic filenames\n- [ ] Torrent discovery for a torrent site.\n\n## Known bugs\n\nAssortment of stuff I am not sure I can do much about.\n\n- [ ] Transmission (3.x) does not parse all emojis correctly and will return the wrong filename. [This is fixed in Transmission 4.0.2.](https://github.com/transmission/transmission/pull/5096)\n\n## License\n\nMIT\n",
"bugtrack_url": null,
"license": "",
"summary": "Torrent lifecycle management tool",
"version": "1.3.0",
"project_urls": {
"Homepage": "https://github.com/johndoee/autotorrent2"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "0ae62363ff550f58a0c2b5245faccfd0a82d001647ba954e1a619c954551d824",
"md5": "f5abb52e6cb2891211beebe9eadd9c0a",
"sha256": "1ab679daa11294a93bb7c8a4fb60d7248ad29c418d54d83cac7472b2ffe324e4"
},
"downloads": -1,
"filename": "autotorrent2-1.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f5abb52e6cb2891211beebe9eadd9c0a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 28208,
"upload_time": "2024-02-17T10:27:50",
"upload_time_iso_8601": "2024-02-17T10:27:50.217865Z",
"url": "https://files.pythonhosted.org/packages/0a/e6/2363ff550f58a0c2b5245faccfd0a82d001647ba954e1a619c954551d824/autotorrent2-1.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7b42f232d12971c320e5cf54f987fea1242470b793ab55a549bf4159a9f295ca",
"md5": "7ae8372f5d0cb5d2289fd169da12bf05",
"sha256": "4d313ff62a8356ec14ebc8ad7d7b546fddcc82e3b221dac9bd801ec9b8d0c937"
},
"downloads": -1,
"filename": "autotorrent2-1.3.0.tar.gz",
"has_sig": false,
"md5_digest": "7ae8372f5d0cb5d2289fd169da12bf05",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 32299,
"upload_time": "2024-02-17T10:27:51",
"upload_time_iso_8601": "2024-02-17T10:27:51.460202Z",
"url": "https://files.pythonhosted.org/packages/7b/42/f232d12971c320e5cf54f987fea1242470b793ab55a549bf4159a9f295ca/autotorrent2-1.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-17 10:27:51",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "johndoee",
"github_project": "autotorrent2",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "autotorrent2"
}