trMaid
Looks after your transmission settings, keeps torrents under check and adds them from feed or redis queue/list.
About configuration (~/.trmaid.yaml file)
Sections:
transmission:
url: http://127.0.0.1:9091/transmission/rpc
username: transmission
password: transmission
Well that seems self explanatory...
general:
redis: redis://localhost:6379
verify: False
verbose: True
redis is the url to redis, verify is to whether the SSL verification is done and verbose is for displaying the messages or not ('-v' in arguments overrides it to True)
session:
alt-speed-enabled: False
blocklist-enabled: True
blocklist-update-interval: 168
blocklist-url: http://list.iblocklist.com/?list=bt_level1
download-dir: /home/path/Downloads
incomplete-dir: /home/path/Downloads/incomplete
....
Here you can define transmissions session-set parameters - every time script runs, it checks if they match the given parameters here and if they don't, script will update them with session-set call. Magic variable here is "blocklist-update-interval". If blocklist-url has been configured and enabled script will execute the blocklist-update request every X hour (168 hours / a week in examples case).
tracker:
general:
seedRatioLimit = 1.5
seedRatioMode = 1
seedRatioLimited = True
remove-if:
ratio: 0.2
status: stopped
done-time: 18h
with-data: True
This section might include all torrent-set parameters + 'remove-if' part. If there is remove-if present, torrent is removed if it matches the present conditions: ratio (>=), status and done-time (eg. 1h or 1d for time since torrent was finished).
tracker:
host.tld:
location: /home/path/Downloads/private-tracker
host2.tld:
location: /home/path/Downloads/random
peer-limit: 10
seedRatioLimit: 5.0
seedRatioMode: 1
seedRatioLimited: True
This is same as general-tracker, but is used if announce urls hostname matches it. Once match is found general-tracker and location:... sections are skipped. Use it to set special values to eg. private trackers.
location:
/mnt/movies:
peer-limit: 15
uploadLimit: 20
uploadLimited: True
seedRatioLimit: 1.0
seedRatioMode: 1
seedRatioLimited: True
This special section is identical to general-tracker but its parameters here are only set if torrents download location matches one in the section name. Once match is found general-tracker is skipped.
rss:
http://www.ezrss.it/feed:
download-dir: /home/path/Downloads/tv-shows
peer-limit: 15
downloadLimit: 1024
downloadLimited: False
uploadLimit: 50
uploadLimited: True
seedRatioLimit: 5.0
seedRatioMode: 1
seedRatioLimited: True
trackerAdd:
- udp://tracker.istole.it:80
- udp://tracker.openbittorrent.com:80
- udp://tracker.publicbt.com:80
matches:
- ^some\.regex\.here
- ^and(\-|\s|\.)here
Parameters here are either torrent-add or torrent-set parameters. Previous example adds torrents from ezrss "FakeShow" feed, adding them to 'tv-shows' directory and sets peer/download/upload limits. matches is a list of regular expressions - if exists, title has to match one of them.
redis:
list-4-lpop:
peer-limit: 20
uploadLimit: 5
uploadLimited: True
Here torrent urls or magent links are popped (lpop) out of the list "list-4-lpop" mentioned in section name. Otherwise its the same as rss:.... section
watch-folders:
/home/user/auto-add-torrents:
peer-limit: 30
uploadLimit: 150
uploadLimited: True
seedRatioLimit: 11.0
seedRatioMode: 1
seedRatioLimited: True
trackerAdd:
- udp://tracker.istole.it:80
If you have "watch-folders" section in your configuration file and that folder really exists, files with "torrent" extensions are added just as from rss or redis. After added, they are renamed from ".torrent" file to ".torrent.added" file.
You can read more about session-set, torrent-add and torrent-set requests from here: transmssion rpc spec
NB! things break, use at your own risk and only download legal stuff! ;)