JohnDoee / autotorrent

Matches torrents with files and gets them seeded
MIT License
269 stars 34 forks source link

Add config option for client: store_path #26

Open ordinarygulp opened 5 years ago

ordinarygulp commented 5 years ago

With the recent addition of qbittorrent and possibly migrating my client from rtorrent to qbittorrent, I was thinking an option for each client profile to have it's own store_path would be useful.

For example, I have these two clients:

[client-rt]
client = rtorrent
url = scgi://127.0.0.1:5000
label = autotorrent

[client-qbt]
client = qbittorrent
url = http://127.0.0.1:8080
username = qbt
password = somepassword
category = autotorrent

The issue comes in, if I want to re-load all my .torrents, I have to temporarily change the global store_path while I add torrents to qbittorrent, but then change store_path back when I add to rtorrent.

So in my mind the setting would look like:

[client-rt]
client = rtorrent
url = scgi://127.0.0.1:5000
label = autotorrent
store_path = /mnt/user/Torrent/rtorrent

Probably an edge case, but thought some might find such a feature useful :)

JohnDoee commented 5 years ago

It's hard to say if that's an edge-case. What I can say is that the current config doesn't accommodate what users seem to need, myself included. I run with multiple .conf files.

So, I think this issue should be changed into something along the lines of "how should the config file be".

[general]
db=_autotorrent.db
ignore_files=
store_path=/home/rtorrent/myseeds/
add_limit_size=64000000
add_limit_percent=1
link_type=soft
scan_mode=unsplitable,normal

[disks]
disk1=/mnt/sd1/anime/
disk2=/mnt/sd1/tv/

[client-rt]
client = rtorrent
url = scgi://127.0.0.1:5000
label = autotorrent

[client-qbt]
client = qbittorrent
url = http://127.0.0.1:8080
username = qbt
password = somepassword
category = autotorrent

[site]
store_path = default
client = rt
client_label = autotorrent-default-site

[site-new]
client = qbt
client_category = new-autotorrent
store_path = new

[site-different]
client = qbt
client_category = something-else
store_path = /whole/new/path

I called the key "site" here but I am not sure what would be a good name.

So, when you run autotorrent you specify a site. store_path is relative to the "general" store_path. The individual sites can overwrite different parts of the config.

Running autotorrent --site new -a *.torrent will put the links into /home/rtorrent/myseeds/new while using client qbt and autotorrent --site different -a *.torrent will put them in /whole/new/path while also using client qbt with a different category.

With this it's possible to only have a single config file that'll cover almost every use-case, I hope.

Side-note: If you want to re-seed stuff you downloaded from a specific site, you should use scan_mode set to exact - This is another thing I don't thing might be very obvious.

ghost commented 5 years ago

Maybe I'm not understanding what you what exactly. I feel like this is already built into the correct program

tldr autotorrent-env/bin/autotorrent -c /home/xxxxxxxxxxxxxxx/autotorrent/autotorrentbk.conf -autotorrentcommand

Before starting autotorrent-env/bin/autotorrent -h is actually very helpful I didn't realize a lot of features this program has until very recently

This is a script I have to auto add my Book Torrents. I need separate config files partly because like you I have multiple clients. Six or so in total. Some databases are exact because that is how the files where named. Other where processed through medusa TV episode renamer, so they use hash_size since the files name are completely different now.

#!/bin/sh
cd /home/xxxxxxxx/autotorrent/
for file in /home/xxxxxxxx/Downloads/Seeding/Torrents/Books/*
do
   autotorrent-env/bin/autotorrent -c /home/xxxxxxxxxxxxxxx/autotorrent/autotorrentbk.conf -a "$file" --verbose 2>> /home/xxxxxxx/logs/autotorrentbk.txt 
done
sn

Basically in the applications current state you just have to do autotorrent-env/bin/autotorrent -c autotorrent/config/location -autotorrent command which of course can be -a or -r or whatever is needed at the time

I don't know how to program so someone who does could probably make a better setup for the script. But It setup to for running off the /usr/local/bin in ubuntu so . filename allows for it to go to the correct directory via cd.

then the 2>> /home/xxxxxxx/logs/autotorrentbk.txt just outputs the verbose logs to a document. Leaving the seeded,missing,exist messages in the commandline.

Motophan commented 3 years ago

For those of us running our clients in docker containers, can you add client_path = /torrents and host_path = /mnt/data/torrents

for when people have the volumes setup as -v /mnt/data/torrents:/torrents