From 1a6a3038d6d74b4ac3cd1510b8f3c348d90a6c4e Mon Sep 17 00:00:00 2001 From: Taloth Saldono Date: Thu, 3 May 2018 23:12:26 +0200 Subject: [PATCH] Added warnings for minimum criteria for BTN. --- .../BroadcastheNet/BroadcastheNetSettings.cs | 2 +- .../Indexers/SeedCriteriaSettings.cs | 32 ++++++++++++++++--- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/src/NzbDrone.Core/Indexers/BroadcastheNet/BroadcastheNetSettings.cs b/src/NzbDrone.Core/Indexers/BroadcastheNet/BroadcastheNetSettings.cs index 993089d74..7d3853216 100644 --- a/src/NzbDrone.Core/Indexers/BroadcastheNet/BroadcastheNetSettings.cs +++ b/src/NzbDrone.Core/Indexers/BroadcastheNet/BroadcastheNetSettings.cs @@ -11,7 +11,7 @@ namespace NzbDrone.Core.Indexers.BroadcastheNet RuleFor(c => c.BaseUrl).ValidRootUrl(); RuleFor(c => c.ApiKey).NotEmpty(); - RuleFor(c => c.SeedCriteria).SetValidator(_ => new SeedCriteriaSettingsValidator()); + RuleFor(c => c.SeedCriteria).SetValidator(_ => new SeedCriteriaSettingsValidator(1.0, 24*60, 5*24*60)); } } diff --git a/src/NzbDrone.Core/Indexers/SeedCriteriaSettings.cs b/src/NzbDrone.Core/Indexers/SeedCriteriaSettings.cs index 9c44a54b4..a5331af31 100644 --- a/src/NzbDrone.Core/Indexers/SeedCriteriaSettings.cs +++ b/src/NzbDrone.Core/Indexers/SeedCriteriaSettings.cs @@ -10,11 +10,35 @@ namespace NzbDrone.Core.Indexers { public class SeedCriteriaSettingsValidator : AbstractValidator { - public SeedCriteriaSettingsValidator() + public SeedCriteriaSettingsValidator(double seedRatioMinimum = 0.0, int seedTimeMinimum = 0, int seasonPackSeedTimeMinimum = 0) { - RuleFor(c => c.SeedRatio).GreaterThan(0.0).When(c => c.SeedRatio.HasValue); - RuleFor(c => c.SeedTime).GreaterThan(0).When(c => c.SeedTime.HasValue); - RuleFor(c => c.SeasonPackSeedTime).GreaterThan(0).When(c => c.SeasonPackSeedTime.HasValue); + RuleFor(c => c.SeedRatio).GreaterThan(0.0).When(c => c.SeedRatio.HasValue).WithMessage("Must be greater than zero"); + RuleFor(c => c.SeedTime).GreaterThan(0).When(c => c.SeedTime.HasValue).WithMessage("Must be greater than zero"); + RuleFor(c => c.SeasonPackSeedTime).GreaterThan(0).When(c => c.SeasonPackSeedTime.HasValue).WithMessage("Must be greater than zero"); + + if (seedRatioMinimum != 0.0) + { + RuleFor(c => c.SeedRatio).GreaterThan(seedRatioMinimum) + .When(c => c.SeedRatio > 0.0) + .AsWarning() + .WithMessage($"Under {seedRatioMinimum} leads to H&R"); + } + + if (seedTimeMinimum != 0) + { + RuleFor(c => c.SeedTime).GreaterThan(seedTimeMinimum) + .When(c => c.SeedTime > 0) + .AsWarning() + .WithMessage($"Under {seedTimeMinimum} leads to H&R"); + } + + if (seasonPackSeedTimeMinimum != 0) + { + RuleFor(c => c.SeasonPackSeedTime).GreaterThan(seasonPackSeedTimeMinimum) + .When(c => c.SeasonPackSeedTime > 0) + .AsWarning() + .WithMessage($"Under {seasonPackSeedTimeMinimum} leads to H&R"); + } } }