-
-
Notifications
You must be signed in to change notification settings - Fork 3.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reimplement Search subsystem #15126
base: master
Are you sure you want to change the base?
Reimplement Search subsystem #15126
Conversation
33b4785
to
121477e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you! I tested it in Windows and it's working well but a few things. You can merge it after solving these issues. About code review, I thing there are more capable contributors. Just search for "python" or "py" in the whole project to be sure you don't forget dead code.
Issues:
- Size parsing is wrong. I see "unknown" in most results. Try searching movies or something larger than 10 GB
- If some indexer is not working there is no way to known. Print some error traces at least.
- If I disable all indexers the search never stops. Maybe add a check for that.
- If I delete 1 indexer the list is not updated. If I delete the same indexer again qBittorrent crashes.
- If I delete all indexers, close the indexers dialog and search for something the search never stops.
Improvements:
- Empty search in available in Torznab. It returns newest torrents and it's useful. Just remove the check.
- Indexers can't be edited. This is really useful because the Jackett API key and IP can change. You can reuse the "add" form, it should be easy.
- I have more improvements in mind but they can wait.
@ngosang |
Does Torznab provide some predefined size format to be returned by each indexer? |
I've been thinking about error handling, but I haven't come to a decision yet. If all the indexer requests are failed, then we can just show the failed status. But what if only some of the indexers failed, and the rest returned the expected result? |
All indexers follow the Torznab specs. There is a field called
|
How should we show them? Just add messages to a log?
I'm not sure I can imagine what it might look like (sorry, I'm weak in UI design). In addition, it should be presented in such a way that it does not confuse when the Search tab is not current. |
Should be fixed now. Please test again. TODO:
|
3ca672c
to
a6579eb
Compare
First time jackett user here so excuse me if i say something stupid.
Some people will have many indexers. We'll need a way to bulk update them. |
@thalieht |
Sorry, I can't in the next weeks but it should be fine.
Print error traces in the log, the "advanced" user will be able to see them in the log tab and that is enough to close related issues. About more "visible" message I don't have better ideas. 1) Warning icon in the search tab with a tooltip to check the log. 2) Same message in the status bar. 3) Add a search result with the error in the "torrent name". Eg: The indexer XXX is not working because: XXX. That result is fake and can't be downloaded. For the me urgent is the log message. This could be improved later.
True. The current implementation is more generic and it's not coupled to Jackett.
This will be a nice enhancement but it can be implemented later. I prefer to merge this as is and the search feature will be improve over the time with small PRs. |
It's done currently (within latest changes). |
Maybe we should announce deprecation (in UI) of the old search engine first before dropping it entirely? A notice in log when old search is enabled and renaming the old search to |
I prefer to drop support completely in 4.4.0 release. It will affect a lot of users but, since the decision is made there is no point in delaying. I can do intensive QA this weekend to be sure it's good enough in the first release so users don't have to go back. You should add a big breaking change notice in the changelog. The users can stay in version 4.3.x for a while until they update. I will add a notice in the search-engine plugin repository too. |
However, the problem is that WebAPI/WebUI have not yet been adapted. |
This PR need not be blocked, just the 4.4.0 release, pending the WebUI implementation. |
IMO, it is unacceptable to block a release while waiting for changes that do not have an ETA. |
There is no obligation to make a major feature release until it's 100% ready. I'm just saying that while it is an option to release the new search subsystem without a WebUI implementation, it is also an option to delay a release that includes the new search subsystem until there is one. IMO this is completely up to you, I'm fine with the decision either way (although in a perfect world, my preference would be that the release already includes the WebUI implementation). |
My opinion about "WebUI feature parity requirements" has not changed for years. We should not require it until we have an active web developer in the team, otherwise it hinders the development of the application. WebUI is not an integral part of the application for me, but just an external client application (although officially distributed as built-in). But if the opinion of the community is that absence of "WebUI feature parity" should block the release, I would prefer not to merge it at all until someone adds WebUI implementation on top of this PR. Please be content with unsupported "rotting" feature, if WebUI is more important to you. |
But they are different kind of features with different purposes. Search - to find a specific torrent purposely. RSS - for tracking news/updates of some sources /trackers and (optionally) autoloading new torrents based on some filtering rules. IIRC, Torznab indexes (at least provided by Jackett) can be used as RSS feeds by qBittorrent RSS subsystem. |
Sounds reasonable. |
Yes.
For now we should keep Search and RSS feature as different things. Doing more changes will delay this integration. Long answer:
The Torznab feed used for the Search Engine (this PR) can be used as RSS with the same configuration. In future releases we can use that Torznab config to "auto configure" RSS feeds. Or some kind of "auto download" feature based on RSS feeds. For now, the user can copy the Torznab URL 2 times. In Jackett you have 2 different buttons for Torznab/RSS to make it clear but it copies the same URL :) |
I suppose you meant this repo wiki, only @sledgehammer999 can help with that.
It is hard to estimate, I would say about this year summer but it might be sooner or even later..
Of course, I was just imagining deeper integration since I know little of the indexer. |
Guys, what would a deprecation notice look like in GUI? |
For me, an warning (nobody would notice |
Seems many users have no idea about the existence of the Log.
Here it can also go unnoticed if someone rarely changes/adds plugins. Maybe add it to the main interface of the Search Engine? |
Documentation => https://github.com/qbittorrent/search-plugins/wiki/New-Torznab-search-engine You should move both to the Wiki of this repository. I don't have access. |
Damn, I really don't have time to do this job. @qbittorrent/frequent-contributors, @qbittorrent/bug-handlers, @jagannatharjun, maybe someone can proceed with it? |
As an end-user, if I understand correctly - I have to add each one of the indexers to qbittorrent, manually, one by one. TL:DR: |
In Radarr, Sonarr and related software you have to add one by one too. Please, do not delay this PR. When it's merged you can suggest more enhancements in other issues. |
d095b86
to
e38dc68
Compare
New Search subsystem uses external Torznab indexers.
Hey friends, unofficial plugin author here, getting up to speed on this. I was aware of #121 but had not checked in in a long time, I see not only a decision has officially been made for replacement, but also that a lot of things have been done. Great work 👍🏻 I see nothing moved here in the last months, is there background work ongoing? Is this still shipping in 4.5.0 as stated above? I don't see it in the 4.5.0 milestone. Trying to gauge how I should prepare my plugin's users for this. |
@nbusseneau
It is in 5.0 milestone (but this is just a convention). |
I wonder if this will make it to 5.0 |
This PR is stale because it has been 60 days with no activity. This PR will be automatically closed within 7 days if there is no further activity. |
Any updates? |
This PR is stale because it has been 60 days with no activity. This PR will be automatically closed within 7 days if there is no further activity. |
New Search subsystem uses external Torznab indexers.
Ref.: qbittorrent/search-plugins#121