diff --git a/src/NzbDrone.Core/IndexerVersions/IndexerDefinitionUpdateService.cs b/src/NzbDrone.Core/IndexerVersions/IndexerDefinitionUpdateService.cs index 72cd5f817..54cff7492 100644 --- a/src/NzbDrone.Core/IndexerVersions/IndexerDefinitionUpdateService.cs +++ b/src/NzbDrone.Core/IndexerVersions/IndexerDefinitionUpdateService.cs @@ -8,7 +8,9 @@ using NzbDrone.Common.Disk; using NzbDrone.Common.EnvironmentInfo; using NzbDrone.Common.Http; using NzbDrone.Core.Indexers.Cardigann; +using NzbDrone.Core.Lifecycle; using NzbDrone.Core.Messaging.Commands; +using NzbDrone.Core.Messaging.Events; using YamlDotNet.Serialization; using YamlDotNet.Serialization.NamingConventions; @@ -21,7 +23,7 @@ namespace NzbDrone.Core.IndexerVersions List GetBlocklist(); } - public class IndexerDefinitionUpdateService : IIndexerDefinitionUpdateService, IExecute + public class IndexerDefinitionUpdateService : IIndexerDefinitionUpdateService, IExecute, IHandle { /* Update Service will fall back if version # does not exist for an indexer per Ta */ @@ -199,8 +201,10 @@ namespace NzbDrone.Core.IndexerVersions } } + var dbDefs = _versionService.All(); + //Check to ensure it's in versioned defs before we go to web - if (!_versionService.All().Any(x => x.File == fileKey)) + if (dbDefs.Count > 0 && dbDefs.Any(x => x.File == fileKey)) { throw new ArgumentNullException(nameof(fileKey)); } @@ -256,6 +260,12 @@ namespace NzbDrone.Core.IndexerVersions return definition; } + public void Handle(ApplicationStartedEvent message) + { + // Sync indexers on app start + UpdateLocalDefinitions(); + } + public void Execute(IndexerDefinitionUpdateCommand message) { UpdateLocalDefinitions();