diff --git a/src/NzbDrone.Core/HealthCheck/Checks/NewznabVIPCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/IndexerVIPCheck.cs similarity index 75% rename from src/NzbDrone.Core/HealthCheck/Checks/NewznabVIPCheck.cs rename to src/NzbDrone.Core/HealthCheck/Checks/IndexerVIPCheck.cs index b832ce295..7c12348b7 100644 --- a/src/NzbDrone.Core/HealthCheck/Checks/NewznabVIPCheck.cs +++ b/src/NzbDrone.Core/HealthCheck/Checks/IndexerVIPCheck.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Linq; using NzbDrone.Common.Extensions; using NzbDrone.Core.Indexers; -using NzbDrone.Core.Indexers.Newznab; using NzbDrone.Core.Localization; using NzbDrone.Core.ThingiProvider.Events; @@ -12,11 +11,11 @@ namespace NzbDrone.Core.HealthCheck.Checks [CheckOn(typeof(ProviderAddedEvent))] [CheckOn(typeof(ProviderUpdatedEvent))] [CheckOn(typeof(ProviderDeletedEvent))] - public class NewznabVIPCheck : HealthCheckBase + public class IndexerVIPCheck : HealthCheckBase { private readonly IIndexerFactory _indexerFactory; - public NewznabVIPCheck(IIndexerFactory indexerFactory, ILocalizationService localizationService) + public IndexerVIPCheck(IIndexerFactory indexerFactory, ILocalizationService localizationService) : base(localizationService) { _indexerFactory = indexerFactory; @@ -25,13 +24,20 @@ namespace NzbDrone.Core.HealthCheck.Checks public override HealthCheck Check() { var enabled = _indexerFactory.Enabled(false); - var newznabProviders = enabled.Where(i => i.Definition.Implementation == typeof(Newznab).Name); var expiringProviders = new List(); var expiredProviders = new List(); - foreach (var provider in newznabProviders) + foreach (var provider in enabled) { - var expiration = ((NewznabSettings)provider.Definition.Settings).VipExpiration; + var settingsType = provider.Definition.Settings.GetType(); + var vipProp = settingsType.GetProperty("VipExpiration"); + + if (vipProp == null) + { + continue; + } + + var expiration = (string)vipProp.GetValue(provider.Definition.Settings); if (expiration.IsNullOrWhiteSpace()) { @@ -53,18 +59,18 @@ namespace NzbDrone.Core.HealthCheck.Checks { return new HealthCheck(GetType(), HealthCheckResult.Warning, - string.Format(_localizationService.GetLocalizedString("NewznabVipCheckExpiringClientMessage"), + string.Format(_localizationService.GetLocalizedString("IndexerVipCheckExpiringClientMessage"), string.Join(", ", expiringProviders.Select(v => v.Definition.Name))), - "#newznab-vip-expiring"); + "#indexer-vip-expiring"); } if (!expiredProviders.Empty()) { return new HealthCheck(GetType(), HealthCheckResult.Warning, - string.Format(_localizationService.GetLocalizedString("NewznabVipCheckExpiredClientMessage"), + string.Format(_localizationService.GetLocalizedString("IndexerVipCheckExpiredClientMessage"), string.Join(", ", expiredProviders.Select(v => v.Definition.Name))), - "#newznab-vip-expired"); + "#indexer-vip-expired"); } return new HealthCheck(GetType()); diff --git a/src/NzbDrone.Core/Localization/Core/en.json b/src/NzbDrone.Core/Localization/Core/en.json index e5aee90c8..82bfa8088 100644 --- a/src/NzbDrone.Core/Localization/Core/en.json +++ b/src/NzbDrone.Core/Localization/Core/en.json @@ -239,8 +239,8 @@ "Name": "Name", "NetCore": ".NET", "New": "New", - "NewznabVipCheckExpiredClientMessage": "Indexer VIP benefits have expired: {0}", - "NewznabVipCheckExpiringClientMessage": "Indexer VIP benefits expiring soon: {0}", + "IndexerVipCheckExpiredClientMessage": "Indexer VIP benefits have expired: {0}", + "IndexerVipCheckExpiringClientMessage": "Indexer VIP benefits expiring soon: {0}", "NoBackupsAreAvailable": "No backups are available", "NoChange": "No Change", "NoChanges": "No Changes",