From 9dadb35b98620cf8328c9c41af00f358b7206461 Mon Sep 17 00:00:00 2001 From: Qstick Date: Mon, 3 Jan 2022 18:02:41 -0600 Subject: [PATCH] Fixed: Don't die when definition doesn't exist Fixes #596 --- src/NzbDrone.Core/Indexers/IndexerFactory.cs | 25 +++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/NzbDrone.Core/Indexers/IndexerFactory.cs b/src/NzbDrone.Core/Indexers/IndexerFactory.cs index be4fd0af5..0140eb289 100644 --- a/src/NzbDrone.Core/Indexers/IndexerFactory.cs +++ b/src/NzbDrone.Core/Indexers/IndexerFactory.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using FluentValidation.Results; using NLog; +using NzbDrone.Core.Datastore; using NzbDrone.Core.Indexers.Cardigann; using NzbDrone.Core.Indexers.Newznab; using NzbDrone.Core.IndexerVersions; @@ -45,16 +46,27 @@ namespace NzbDrone.Core.Indexers public override List All() { var definitions = base.All(); + var filteredDefinitions = new List(); foreach (var definition in definitions) { if (definition.Implementation == typeof(Cardigann.Cardigann).Name) { - MapCardigannDefinition(definition); + try + { + MapCardigannDefinition(definition); + } + catch + { + // Skip indexer if we fail in Cardigann mapping + continue; + } } + + filteredDefinitions.Add(definition); } - return definitions; + return filteredDefinitions; } public override IndexerDefinition Get(int id) @@ -63,7 +75,14 @@ namespace NzbDrone.Core.Indexers if (definition.Implementation == typeof(Cardigann.Cardigann).Name) { - MapCardigannDefinition(definition); + try + { + MapCardigannDefinition(definition); + } + catch + { + throw new ModelNotFoundException(typeof(IndexerDefinition), id); + } } return definition;