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 @@ public class TorrentQuery 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 @@ private IEnumerable GetRequest(TorrentQuery query, SearchCriteri 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 @@ public HDBitsSettings() Origins = Array.Empty(); FreeleechOnly = false; UseFilenames = true; + Exclusive = Array.Empty(); } [FieldDefinition(2, Label = "Username", HelpText = "IndexerHDBitsSettingsUsernameHelpText", Privacy = PrivacyLevel.UserName)] @@ -50,6 +51,9 @@ public HDBitsSettings() [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 @@ public enum HdBitsOrigin [FieldOption("Internal")] Internal = 1 } + + public enum HdBitsExclusive + { + [FieldOption("Non-exclusive")] + NonExclusive = 0, + [FieldOption("Exclusive")] + Exclusive = 1 + } }