From 90b047f0d4983c74c3503f4d7debc8cb58b389da Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Thu, 26 Mar 2015 09:06:20 -0700 Subject: [PATCH] Fixed: Searching for unmonitored anime episodes during season/all missing searches --- .../NzbSearchServiceFixture.cs | 23 +++++++++++++++++-- .../IndexerSearch/NzbSearchService.cs | 5 +++- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/NzbDrone.Core.Test/IndexerSearchTests/NzbSearchServiceFixture.cs b/src/NzbDrone.Core.Test/IndexerSearchTests/NzbSearchServiceFixture.cs index 82e571166..8ea33ad65 100644 --- a/src/NzbDrone.Core.Test/IndexerSearchTests/NzbSearchServiceFixture.cs +++ b/src/NzbDrone.Core.Test/IndexerSearchTests/NzbSearchServiceFixture.cs @@ -37,6 +37,7 @@ namespace NzbDrone.Core.Test.IndexerSearchTests _xemSeries = Builder.CreateNew() .With(v => v.UseSceneNumbering = true) + .With(v => v.Monitored = true) .Build(); _xemEpisodes = new List(); @@ -63,6 +64,7 @@ namespace NzbDrone.Core.Test.IndexerSearchTests .With(v => v.EpisodeNumber, episodeNumber) .With(v => v.SceneSeasonNumber, sceneSeasonNumber) .With(v => v.SceneEpisodeNumber, sceneEpisodeNumber) + .With(v => v.Monitored = true) .Build(); _xemEpisodes.Add(episode); @@ -196,12 +198,12 @@ namespace NzbDrone.Core.Test.IndexerSearchTests } [Test] - public void season_search_for_anime_should_search_for_each_episode() + public void season_search_for_anime_should_search_for_each_monitored_episode() { WithEpisodes(); _xemSeries.SeriesType = SeriesTypes.Anime; - var seasonNumber = 1; + var seasonNumber = 1; var allCriteria = WatchForSearchCriteria(); Subject.SeasonSearch(_xemSeries.Id, seasonNumber); @@ -210,5 +212,22 @@ namespace NzbDrone.Core.Test.IndexerSearchTests criteria.Count.Should().Be(_xemEpisodes.Count(e => e.SeasonNumber == seasonNumber)); } + + [Test] + public void season_search_for_anime_should_not_search_for_unmonitored_episodes() + { + WithEpisodes(); + _xemSeries.SeriesType = SeriesTypes.Anime; + _xemEpisodes.ForEach(e => e.Monitored = false); + + var seasonNumber = 1; + var allCriteria = WatchForSearchCriteria(); + + Subject.SeasonSearch(_xemSeries.Id, seasonNumber); + + var criteria = allCriteria.OfType().ToList(); + + criteria.Count.Should().Be(0); + } } } diff --git a/src/NzbDrone.Core/IndexerSearch/NzbSearchService.cs b/src/NzbDrone.Core/IndexerSearch/NzbSearchService.cs index d30a74a0b..881fa99b1 100644 --- a/src/NzbDrone.Core/IndexerSearch/NzbSearchService.cs +++ b/src/NzbDrone.Core/IndexerSearch/NzbSearchService.cs @@ -217,7 +217,10 @@ namespace NzbDrone.Core.IndexerSearch foreach (var episode in episodes) { - downloadDecisions.AddRange(SearchAnime(series, episode)); + if (episode.Monitored) + { + downloadDecisions.AddRange(SearchAnime(series, episode)); + } } return downloadDecisions;