Flood-UI / flood

A web UI for rTorrent, qBittorrent and Transmission with a Node.js backend and React frontend. Migrate to v4: https://github.com/jesec/flood/wiki/Migrate-from-older-versions-of-Flood.
https://flood.js.org
GNU General Public License v3.0
1.82k stars 174 forks source link

Enable advanced torrent filtering #312

Open 130db opened 7 years ago

130db commented 7 years ago

Search within torrent files: E.g. Type: message Results:

The Police - because "message" in title Machine Head - because of song "Message in the Bottle"

jfurrow commented 7 years ago

Thanks for the suggestion! Unfortunately I'm not sure this is a great idea right now.

All searching/filtering is performed on the client to provide immediate updates. This means the client would need to store each torrent's list of files. The client requests the entire torrent list every 5 seconds (by default), the response of which can be a large amount of data (depending on the number of torrents). If we added each torrent's file list, this could get ridiculously out of hand, especially for torrents with a lot of files.

In the future, the server's API will support torrent list diffing, which means the initial torrent list request would be massive, but each subsequent request would be tiny.

Alternatively the searching/filtering could be done on the server, but this is not ideal in my opinion.

Until torrent list diffing or server-side searching are implemented, I don't think we should search a torrent's list of files. I'm going to close this issue for now, but feel free to reopen if you think it's necessary.

jfurrow commented 7 years ago

Alright, I'm re-opening this issue and I'll repurpose it as a request to enable advanced filtering. It's still a ways out from being implemented, but I'd like to consolidate similar issues into this one.

jfurrow commented 7 years ago

User @jaredledvina wrote:

It'd be great to filter/search for torrents by tracker message. Specifically, I'd like to find all torrents where the tracker reports 'Unregistered torrent' and delete them.