From 80425f5ea4a79ee97e103865cfe13f4213376a54 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Sat, 25 Nov 2023 09:33:18 +0200 Subject: [PATCH] Add exclusive only --- .../Indexers/Definitions/HDBits/HDBitsApi.cs | 1 + .../Definitions/HDBits/HDBitsRequestGenerator.cs | 5 +++++ .../Indexers/Definitions/HDBits/HDBitsSettings.cs | 12 ++++++++++++ 3 files changed, 18 insertions(+) diff --git a/src/NzbDrone.Core/Indexers/Definitions/HDBits/HDBitsApi.cs b/src/NzbDrone.Core/Indexers/Definitions/HDBits/HDBitsApi.cs index 5f8b947ae..f6fa74f33 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/HDBits/HDBitsApi.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/HDBits/HDBitsApi.cs @@ -18,6 +18,7 @@ namespace NzbDrone.Core.Indexers.Definitions.HDBits public IEnumerable Codec { get; set; } public IEnumerable Medium { get; set; } public IEnumerable Origin { get; set; } + public IEnumerable Exclusive { get; set; } [JsonProperty(PropertyName = "imdb")] public ImdbInfo ImdbInfo { get; set; } diff --git a/src/NzbDrone.Core/Indexers/Definitions/HDBits/HDBitsRequestGenerator.cs b/src/NzbDrone.Core/Indexers/Definitions/HDBits/HDBitsRequestGenerator.cs index 87e24b1c2..42dce7f5a 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/HDBits/HDBitsRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/HDBits/HDBitsRequestGenerator.cs @@ -138,6 +138,11 @@ namespace NzbDrone.Core.Indexers.Definitions.HDBits query.Origin = Settings.Origins.ToArray(); } + if (Settings.Exclusive.Any()) + { + query.Exclusive = Settings.Exclusive.ToArray(); + } + if (searchCriteria.Categories?.Length > 0) { query.Category = Capabilities.Categories diff --git a/src/NzbDrone.Core/Indexers/Definitions/HDBits/HDBitsSettings.cs b/src/NzbDrone.Core/Indexers/Definitions/HDBits/HDBitsSettings.cs index 9b3d380da..d68985458 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/HDBits/HDBitsSettings.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/HDBits/HDBitsSettings.cs @@ -27,6 +27,7 @@ namespace NzbDrone.Core.Indexers.Definitions.HDBits Origins = Array.Empty(); FreeleechOnly = false; UseFilenames = true; + Exclusive = Array.Empty(); } [FieldDefinition(2, Label = "Username", HelpText = "IndexerHDBitsSettingsUsernameHelpText", Privacy = PrivacyLevel.UserName)] @@ -50,6 +51,9 @@ namespace NzbDrone.Core.Indexers.Definitions.HDBits [FieldDefinition(8, Label = "IndexerHDBitsSettingsUseFilenames", Type = FieldType.Checkbox, HelpText = "IndexerHDBitsSettingsUseFilenamesHelpText")] public bool UseFilenames { get; set; } + [FieldDefinition(9, Label = "Exclusivities", Type = FieldType.Select, SelectOptions = typeof(HdBitsExclusive), HelpText = "If unspecified, all options are used.", Advanced = true)] + public IEnumerable Exclusive { get; set; } + public override NzbDroneValidationResult Validate() { return new NzbDroneValidationResult(Validator.Validate(this)); @@ -91,4 +95,12 @@ namespace NzbDrone.Core.Indexers.Definitions.HDBits [FieldOption("Internal")] Internal = 1 } + + public enum HdBitsExclusive + { + [FieldOption("Non-exclusive")] + NonExclusive = 0, + [FieldOption("Exclusive")] + Exclusive = 1 + } }