From c2f11306b17f08ca4ac87f5148de685b8a756b43 Mon Sep 17 00:00:00 2001 From: chibidev Date: Mon, 14 Aug 2017 10:38:51 +0200 Subject: [PATCH] Fixing SupportsCategories (or at least making it better) I cannot wrap my head around why it has started to fail now as it was faulty from the beginning... Anyway, SupportsCategories didn't really take sub categories into account, which is bad. - Potentially fixes #1654 and #1656 --- src/Jackett/Models/TorznabCapabilities.cs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Jackett/Models/TorznabCapabilities.cs b/src/Jackett/Models/TorznabCapabilities.cs index a4875d297..e1419eae3 100644 --- a/src/Jackett/Models/TorznabCapabilities.cs +++ b/src/Jackett/Models/TorznabCapabilities.cs @@ -66,15 +66,18 @@ namespace Jackett.Models } } - public bool SupportsCategories (int[] categories) + public bool SupportsCategories(int[] categories) { - return Categories.Count(i => categories.Any(c => c == i.ID)) > 0; + var subCategories = Categories.SelectMany(c => c.SubCategories); + var allCategories = Categories.Concat(subCategories); + var supportsCategory = allCategories.Any(i => categories.Any(c => c == i.ID)); + return supportsCategory; } public JArray CapsToJson() { var jArray = new JArray(); - foreach (var cat in Categories.GroupBy(p => p.ID).Select(g => g.First()).OrderBy(c=> c.ID < 100000 ? "z"+c.ID.ToString() : c.Name)) + foreach (var cat in Categories.GroupBy(p => p.ID).Select(g => g.First()).OrderBy(c => c.ID < 100000 ? "z" + c.ID.ToString() : c.Name)) { jArray.Add(cat.ToJson()); } @@ -124,7 +127,7 @@ namespace Jackett.Models lhs.MovieSearchAvailable = lhs.MovieSearchAvailable || rhs.MovieSearchAvailable; lhs.SupportsTVRageSearch = lhs.SupportsTVRageSearch || rhs.SupportsTVRageSearch; lhs.SupportsImdbSearch = lhs.SupportsImdbSearch || rhs.SupportsImdbSearch; - lhs.Categories.AddRange (rhs.Categories.Except (lhs.Categories)); + lhs.Categories.AddRange(rhs.Categories.Except(lhs.Categories)); return lhs; }