cardigann: respect the categories from search paths (#14395)

This commit is contained in:
Bogdan
2023-05-29 00:53:42 +03:00
committed by GitHub
parent 12da8b6131
commit 7e7ace05be

View File

@@ -1349,8 +1349,6 @@ namespace Jackett.Common.Indexers
mappedCategories = DefaultCategories;
}
variables[".Categories"] = mappedCategories;
var KeywordTokens = new List<string>();
var KeywordTokenKeys = new List<string> { "Q", "Series", "Movie", "Year" };
foreach (var key in KeywordTokenKeys)
@@ -1369,15 +1367,26 @@ namespace Jackett.Common.Indexers
var SearchPaths = Search.Paths;
foreach (var SearchPath in SearchPaths)
{
variables[".Categories"] = mappedCategories;
// skip path if categories don't match
if (SearchPath.Categories.Count > 0)
{
var invertMatch = (SearchPath.Categories[0] == "!");
var hasIntersect = mappedCategories.Intersect(SearchPath.Categories).Any();
if (invertMatch)
if (SearchPath.Categories[0] == "!")
{
hasIntersect = !hasIntersect;
}
if (!hasIntersect)
{
variables[".Categories"] = mappedCategories.Except(SearchPath.Categories).ToList();
continue;
}
variables[".Categories"] = mappedCategories.Intersect(SearchPath.Categories).ToList();
}
// build search URL