From 41b043e551932dd8a6cdc1a7bed21e6d2cb7bb7d Mon Sep 17 00:00:00 2001 From: Bogdan Date: Sat, 30 Mar 2024 16:48:02 +0200 Subject: [PATCH] Fixed: (Cardigann) Log invalid category values --- .../Definitions/Cardigann/CardigannParser.cs | 44 +++++++++++-------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/src/NzbDrone.Core/Indexers/Definitions/Cardigann/CardigannParser.cs b/src/NzbDrone.Core/Indexers/Definitions/Cardigann/CardigannParser.cs index 17bdfed72..8edc7d6de 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/Cardigann/CardigannParser.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/Cardigann/CardigannParser.cs @@ -508,19 +508,23 @@ namespace NzbDrone.Core.Indexers.Definitions.Cardigann } var cats = _categories.MapTrackerCatToNewznab(value); + if (cats.Any()) { - if (release.Categories == null || fieldModifiers.Contains("noappend")) - { - release.Categories = cats; - } - else - { - release.Categories = release.Categories.Union(cats).ToList(); - } + release.Categories = release.Categories == null || fieldModifiers.Contains("noappend") + ? cats + : release.Categories.Union(cats).ToList(); + } + + if (value.IsNotNullOrWhiteSpace() && !release.Categories.Any()) + { + _logger.Warn("[{0}] Invalid category for value: '{1}'", _definition.Id, value); + } + else + { + value = release.Categories.ToString(); } - value = release.Categories.ToString(); break; case "categorydesc": if (fieldModifiers.Contains("noappend")) @@ -529,19 +533,23 @@ namespace NzbDrone.Core.Indexers.Definitions.Cardigann } var catsDesc = _categories.MapTrackerCatDescToNewznab(value); + if (catsDesc.Any()) { - if (release.Categories == null || fieldModifiers.Contains("noappend")) - { - release.Categories = catsDesc; - } - else - { - release.Categories = release.Categories.Union(catsDesc).ToList(); - } + release.Categories = release.Categories == null || fieldModifiers.Contains("noappend") + ? catsDesc + : release.Categories.Union(catsDesc).ToList(); + } + + if (value.IsNotNullOrWhiteSpace() && !release.Categories.Any()) + { + _logger.Warn("[{0}] Invalid category for value: '{1}'", _definition.Id, value); + } + else + { + value = release.Categories.ToString(); } - value = release.Categories.ToString(); break; case "size": release.Size = ParseUtil.GetBytes(value);