diff --git a/src/NzbDrone.Core/Indexers/IndexerFactory.cs b/src/NzbDrone.Core/Indexers/IndexerFactory.cs index 58f3a3f68..d26ed6b56 100644 --- a/src/NzbDrone.Core/Indexers/IndexerFactory.cs +++ b/src/NzbDrone.Core/Indexers/IndexerFactory.cs @@ -102,10 +102,19 @@ public override ValidationResult Test(IndexerDefinition definition) { var result = base.Test(definition); - if ((result == null || result.IsValid) && definition.Id != 0) + if (definition.Id == 0) + { + return result; + } + + if (result == null || result.IsValid) { _indexerStatusService.RecordSuccess(definition.Id); } + else + { + _indexerStatusService.RecordFailure(definition.Id); + } return result; } diff --git a/src/NzbDrone.Core/Indexers/Newznab/Newznab.cs b/src/NzbDrone.Core/Indexers/Newznab/Newznab.cs index 8237c630c..0ecf8e070 100644 --- a/src/NzbDrone.Core/Indexers/Newznab/Newznab.cs +++ b/src/NzbDrone.Core/Indexers/Newznab/Newznab.cs @@ -19,8 +19,13 @@ public class Newznab : HttpIndexerBase public override string Name => "Newznab"; public override DownloadProtocol Protocol => DownloadProtocol.Usenet; + public override int PageSize => GetProviderPageSize(); - public override int PageSize => Math.Min(100, Math.Max(_capabilitiesProvider.GetCapabilities(Settings).DefaultPageSize, _capabilitiesProvider.GetCapabilities(Settings).MaxPageSize)); + public Newznab(INewznabCapabilitiesProvider capabilitiesProvider, IHttpClient httpClient, IIndexerStatusService indexerStatusService, IConfigService configService, IParsingService parsingService, Logger logger) + : base(httpClient, indexerStatusService, configService, parsingService, logger) + { + _capabilitiesProvider = capabilitiesProvider; + } public override IIndexerRequestGenerator GetRequestGenerator() { @@ -55,12 +60,6 @@ public override IEnumerable DefaultDefinitions } } - public Newznab(INewznabCapabilitiesProvider capabilitiesProvider, IHttpClient httpClient, IIndexerStatusService indexerStatusService, IConfigService configService, IParsingService parsingService, Logger logger) - : base(httpClient, indexerStatusService, configService, parsingService, logger) - { - _capabilitiesProvider = capabilitiesProvider; - } - private IndexerDefinition GetDefinition(string name, NewznabSettings settings) { return new IndexerDefinition @@ -183,5 +182,17 @@ public override object RequestAction(string action, IDictionary return base.RequestAction(action, query); } + + private int GetProviderPageSize() + { + try + { + return Math.Min(100, Math.Max(_capabilitiesProvider.GetCapabilities(Settings).DefaultPageSize, _capabilitiesProvider.GetCapabilities(Settings).MaxPageSize)); + } + catch + { + return 100; + } + } } } diff --git a/src/NzbDrone.Core/Indexers/Torznab/Torznab.cs b/src/NzbDrone.Core/Indexers/Torznab/Torznab.cs index ff1f0beda..309ab1bba 100644 --- a/src/NzbDrone.Core/Indexers/Torznab/Torznab.cs +++ b/src/NzbDrone.Core/Indexers/Torznab/Torznab.cs @@ -20,7 +20,13 @@ public class Torznab : HttpIndexerBase public override string Name => "Torznab"; public override DownloadProtocol Protocol => DownloadProtocol.Torrent; - public override int PageSize => Math.Min(100, Math.Max(_capabilitiesProvider.GetCapabilities(Settings).DefaultPageSize, _capabilitiesProvider.GetCapabilities(Settings).MaxPageSize)); + public override int PageSize => GetProviderPageSize(); + + public Torznab(INewznabCapabilitiesProvider capabilitiesProvider, IHttpClient httpClient, IIndexerStatusService indexerStatusService, IConfigService configService, IParsingService parsingService, Logger logger) + : base(httpClient, indexerStatusService, configService, parsingService, logger) + { + _capabilitiesProvider = capabilitiesProvider; + } public override IIndexerRequestGenerator GetRequestGenerator() { @@ -44,12 +50,6 @@ public override IEnumerable DefaultDefinitions } } - public Torznab(INewznabCapabilitiesProvider capabilitiesProvider, IHttpClient httpClient, IIndexerStatusService indexerStatusService, IConfigService configService, IParsingService parsingService, Logger logger) - : base(httpClient, indexerStatusService, configService, parsingService, logger) - { - _capabilitiesProvider = capabilitiesProvider; - } - private IndexerDefinition GetDefinition(string name, TorznabSettings settings) { return new IndexerDefinition @@ -187,5 +187,17 @@ public override object RequestAction(string action, IDictionary return base.RequestAction(action, query); } + + private int GetProviderPageSize() + { + try + { + return Math.Min(100, Math.Max(_capabilitiesProvider.GetCapabilities(Settings).DefaultPageSize, _capabilitiesProvider.GetCapabilities(Settings).MaxPageSize)); + } + catch + { + return 100; + } + } } }