From 14a99a28cc96b5b6b1432185df4a6f62c6a36fc1 Mon Sep 17 00:00:00 2001 From: Taloth Saldono Date: Tue, 24 Feb 2015 20:10:44 +0100 Subject: [PATCH] New: Manual single episode searches on BTN will now also search for season packs to simplify manually grabbing a season pack. --- .../Search/SingleEpisodeSearchMatchSpecification.cs | 6 ++++++ .../BroadcastheNet/BroadcastheNetRequestGenerator.cs | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/NzbDrone.Core/DecisionEngine/Specifications/Search/SingleEpisodeSearchMatchSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/Search/SingleEpisodeSearchMatchSpecification.cs index a13ac5285..3ac1a6991 100644 --- a/src/NzbDrone.Core/DecisionEngine/Specifications/Search/SingleEpisodeSearchMatchSpecification.cs +++ b/src/NzbDrone.Core/DecisionEngine/Specifications/Search/SingleEpisodeSearchMatchSpecification.cs @@ -32,6 +32,12 @@ namespace NzbDrone.Core.DecisionEngine.Specifications.Search return Decision.Reject("Wrong season"); } + if (!remoteEpisode.ParsedEpisodeInfo.EpisodeNumbers.Any()) + { + _logger.Debug("Full season result during single episode search, skipping."); + return Decision.Reject("Full season pack"); + } + if (!remoteEpisode.ParsedEpisodeInfo.EpisodeNumbers.Contains(singleEpisodeSpec.EpisodeNumber)) { _logger.Debug("Episode number does not match searched episode number, skipping."); diff --git a/src/NzbDrone.Core/Indexers/BroadcastheNet/BroadcastheNetRequestGenerator.cs b/src/NzbDrone.Core/Indexers/BroadcastheNet/BroadcastheNetRequestGenerator.cs index ea2b70fef..51925e828 100644 --- a/src/NzbDrone.Core/Indexers/BroadcastheNet/BroadcastheNetRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/BroadcastheNet/BroadcastheNetRequestGenerator.cs @@ -44,6 +44,16 @@ namespace NzbDrone.Core.Indexers.BroadcastheNet pageableRequest.AddIfNotNull(GetPagedRequests(MaxPages, parameters)); } + + foreach (var seasonNumber in searchCriteria.Episodes.Select(v => v.SeasonNumber).Distinct()) + { + parameters = parameters.Clone(); + + parameters.Category = "Season"; + parameters.Name = String.Format("Season {0}", seasonNumber); + + pageableRequest.AddIfNotNull(GetPagedRequests(MaxPages, parameters)); + } } return pageableRequest;