From ef9473e96ece2876d62fc7cfc0160ebb17692adb 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 artist status (cherry picked from commit 7be22af865c51a9f9f8bb659e223d3c1a0accd3f) --- .../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..a3d3c7e4c --- /dev/null +++ b/src/NzbDrone.Core/AutoTagging/Specifications/StatusSpecification.cs @@ -0,0 +1,32 @@ +using FluentValidation; +using NzbDrone.Core.Annotations; +using NzbDrone.Core.Music; +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(ArtistStatusType))] + public int Status { get; set; } + + protected override bool IsSatisfiedByWithoutNegate(Artist artist) + { + return artist?.Metadata?.Value?.Status == (ArtistStatusType)Status; + } + + public override NzbDroneValidationResult Validate() + { + return new NzbDroneValidationResult(Validator.Validate(this)); + } + } +}