flood-for-transmission icon indicating copy to clipboard operation
flood-for-transmission copied to clipboard

Add specific torrent settings and switches

Open mauexemplo opened this issue 3 years ago • 10 comments

Enhancement suggestion: Add checkboxes / switches to the torrent details pop-up, to allow changes to that torrent's specific settings, such as:

  • Add/remove trackers;
  • Bandwidth limits;
  • Ratio limits;
  • Inactivity limits;
  • Others that transmission might allow?

I acknowledge this is broad and might take significant work, and would understand if it took very long or didn't get done at all. Just thought I'd talk of the possibility, in case it didn't occur to you.

mauexemplo avatar Apr 28 '21 01:04 mauexemplo

Ok so to gather information on this these are the things we can configure via the API but don't yet (sourced from https://github.com/transmission/transmission/blob/master/extras/rpc-spec.txt, see "3.2. Torrent Mutators"):

string value type & description
"downloadLimit" number maximum download speed (KBps)
"downloadLimited" boolean true if "downloadLimit" is honored
"honorsSessionLimits" boolean true if session upload limits are honored
"peer-limit" number maximum number of peers
"queuePosition" number position of this torrent in its queue [0...n)
"seedIdleLimit" number torrent-level number of minutes of seeding inactivity
"seedIdleMode" number which seeding inactivity to use. See tr_idlelimit
"seedRatioLimit" double torrent-level seeding ratio
"seedRatioMode" number which ratio to use. See tr_ratiolimit
"trackerAdd" array strings of announce URLs to add
"trackerRemove" array ids of trackers to remove
"trackerReplace" array pairs of <trackerId/new announce URLs>
"uploadLimit" number maximum upload speed (KBps)
"uploadLimited" boolean true if "uploadLimit" is honored

For the tracker configuration I can add some options to the tracker tab, that shouldn't be too hard. I wouldn't want to support replace, but just allow a user to remove and add trackers instead. Seems good enough to me.

For the queue position I don't think that should live inside of the details tab. For that I might have to create some kind of sorting mode on the list view where the user can drag and drop the items to an order and then confirm the new order or something. It's been on my mind for a while but nothing has been decided yet.

The others basically feel like limits to me. So maybe I can create a new settings tab and use that allow the user to configure limits specifically to that torrent. It should be pretty straightforward.

So I think that creates about 3 part so this, "Tracker config", "Queue positioning" and "Limit config" on a per torrent basis. I would want to postpone the Queue positioning since it feels huge but the others I can start on pretty soon I think.

Thanks again for the suggestion, and let me know if this description is missing something or if you're concerned about something.

johman10 avatar Apr 28 '21 07:04 johman10

I really should have cited that document, shouldn't I? Shame on me! 🙈

For the tracker configuration I can add some options to the tracker tab, that shouldn't be too hard. I wouldn't want to support replace, but just allow a user to remove and add trackers instead. Seems good enough to me.

Adding and removing trackers is definitely plenty. However, if you should ever choose to support replacing, maybe allow editing-in-place of the tracker URL, by changing the existing element to an editable text field on clicking? Then AJAX-save on the spot, or track changes and save all at once. Just a thought...

For the queue position I don't think that should live inside of the details tab. For that I might have to create some kind of sorting mode on the list view where the user can drag and drop the items to an order and then confirm the new order or something. It's been on my mind for a while but nothing has been decided yet.

This is a marvelous, brilliant idea. I support it!

The others basically feel like limits to me. So maybe I can create a new settings tab and use that allow the user to configure limits specifically to that torrent. It should be pretty straightforward.

Yes, that's what I had in mind, too. Many Transmission UIs do this, if you want to look for inspiration (though many don't, and only allow play/pause).

Thanks for the detailed reply, and for all the awesome work in Flood!

mauexemplo avatar Apr 29 '21 00:04 mauexemplo

Ok so to gather information on this these are the things we can configure via the API but don't yet (sourced from https://github.com/transmission/transmission/blob/master/extras/rpc-spec.txt, see "3.2. Torrent Mutators"):

Probably on topic, can you also add "rename torrent path" (rpc-sec: 3.7. Renaming a Torrent's Path) ?

dgcampea avatar May 17 '21 11:05 dgcampea

@dgcampea

Probably on topic, can you also add "rename torrent path" (rpc-sec: 3.7. Renaming a Torrent's Path) ?

This actually already exists. You can double click on the name of the torrent to rename it. I hope that helps. If it doesn't cover your usecase, please let me know. :)

johman10 avatar May 17 '21 13:05 johman10

This actually already exists. You can double click on the name of the torrent to rename it. I hope that helps. If it doesn't cover your usecase, please let me know. :)

I'm reorganizing some directories manually and sometimes stripping the (first) leading part of the torrent directory aids in the organization. Renaming it would also change the name that gets shown in Flood and makes it impossible to distinguish the torrents later. I'm looking for something that does:

transmission-complete/ABCD-TORR-ROOT/{foo,bar,baz}.file

to

transmission-complete/{foo,bar,baz}.file

dgcampea avatar May 17 '21 19:05 dgcampea

I was not aware that was a possibility. I can consider it as part of this issue. Would have to think a little about how to make that intuitive though. Maybe double click on the torrent name should show some kind of dialog with the option to also rename the path that it's in...? Not super excited about that idea though..

I will think about that one a little more at least. ;)

johman10 avatar May 18 '21 07:05 johman10

As you can see the first step of this is done. Tracker configuration should be in the latest version. Please update and let me know if it's fitting your needs.

I will move on to the next parts of this later on. :)

So that it's taking so long. Haven't found a lot of time to spend time on this project lately. :)

johman10 avatar Jul 28 '21 09:07 johman10

Looks great! No worries at all about the time.

mauexemplo avatar Aug 16 '21 22:08 mauexemplo

Hey,

is there any plan to implement torrent specific settings like seedRatioLimit and seedIdleLimit?

Thanks.

zivkovic avatar Jan 24 '23 15:01 zivkovic

@zivkovic I have been quite busy lately, so i can't promise anything. But feel free to contribute and I can review and assist where needed.

johman10 avatar Jan 25 '23 06:01 johman10

Hi everyone! Sorry for the super long delay on this. As you can see above the latest version of Flood for Transmission now has support for configuration per torrent. Please let me know if you discover any fields that misbehave or if you find a field that's currently missing.

Thanks a lot for the suggestion and opening the ticket! I hope you appreciate the changes!

johman10 avatar Apr 28 '24 10:04 johman10