From 7be22af865c51a9f9f8bb659e223d3c1a0accd3f Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Sun, 20 Aug 2023 10:37:36 -0700 Subject: [PATCH] New: Auto tag based on series status Closes #5944 --- .../Specifications/StatusSpecification.cs | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/NzbDrone.Core/AutoTagging/Specifications/StatusSpecification.cs diff --git a/src/NzbDrone.Core/AutoTagging/Specifications/StatusSpecification.cs b/src/NzbDrone.Core/AutoTagging/Specifications/StatusSpecification.cs new file mode 100644 index 000000000..a77af9f36 --- /dev/null +++ b/src/NzbDrone.Core/AutoTagging/Specifications/StatusSpecification.cs @@ -0,0 +1,32 @@ +using FluentValidation; +using NzbDrone.Core.Annotations; +using NzbDrone.Core.Tv; +using NzbDrone.Core.Validation; + +namespace NzbDrone.Core.AutoTagging.Specifications +{ + public class StatusSpecificationValidator : AbstractValidator + { + } + + public class StatusSpecification : AutoTaggingSpecificationBase + { + private static readonly StatusSpecificationValidator Validator = new (); + + public override int Order => 1; + public override string ImplementationName => "Status"; + + [FieldDefinition(1, Label = "Status", Type = FieldType.Select, SelectOptions = typeof(SeriesStatusType))] + public int Status { get; set; } + + protected override bool IsSatisfiedByWithoutNegate(Series series) + { + return series.Status == (SeriesStatusType)Status; + } + + public override NzbDroneValidationResult Validate() + { + return new NzbDroneValidationResult(Validator.Validate(this)); + } + } +}