mirror of
https://github.com/Prowlarr/Prowlarr
synced 2026-05-09 05:22:09 +02:00
Fixed: Don't return results with categories that were not searched
This commit is contained in:
parent
8c326fc5c2
commit
80beea9bdb
2 changed files with 17 additions and 1 deletions
|
|
@ -171,12 +171,27 @@ private async Task<IList<ReleaseInfo>> DispatchIndexer(Func<IIndexer, Task<Index
|
||||||
{
|
{
|
||||||
var indexerReports = await searchAction(indexer);
|
var indexerReports = await searchAction(indexer);
|
||||||
|
|
||||||
|
var releases = indexerReports.Releases;
|
||||||
|
|
||||||
|
//Filter results to only those in searched categories
|
||||||
|
if (criteriaBase.Categories.Length > 0)
|
||||||
|
{
|
||||||
|
var expandedQueryCats = ((IndexerDefinition)indexer.Definition).Capabilities.Categories.ExpandTorznabQueryCategories(criteriaBase.Categories);
|
||||||
|
|
||||||
|
releases = releases.Where(result => result.Categories?.Any() != true || expandedQueryCats.Intersect(result.Categories.Select(c => c.Id)).Any()).ToList();
|
||||||
|
|
||||||
|
if (releases.Count != indexerReports.Releases.Count)
|
||||||
|
{
|
||||||
|
_logger.Trace("{0} {1} Releases which didn't contain search categories [{2}] were filtered", indexerReports.Releases.Count - releases.Count, indexer.Name, string.Join(", ", expandedQueryCats));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
foreach (var query in indexerReports.Queries)
|
foreach (var query in indexerReports.Queries)
|
||||||
{
|
{
|
||||||
_eventAggregator.PublishEvent(new IndexerQueryEvent(indexer.Definition.Id, criteriaBase, query.ElapsedTime, query.StatusCode == 200, query.Releases.Count()));
|
_eventAggregator.PublishEvent(new IndexerQueryEvent(indexer.Definition.Id, criteriaBase, query.ElapsedTime, query.StatusCode == 200, query.Releases.Count()));
|
||||||
}
|
}
|
||||||
|
|
||||||
return indexerReports.Releases;
|
return releases;
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -97,6 +97,7 @@ protected virtual IList<ReleaseInfo> CleanupReleases(IEnumerable<ReleaseInfo> re
|
||||||
|
|
||||||
result.ForEach(c =>
|
result.ForEach(c =>
|
||||||
{
|
{
|
||||||
|
//Set common props
|
||||||
c.IndexerId = Definition.Id;
|
c.IndexerId = Definition.Id;
|
||||||
c.Indexer = Definition.Name;
|
c.Indexer = Definition.Name;
|
||||||
c.DownloadProtocol = Protocol;
|
c.DownloadProtocol = Protocol;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue