Looks after your transmission settings, keeps torrents under check and adds them from feed or redis queue/list.
About configuration (~/.trmaid.yaml file)
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! ;)