From 9fba2458d83c245d8942ace8ecda9def0f8e53c6 Mon Sep 17 00:00:00 2001 From: Qstick Date: Sun, 27 Aug 2017 16:24:44 -0400 Subject: [PATCH] Remove TV search commands (#68) * Remove TV search commands Remove TV search commands * Cleanup Newznab, Fix variable name in IntegrationTests --- .../HistorySpecificationFixture.cs | 4 +- .../MonitoredAlbumSpecificationFixture.cs | 14 +- .../RssSync/ProperSpecificationFixture.cs | 6 +- .../NzbSearchServiceFixture.cs | 265 -------------- .../SearchDefinitionFixture.cs | 2 +- .../SeriesSearchServiceFixture.cs | 81 ---- .../IndexerIntegrationTests.cs | 18 +- .../IndexerTests/SeasonSearchFixture.cs | 92 ----- .../CommandEqualityComparerFixture.cs | 52 +-- .../NzbDrone.Core.Test.csproj | 5 - .../ParsingServiceTests/GetEpisodesFixture.cs | 345 ------------------ .../ParsingServiceTests/MapFixture.cs | 222 ----------- .../Definitions/AnimeEpisodeSearchCriteria.cs | 12 - .../Definitions/DailyEpisodeSearchCriteria.cs | 14 - .../Definitions/SeasonSearchCriteria.cs | 14 - .../SingleEpisodeSearchCriteria.cs | 13 - .../SpecialEpisodeSearchCriteria.cs | 21 -- .../IndexerSearch/EpisodeSearchCommand.cs | 21 -- .../IndexerSearch/EpisodeSearchService.cs | 129 ------- .../IndexerSearch/NzbSearchService.cs | 214 +---------- .../IndexerSearch/SeasonSearchCommand.cs | 12 - .../IndexerSearch/SeasonSearchService.cs | 31 -- .../IndexerSearch/SeriesSearchCommand.cs | 11 - .../IndexerSearch/SeriesSearchService.cs | 49 --- .../Indexers/Fanzub/FanzubRequestGenerator.cs | 33 +- src/NzbDrone.Core/Indexers/HttpIndexerBase.cs | 67 +--- src/NzbDrone.Core/Indexers/IIndexer.cs | 12 +- .../Indexers/IIndexerRequestGenerator.cs | 9 +- .../IPTorrents/IPTorrentsRequestGenerator.cs | 27 +- src/NzbDrone.Core/Indexers/IndexerBase.cs | 12 +- .../Newznab/NewznabRequestGenerator.cs | 198 +--------- .../Indexers/Nyaa/NyaaRequestGenerator.cs | 50 +-- .../Omgwtfnzbs/OmgwtfnzbsRequestGenerator.cs | 65 +--- .../Indexers/Rarbg/RarbgRequestGenerator.cs | 54 +-- .../Indexers/RssIndexerRequestGenerator.cs | 27 +- .../TorrentRssIndexerRequestGenerator.cs | 27 +- .../TorrentleechRequestGenerator.cs | 27 +- .../Waffles/WafflesRequestGenerator.cs | 32 +- src/NzbDrone.Core/NzbDrone.Core.csproj | 11 - src/NzbDrone.Core/Tv/EpisodeAddedService.cs | 4 +- 40 files changed, 48 insertions(+), 2254 deletions(-) delete mode 100644 src/NzbDrone.Core.Test/IndexerSearchTests/NzbSearchServiceFixture.cs delete mode 100644 src/NzbDrone.Core.Test/IndexerSearchTests/SeriesSearchServiceFixture.cs delete mode 100644 src/NzbDrone.Core.Test/IndexerTests/SeasonSearchFixture.cs delete mode 100644 src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetEpisodesFixture.cs delete mode 100644 src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/MapFixture.cs delete mode 100644 src/NzbDrone.Core/IndexerSearch/Definitions/AnimeEpisodeSearchCriteria.cs delete mode 100644 src/NzbDrone.Core/IndexerSearch/Definitions/DailyEpisodeSearchCriteria.cs delete mode 100644 src/NzbDrone.Core/IndexerSearch/Definitions/SeasonSearchCriteria.cs delete mode 100644 src/NzbDrone.Core/IndexerSearch/Definitions/SingleEpisodeSearchCriteria.cs delete mode 100644 src/NzbDrone.Core/IndexerSearch/Definitions/SpecialEpisodeSearchCriteria.cs delete mode 100644 src/NzbDrone.Core/IndexerSearch/EpisodeSearchCommand.cs delete mode 100644 src/NzbDrone.Core/IndexerSearch/EpisodeSearchService.cs delete mode 100644 src/NzbDrone.Core/IndexerSearch/SeasonSearchCommand.cs delete mode 100644 src/NzbDrone.Core/IndexerSearch/SeasonSearchService.cs delete mode 100644 src/NzbDrone.Core/IndexerSearch/SeriesSearchCommand.cs delete mode 100644 src/NzbDrone.Core/IndexerSearch/SeriesSearchService.cs diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/HistorySpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/HistorySpecificationFixture.cs index 4f8aa3891..df79537ae 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/HistorySpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/HistorySpecificationFixture.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using FizzWare.NBuilder; using FluentAssertions; @@ -85,7 +85,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests [Test] public void should_return_true_if_it_is_a_search() { - _upgradeHistory.IsSatisfiedBy(_parseResultMulti, new SeasonSearchCriteria()).Accepted.Should().BeTrue(); + _upgradeHistory.IsSatisfiedBy(_parseResultMulti, new AlbumSearchCriteria()).Accepted.Should().BeTrue(); } [Test] diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/MonitoredAlbumSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/MonitoredAlbumSpecificationFixture.cs index 44494fa1b..71d5d169d 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/MonitoredAlbumSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/MonitoredAlbumSpecificationFixture.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using FizzWare.NBuilder; using FluentAssertions; using NUnit.Framework; @@ -108,34 +108,34 @@ namespace NzbDrone.Core.Test.DecisionEngineTests public void should_return_true_for_single_album_search() { _fakeArtist.Monitored = false; - _monitoredAlbumSpecification.IsSatisfiedBy(_parseResultSingle, new SingleEpisodeSearchCriteria()).Accepted.Should().BeTrue(); + _monitoredAlbumSpecification.IsSatisfiedBy(_parseResultSingle, new AlbumSearchCriteria()).Accepted.Should().BeTrue(); } [Test] public void should_return_true_if_album_is_monitored_for_season_search() { - _monitoredAlbumSpecification.IsSatisfiedBy(_parseResultSingle, new SeasonSearchCriteria()).Accepted.Should().BeTrue(); + _monitoredAlbumSpecification.IsSatisfiedBy(_parseResultSingle, new AlbumSearchCriteria()).Accepted.Should().BeTrue(); } [Test] public void should_return_false_if_album_is_not_monitored_for_season_search() { WithFirstAlbumUnmonitored(); - _monitoredAlbumSpecification.IsSatisfiedBy(_parseResultSingle, new SeasonSearchCriteria()).Accepted.Should().BeFalse(); + _monitoredAlbumSpecification.IsSatisfiedBy(_parseResultSingle, new AlbumSearchCriteria()).Accepted.Should().BeFalse(); } [Test] public void should_return_true_if_album_is_not_monitored_and_monitoredEpisodesOnly_flag_is_false() { WithFirstAlbumUnmonitored(); - _monitoredAlbumSpecification.IsSatisfiedBy(_parseResultSingle, new SingleEpisodeSearchCriteria { MonitoredEpisodesOnly = false }).Accepted.Should().BeTrue(); + _monitoredAlbumSpecification.IsSatisfiedBy(_parseResultSingle, new AlbumSearchCriteria { MonitoredEpisodesOnly = false }).Accepted.Should().BeTrue(); } [Test] public void should_return_false_if_album_is_not_monitored_and_monitoredEpisodesOnly_flag_is_true() { WithFirstAlbumUnmonitored(); - _monitoredAlbumSpecification.IsSatisfiedBy(_parseResultSingle, new SingleEpisodeSearchCriteria{ MonitoredEpisodesOnly = true}).Accepted.Should().BeFalse(); + _monitoredAlbumSpecification.IsSatisfiedBy(_parseResultSingle, new AlbumSearchCriteria{ MonitoredEpisodesOnly = true}).Accepted.Should().BeFalse(); } } -} \ No newline at end of file +} diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/RssSync/ProperSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/RssSync/ProperSpecificationFixture.cs index 4eb2968d2..3a02acf7f 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/RssSync/ProperSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/RssSync/ProperSpecificationFixture.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using FizzWare.NBuilder; using FluentAssertions; @@ -118,7 +118,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync WithFirstFileUpgradable(); _firstFile.DateAdded = DateTime.Today.AddDays(-30); - Subject.IsSatisfiedBy(_parseResultSingle, new SingleEpisodeSearchCriteria()).Accepted.Should().BeTrue(); + Subject.IsSatisfiedBy(_parseResultSingle, new AlbumSearchCriteria()).Accepted.Should().BeTrue(); } [Test] @@ -141,4 +141,4 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue(); } } -} \ No newline at end of file +} diff --git a/src/NzbDrone.Core.Test/IndexerSearchTests/NzbSearchServiceFixture.cs b/src/NzbDrone.Core.Test/IndexerSearchTests/NzbSearchServiceFixture.cs deleted file mode 100644 index f6089004e..000000000 --- a/src/NzbDrone.Core.Test/IndexerSearchTests/NzbSearchServiceFixture.cs +++ /dev/null @@ -1,265 +0,0 @@ -using NzbDrone.Core.DecisionEngine; -using NzbDrone.Core.DataAugmentation.Scene; -using NzbDrone.Core.IndexerSearch; -using NzbDrone.Core.Test.Framework; -using FizzWare.NBuilder; -using System.Collections.Generic; -using System.Linq; -using FluentAssertions; -using Moq; -using NUnit.Framework; -using NzbDrone.Core.Tv; -using NzbDrone.Core.Indexers; -using NzbDrone.Core.IndexerSearch.Definitions; - -namespace NzbDrone.Core.Test.IndexerSearchTests -{ - public class NzbSearchServiceFixture : CoreTest - { - private Mock _mockIndexer; - private Series _xemSeries; - private List _xemEpisodes; - - [SetUp] - public void SetUp() - { - _mockIndexer = Mocker.GetMock(); - _mockIndexer.SetupGet(s => s.Definition).Returns(new IndexerDefinition { Id = 1 }); - _mockIndexer.SetupGet(s => s.SupportsSearch).Returns(true); - - Mocker.GetMock() - .Setup(s => s.SearchEnabled(true)) - .Returns(new List { _mockIndexer.Object }); - - Mocker.GetMock() - .Setup(s => s.GetSearchDecision(It.IsAny>(), It.IsAny())) - .Returns(new List()); - - _xemSeries = Builder.CreateNew() - .With(v => v.UseSceneNumbering = true) - .With(v => v.Monitored = true) - .Build(); - - _xemEpisodes = new List(); - - Mocker.GetMock() - .Setup(v => v.GetSeries(_xemSeries.Id)) - .Returns(_xemSeries); - - Mocker.GetMock() - .Setup(v => v.GetEpisodesBySeason(_xemSeries.Id, It.IsAny())) - .Returns((i, j) => _xemEpisodes.Where(d => d.SeasonNumber == j).ToList()); - - Mocker.GetMock() - .Setup(s => s.GetSceneNames(It.IsAny(), It.IsAny>(), It.IsAny>())) - .Returns(new List()); - } - - private void WithEpisode(int seasonNumber, int episodeNumber, int? sceneSeasonNumber, int? sceneEpisodeNumber) - { - var episode = Builder.CreateNew() - .With(v => v.SeriesId == _xemSeries.Id) - .With(v => v.Series == _xemSeries) - .With(v => v.SeasonNumber, seasonNumber) - .With(v => v.EpisodeNumber, episodeNumber) - .With(v => v.SceneSeasonNumber, sceneSeasonNumber) - .With(v => v.SceneEpisodeNumber, sceneEpisodeNumber) - .With(v => v.Monitored = true) - .Build(); - - _xemEpisodes.Add(episode); - } - - private void WithEpisodes() - { - // Season 1 maps to Scene Season 2 (one-to-one) - WithEpisode(1, 12, 2, 3); - WithEpisode(1, 13, 2, 4); - - // Season 2 maps to Scene Season 3 & 4 (one-to-one) - WithEpisode(2, 1, 3, 11); - WithEpisode(2, 2, 3, 12); - WithEpisode(2, 3, 4, 11); - WithEpisode(2, 4, 4, 12); - - // Season 3 maps to Scene Season 5 (partial) - // Season 4 maps to Scene Season 5 & 6 (partial) - WithEpisode(3, 1, 5, 11); - WithEpisode(3, 2, 5, 12); - WithEpisode(4, 1, 5, 13); - WithEpisode(4, 2, 5, 14); - WithEpisode(4, 3, 6, 11); - WithEpisode(5, 1, 6, 12); - - // Season 7+ maps normally, so no mapping specified. - WithEpisode(7, 1, null, null); - WithEpisode(7, 2, null, null); - } - - private List WatchForSearchCriteria() - { - var result = new List(); - - _mockIndexer.Setup(v => v.Fetch(It.IsAny())) - .Callback(s => result.Add(s)) - .Returns(new List()); - - _mockIndexer.Setup(v => v.Fetch(It.IsAny())) - .Callback(s => result.Add(s)) - .Returns(new List()); - - _mockIndexer.Setup(v => v.Fetch(It.IsAny())) - .Callback(s => result.Add(s)) - .Returns(new List()); - - return result; - } - - [Test] - public void scene_episodesearch() - { - WithEpisodes(); - - var allCriteria = WatchForSearchCriteria(); - - Subject.EpisodeSearch(_xemEpisodes.First(), true); - - var criteria = allCriteria.OfType().ToList(); - - criteria.Count.Should().Be(1); - criteria[0].SeasonNumber.Should().Be(2); - criteria[0].EpisodeNumber.Should().Be(3); - } - - [Test] - public void scene_seasonsearch() - { - WithEpisodes(); - - var allCriteria = WatchForSearchCriteria(); - - Subject.SeasonSearch(_xemSeries.Id, 1, false, true); - - var criteria = allCriteria.OfType().ToList(); - - criteria.Count.Should().Be(1); - criteria[0].SeasonNumber.Should().Be(2); - } - - [Test] - public void scene_seasonsearch_should_search_multiple_seasons() - { - WithEpisodes(); - - var allCriteria = WatchForSearchCriteria(); - - Subject.SeasonSearch(_xemSeries.Id, 2, false, true); - - var criteria = allCriteria.OfType().ToList(); - - criteria.Count.Should().Be(2); - criteria[0].SeasonNumber.Should().Be(3); - criteria[1].SeasonNumber.Should().Be(4); - } - - [Test] - public void scene_seasonsearch_should_search_single_episode_if_possible() - { - WithEpisodes(); - - var allCriteria = WatchForSearchCriteria(); - - Subject.SeasonSearch(_xemSeries.Id, 4, false, true); - - var criteria1 = allCriteria.OfType().ToList(); - var criteria2 = allCriteria.OfType().ToList(); - - criteria1.Count.Should().Be(1); - criteria1[0].SeasonNumber.Should().Be(5); - - criteria2.Count.Should().Be(1); - criteria2[0].SeasonNumber.Should().Be(6); - criteria2[0].EpisodeNumber.Should().Be(11); - } - - [Test] - public void scene_seasonsearch_should_use_seasonnumber_if_no_scene_number_is_available() - { - WithEpisodes(); - - var allCriteria = WatchForSearchCriteria(); - - Subject.SeasonSearch(_xemSeries.Id, 7, false, true); - - var criteria = allCriteria.OfType().ToList(); - - criteria.Count.Should().Be(1); - criteria[0].SeasonNumber.Should().Be(7); - } - - [Test] - public void season_search_for_anime_should_search_for_each_monitored_episode() - { - WithEpisodes(); - _xemSeries.SeriesType = SeriesTypes.Anime; - _xemEpisodes.ForEach(e => e.EpisodeFileId = 0); - - var seasonNumber = 1; - var allCriteria = WatchForSearchCriteria(); - - Subject.SeasonSearch(_xemSeries.Id, seasonNumber, true, true); - - var criteria = allCriteria.OfType().ToList(); - - 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); - _xemEpisodes.ForEach(e => e.EpisodeFileId = 0); - - var seasonNumber = 1; - var allCriteria = WatchForSearchCriteria(); - - Subject.SeasonSearch(_xemSeries.Id, seasonNumber, false, true); - - var criteria = allCriteria.OfType().ToList(); - - criteria.Count.Should().Be(0); - } - - [Test] - public void season_search_for_anime_should_not_search_for_episodes_with_files() - { - WithEpisodes(); - _xemSeries.SeriesType = SeriesTypes.Anime; - _xemEpisodes.ForEach(e => e.EpisodeFileId = 1); - - var seasonNumber = 1; - var allCriteria = WatchForSearchCriteria(); - - Subject.SeasonSearch(_xemSeries.Id, seasonNumber, true, true); - - var criteria = allCriteria.OfType().ToList(); - - criteria.Count.Should().Be(0); - } - - [Test] - public void getscenenames_should_use_seasonnumber_if_no_scene_seasonnumber_is_available() - { - WithEpisodes(); - - var allCriteria = WatchForSearchCriteria(); - - Subject.SeasonSearch(_xemSeries.Id, 7, false, true); - - Mocker.GetMock() - .Verify(v => v.GetSceneNames(_xemSeries.Id, It.Is>(l => l.Contains(7)), It.Is>(l => l.Contains(7))), Times.Once()); - } - } -} diff --git a/src/NzbDrone.Core.Test/IndexerSearchTests/SearchDefinitionFixture.cs b/src/NzbDrone.Core.Test/IndexerSearchTests/SearchDefinitionFixture.cs index 02c4db4bb..a85ffc5bb 100644 --- a/src/NzbDrone.Core.Test/IndexerSearchTests/SearchDefinitionFixture.cs +++ b/src/NzbDrone.Core.Test/IndexerSearchTests/SearchDefinitionFixture.cs @@ -7,7 +7,7 @@ using NzbDrone.Core.Test.Framework; namespace NzbDrone.Core.Test.IndexerSearchTests { - public class SearchDefinitionFixture : CoreTest + public class SearchDefinitionFixture : CoreTest { [TestCase("Betty White's Off Their Rockers", "Betty+Whites+Off+Their+Rockers")] [TestCase("Star Wars: The Clone Wars", "Star+Wars+The+Clone+Wars")] diff --git a/src/NzbDrone.Core.Test/IndexerSearchTests/SeriesSearchServiceFixture.cs b/src/NzbDrone.Core.Test/IndexerSearchTests/SeriesSearchServiceFixture.cs deleted file mode 100644 index 32a3cb668..000000000 --- a/src/NzbDrone.Core.Test/IndexerSearchTests/SeriesSearchServiceFixture.cs +++ /dev/null @@ -1,81 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using FluentAssertions; -using Moq; -using NUnit.Framework; -using NzbDrone.Core.DecisionEngine; -using NzbDrone.Core.Download; -using NzbDrone.Core.IndexerSearch; -using NzbDrone.Core.Test.Framework; -using NzbDrone.Core.Tv; -using NzbDrone.Core.Messaging.Commands; - -namespace NzbDrone.Core.Test.IndexerSearchTests -{ - [System.Obsolete("Sonarr TV stuff. Not needed in lidarr.")] - [TestFixture] - public class SeriesSearchServiceFixture : CoreTest - { - private Series _series; - - [SetUp] - public void Setup() - { - _series = new Series - { - Id = 1, - Title = "Title", - Seasons = new List() - }; - - Mocker.GetMock() - .Setup(s => s.GetSeries(It.IsAny())) - .Returns(_series); - - Mocker.GetMock() - .Setup(s => s.SeasonSearch(_series.Id, It.IsAny(), false, true)) - .Returns(new List()); - - Mocker.GetMock() - .Setup(s => s.ProcessDecisions(It.IsAny>())) - .Returns(new ProcessedDecisions(new List(), new List(), new List())); - } - - [Test] - public void should_only_include_monitored_seasons() - { - _series.Seasons = new List - { - new Season { SeasonNumber = 0, Monitored = false }, - new Season { SeasonNumber = 1, Monitored = true } - }; - - Subject.Execute(new SeriesSearchCommand { SeriesId = _series.Id, Trigger = CommandTrigger.Manual }); - - Mocker.GetMock() - .Verify(v => v.SeasonSearch(_series.Id, It.IsAny(), false, true), Times.Exactly(_series.Seasons.Count(s => s.Monitored))); - } - - [Test] - public void should_start_with_lower_seasons_first() - { - var seasonOrder = new List(); - - _series.Seasons = new List - { - new Season { SeasonNumber = 3, Monitored = true }, - new Season { SeasonNumber = 1, Monitored = true }, - new Season { SeasonNumber = 2, Monitored = true } - }; - - Mocker.GetMock() - .Setup(s => s.SeasonSearch(_series.Id, It.IsAny(), false, true)) - .Returns(new List()) - .Callback((seriesId, seasonNumber, missingOnly, userInvokedSearch) => seasonOrder.Add(seasonNumber)); - - Subject.Execute(new SeriesSearchCommand { SeriesId = _series.Id, Trigger = CommandTrigger.Manual }); - - seasonOrder.First().Should().Be(_series.Seasons.OrderBy(s => s.SeasonNumber).First().SeasonNumber); - } - } -} diff --git a/src/NzbDrone.Core.Test/IndexerTests/IntegrationTests/IndexerIntegrationTests.cs b/src/NzbDrone.Core.Test/IndexerTests/IntegrationTests/IndexerIntegrationTests.cs index a72bb8f57..85db388d1 100644 --- a/src/NzbDrone.Core.Test/IndexerTests/IntegrationTests/IndexerIntegrationTests.cs +++ b/src/NzbDrone.Core.Test/IndexerTests/IntegrationTests/IndexerIntegrationTests.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using FluentAssertions; using NUnit.Framework; @@ -16,26 +16,16 @@ namespace NzbDrone.Core.Test.IndexerTests.IntegrationTests [IntegrationTest] public class IndexerIntegrationTests : CoreTest { - private SingleEpisodeSearchCriteria _singleSearchCriteria; - private AnimeEpisodeSearchCriteria _animeSearchCriteria; + private AlbumSearchCriteria _albumSearchCriteria; [SetUp] public void SetUp() { UseRealHttp(); - _singleSearchCriteria = new SingleEpisodeSearchCriteria() + _albumSearchCriteria = new AlbumSearchCriteria() { - SceneTitles = new List { "Person of Interest" }, - SeasonNumber = 1, - EpisodeNumber = 1 }; - - _animeSearchCriteria = new AnimeEpisodeSearchCriteria() - { - SceneTitles = new List { "Steins;Gate" }, - AbsoluteEpisodeNumber = 1 - }; } [Test] @@ -65,7 +55,7 @@ namespace NzbDrone.Core.Test.IndexerTests.IntegrationTests Settings = new NyaaSettings() }; - var result = indexer.Fetch(_animeSearchCriteria); + var result = indexer.Fetch(_albumSearchCriteria); ValidateTorrentResult(result, hasSize: true); } diff --git a/src/NzbDrone.Core.Test/IndexerTests/SeasonSearchFixture.cs b/src/NzbDrone.Core.Test/IndexerTests/SeasonSearchFixture.cs deleted file mode 100644 index 075bb73e2..000000000 --- a/src/NzbDrone.Core.Test/IndexerTests/SeasonSearchFixture.cs +++ /dev/null @@ -1,92 +0,0 @@ -using System.Collections.Generic; -using FizzWare.NBuilder; -using Moq; -using NUnit.Framework; -using NzbDrone.Common.Http; -using NzbDrone.Core.Indexers; -using NzbDrone.Core.IndexerSearch.Definitions; -using NzbDrone.Core.Parser.Model; -using NzbDrone.Core.Tv; -using NzbDrone.Test.Common; - -namespace NzbDrone.Core.Test.IndexerTests -{ - [TestFixture] - public class SeasonSearchFixture : TestBase - { - private Series _series; - - [SetUp] - public void Setup() - { - _series = Builder.CreateNew().Build(); - - Mocker.GetMock() - .Setup(o => o.Execute(It.Is(v => v.Method == HttpMethod.GET))) - .Returns(r => new HttpResponse(r, new HttpHeader(), "")); - } - - private void WithIndexer(bool paging, int resultCount) - { - var definition = new IndexerDefinition(); - definition.Name = "Test"; - Subject.Definition = definition; - - Subject._supportedPageSize = paging ? 100 : 0; - - var requestGenerator = Mocker.GetMock(); - Subject._requestGenerator = requestGenerator.Object; - - var requests = Builder.CreateListOfSize(paging ? 100 : 1) - .All() - .WithConstructor(() => new IndexerRequest("http://my.feed.local/", HttpAccept.Rss)) - .With(v => v.HttpRequest.Method = HttpMethod.GET) - .Build(); - - var pageable = new IndexerPageableRequestChain(); - pageable.Add(requests); - - requestGenerator.Setup(s => s.GetSearchRequests(It.IsAny())) - .Returns(pageable); - - var parser = Mocker.GetMock(); - Subject._parser = parser.Object; - - var results = Builder.CreateListOfSize(resultCount) - .Build(); - - parser.Setup(s => s.ParseResponse(It.IsAny())) - .Returns(results); - } - - [Test] - public void should_not_use_offset_if_result_count_is_less_than_90() - { - WithIndexer(true, 25); - - Subject.Fetch(new SeasonSearchCriteria { Series = _series, SceneTitles = new List{_series.Title} }); - - Mocker.GetMock().Verify(v => v.Execute(It.IsAny()), Times.Once()); - } - - [Test] - public void should_not_use_offset_for_sites_that_do_not_support_it() - { - WithIndexer(false, 125); - - Subject.Fetch(new SeasonSearchCriteria { Series = _series, SceneTitles = new List { _series.Title } }); - - Mocker.GetMock().Verify(v => v.Execute(It.IsAny()), Times.Once()); - } - - [Test] - public void should_not_use_offset_if_its_already_tried_10_times() - { - WithIndexer(true, 100); - - Subject.Fetch(new SeasonSearchCriteria { Series = _series, SceneTitles = new List { _series.Title } }); - - Mocker.GetMock().Verify(v => v.Execute(It.IsAny()), Times.Exactly(10)); - } - } -} diff --git a/src/NzbDrone.Core.Test/Messaging/Commands/CommandEqualityComparerFixture.cs b/src/NzbDrone.Core.Test/Messaging/Commands/CommandEqualityComparerFixture.cs index 8154c7a24..61069fc98 100644 --- a/src/NzbDrone.Core.Test/Messaging/Commands/CommandEqualityComparerFixture.cs +++ b/src/NzbDrone.Core.Test/Messaging/Commands/CommandEqualityComparerFixture.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using FluentAssertions; using NUnit.Framework; using NzbDrone.Core.Indexers; @@ -24,17 +24,8 @@ namespace NzbDrone.Core.Test.Messaging.Commands [Test] public void should_return_true_when_single_property_matches() { - var command1 = new EpisodeSearchCommand { EpisodeIds = new List{ 1 } }; - var command2 = new EpisodeSearchCommand { EpisodeIds = new List { 1 } }; - - CommandEqualityComparer.Instance.Equals(command1, command2).Should().BeTrue(); - } - - [Test] - public void should_return_true_when_multiple_properties_match() - { - var command1 = new SeasonSearchCommand { SeriesId = 1, SeasonNumber = 1 }; - var command2 = new SeasonSearchCommand { SeriesId = 1, SeasonNumber = 1 }; + var command1 = new AlbumSearchCommand { AlbumIds = new List{ 1 } }; + var command2 = new AlbumSearchCommand { AlbumIds = new List { 1 } }; CommandEqualityComparer.Instance.Equals(command1, command2).Should().BeTrue(); } @@ -42,35 +33,18 @@ namespace NzbDrone.Core.Test.Messaging.Commands [Test] public void should_return_false_when_single_property_doesnt_match() { - var command1 = new EpisodeSearchCommand { EpisodeIds = new List { 1 } }; - var command2 = new EpisodeSearchCommand { EpisodeIds = new List { 2 } }; + var command1 = new AlbumSearchCommand { AlbumIds = new List { 1 } }; + var command2 = new AlbumSearchCommand { AlbumIds = new List { 2 } }; CommandEqualityComparer.Instance.Equals(command1, command2).Should().BeFalse(); } - [Test] - public void should_return_false_when_only_one_property_matches() - { - var command1 = new SeasonSearchCommand { SeriesId = 1, SeasonNumber = 1 }; - var command2 = new SeasonSearchCommand { SeriesId = 1, SeasonNumber = 2 }; - - CommandEqualityComparer.Instance.Equals(command1, command2).Should().BeFalse(); - } - - [Test] - public void should_return_false_when_no_properties_match() - { - var command1 = new SeasonSearchCommand { SeriesId = 1, SeasonNumber = 1 }; - var command2 = new SeasonSearchCommand { SeriesId = 2, SeasonNumber = 2 }; - - CommandEqualityComparer.Instance.Equals(command1, command2).Should().BeFalse(); - } [Test] public void should_return_false_when_only_one_has_properties() { - var command1 = new SeasonSearchCommand(); - var command2 = new SeasonSearchCommand { SeriesId = 2, SeasonNumber = 2 }; + var command1 = new ArtistSearchCommand(); + var command2 = new ArtistSearchCommand { ArtistId = 2}; CommandEqualityComparer.Instance.Equals(command1, command2).Should().BeFalse(); } @@ -78,8 +52,8 @@ namespace NzbDrone.Core.Test.Messaging.Commands [Test] public void should_return_false_when_only_one_has_null_property() { - var command1 = new EpisodeSearchCommand(null); - var command2 = new EpisodeSearchCommand(new List()); + var command1 = new AlbumSearchCommand(null); + var command2 = new AlbumSearchCommand(new List()); CommandEqualityComparer.Instance.Equals(command1, command2).Should().BeFalse(); } @@ -93,8 +67,8 @@ namespace NzbDrone.Core.Test.Messaging.Commands [Test] public void should_return_false_when_commands_list_are_different_lengths() { - var command1 = new EpisodeSearchCommand { EpisodeIds = new List { 1 } }; - var command2 = new EpisodeSearchCommand { EpisodeIds = new List { 1, 2 } }; + var command1 = new AlbumSearchCommand { AlbumIds = new List { 1 } }; + var command2 = new AlbumSearchCommand { AlbumIds = new List { 1, 2 } }; CommandEqualityComparer.Instance.Equals(command1, command2).Should().BeFalse(); } @@ -102,8 +76,8 @@ namespace NzbDrone.Core.Test.Messaging.Commands [Test] public void should_return_false_when_commands_list_dont_match() { - var command1 = new EpisodeSearchCommand { EpisodeIds = new List { 1 } }; - var command2 = new EpisodeSearchCommand { EpisodeIds = new List { 2 } }; + var command1 = new AlbumSearchCommand { AlbumIds = new List { 1 } }; + var command2 = new AlbumSearchCommand { AlbumIds = new List { 2 } }; CommandEqualityComparer.Instance.Equals(command1, command2).Should().BeFalse(); } diff --git a/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj b/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj index 907074a0b..7f6ddd559 100644 --- a/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj +++ b/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj @@ -247,8 +247,6 @@ - - @@ -264,7 +262,6 @@ - @@ -341,9 +338,7 @@ - - diff --git a/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetEpisodesFixture.cs b/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetEpisodesFixture.cs deleted file mode 100644 index 7221038e7..000000000 --- a/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetEpisodesFixture.cs +++ /dev/null @@ -1,345 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using FizzWare.NBuilder; -using Moq; -using NUnit.Framework; -using NzbDrone.Core.DataAugmentation.Scene; -using NzbDrone.Core.IndexerSearch.Definitions; -using NzbDrone.Core.Parser; -using NzbDrone.Core.Parser.Model; -using NzbDrone.Core.Tv; -using NzbDrone.Test.Common; - -namespace NzbDrone.Core.Test.ParserTests.ParsingServiceTests -{ - [TestFixture] - public class GetEpisodesFixture : TestBase - { - private Series _series; - private List _episodes; - private ParsedEpisodeInfo _parsedEpisodeInfo; - private SingleEpisodeSearchCriteria _singleEpisodeSearchCriteria; - - [SetUp] - public void Setup() - { - _series = Builder.CreateNew() - .With(s => s.Title = "30 Rock") - .With(s => s.CleanTitle = "rock") - .Build(); - - _episodes = Builder.CreateListOfSize(1) - .All() - .With(e => e.AirDate = DateTime.Today.ToString(Episode.AIR_DATE_FORMAT)) - .Build() - .ToList(); - - _parsedEpisodeInfo = new ParsedEpisodeInfo - { - SeriesTitle = _series.Title, - SeasonNumber = 1, - EpisodeNumbers = new[] { 1 }, - AbsoluteEpisodeNumbers = new int[0] - }; - - _singleEpisodeSearchCriteria = new SingleEpisodeSearchCriteria - { - Series = _series, - EpisodeNumber = _episodes.First().EpisodeNumber, - SeasonNumber = _episodes.First().SeasonNumber, - Episodes = _episodes - }; - - Mocker.GetMock() - .Setup(s => s.FindByTitle(It.IsAny())) - .Returns(_series); - } - - private void GivenDailySeries() - { - _series.SeriesType = SeriesTypes.Daily; - } - - private void GivenDailyParseResult() - { - _parsedEpisodeInfo.AirDate = DateTime.Today.ToString(Episode.AIR_DATE_FORMAT); - } - - private void GivenSceneNumberingSeries() - { - _series.UseSceneNumbering = true; - } - - private void GivenAbsoluteNumberingSeries() - { - _parsedEpisodeInfo.AbsoluteEpisodeNumbers = new[] { 1 }; - } - - [Test] - public void should_get_daily_episode_episode_when_search_criteria_is_null() - { - GivenDailySeries(); - GivenDailyParseResult(); - - Subject.Map(_parsedEpisodeInfo, _series.TvdbId, _series.TvRageId); - - Mocker.GetMock() - .Verify(v => v.FindEpisode(It.IsAny(), It.IsAny()), Times.Once()); - } - - [Test] - public void should_use_search_criteria_episode_when_it_matches_daily() - { - GivenDailySeries(); - GivenDailyParseResult(); - - Subject.Map(_parsedEpisodeInfo, _series.TvdbId, _series.TvRageId, _singleEpisodeSearchCriteria); - - Mocker.GetMock() - .Verify(v => v.FindEpisode(It.IsAny(), It.IsAny()), Times.Never()); - } - - [Test] - public void should_fallback_to_daily_episode_lookup_when_search_criteria_episode_doesnt_match() - { - GivenDailySeries(); - _parsedEpisodeInfo.AirDate = DateTime.Today.AddDays(-5).ToString(Episode.AIR_DATE_FORMAT); ; - - Subject.Map(_parsedEpisodeInfo, _series.TvdbId, _series.TvRageId, _singleEpisodeSearchCriteria); - - Mocker.GetMock() - .Verify(v => v.FindEpisode(It.IsAny(), It.IsAny()), Times.Once()); - } - - [Test] - public void should_use_search_criteria_episode_when_it_matches_absolute() - { - GivenAbsoluteNumberingSeries(); - - Subject.Map(_parsedEpisodeInfo, _series.TvdbId, _series.TvRageId, _singleEpisodeSearchCriteria); - - Mocker.GetMock() - .Verify(v => v.FindEpisode(It.IsAny(), It.IsAny()), Times.Never()); - } - - [Test] - public void should_use_scene_numbering_when_series_uses_scene_numbering() - { - GivenSceneNumberingSeries(); - - Subject.Map(_parsedEpisodeInfo, _series.TvdbId, _series.TvRageId); - - Mocker.GetMock() - .Verify(v => v.FindEpisodesBySceneNumbering(It.IsAny(), It.IsAny(), It.IsAny()), Times.Once()); - } - - [Test] - public void should_match_search_criteria_by_scene_numbering() - { - GivenSceneNumberingSeries(); - - Subject.Map(_parsedEpisodeInfo, _series.TvdbId, _series.TvRageId, _singleEpisodeSearchCriteria); - - Mocker.GetMock() - .Verify(v => v.FindEpisodesBySceneNumbering(It.IsAny(), It.IsAny(), It.IsAny()), Times.Never()); - } - - [Test] - public void should_fallback_to_findEpisode_when_search_criteria_match_fails_for_scene_numbering() - { - GivenSceneNumberingSeries(); - _episodes.First().SceneEpisodeNumber = 10; - - Subject.Map(_parsedEpisodeInfo, _series.TvdbId, _series.TvRageId, _singleEpisodeSearchCriteria); - - Mocker.GetMock() - .Verify(v => v.FindEpisodesBySceneNumbering(It.IsAny(), It.IsAny(), It.IsAny()), Times.Once()); - } - - [Test] - public void should_find_episode() - { - Subject.Map(_parsedEpisodeInfo, _series.TvdbId, _series.TvRageId); - - Mocker.GetMock() - .Verify(v => v.FindEpisode(It.IsAny(), It.IsAny(), It.IsAny()), Times.Once()); - } - - [Test] - public void should_match_episode_with_search_criteria() - { - Subject.Map(_parsedEpisodeInfo, _series.TvdbId, _series.TvRageId, _singleEpisodeSearchCriteria); - - Mocker.GetMock() - .Verify(v => v.FindEpisode(It.IsAny(), It.IsAny(), It.IsAny()), Times.Never()); - } - - [Test] - public void should_fallback_to_findEpisode_when_search_criteria_match_fails() - { - _episodes.First().EpisodeNumber = 10; - - Subject.Map(_parsedEpisodeInfo, _series.TvdbId, _series.TvRageId, _singleEpisodeSearchCriteria); - - Mocker.GetMock() - .Verify(v => v.FindEpisode(It.IsAny(), It.IsAny(), It.IsAny()), Times.Once()); - } - - [Test] - public void should_look_for_episode_in_season_zero_if_absolute_special() - { - GivenAbsoluteNumberingSeries(); - - _parsedEpisodeInfo.Special = true; - - Subject.GetEpisodes(_parsedEpisodeInfo, _series, true, null); - - Mocker.GetMock() - .Verify(v => v.FindEpisodesBySceneNumbering(It.IsAny(), 0, It.IsAny()), Times.Never()); - - Mocker.GetMock() - .Verify(v => v.FindEpisode(It.IsAny(), 0, It.IsAny()), Times.Once()); - } - - [TestCase(0)] - [TestCase(1)] - [TestCase(2)] - public void should_use_scene_numbering_when_scene_season_number_has_value(int seasonNumber) - { - GivenAbsoluteNumberingSeries(); - - Mocker.GetMock() - .Setup(s => s.GetSceneSeasonNumber(_parsedEpisodeInfo.SeriesTitle)) - .Returns(seasonNumber); - - Mocker.GetMock() - .Setup(s => s.FindEpisodesBySceneNumbering(It.IsAny(), seasonNumber, It.IsAny())) - .Returns(new List()); - - Subject.GetEpisodes(_parsedEpisodeInfo, _series, true, null); - - Mocker.GetMock() - .Verify(v => v.FindEpisodesBySceneNumbering(It.IsAny(), seasonNumber, It.IsAny()), Times.Once()); - - Mocker.GetMock() - .Verify(v => v.FindEpisode(It.IsAny(), seasonNumber, It.IsAny()), Times.Once()); - } - - [TestCase(0)] - [TestCase(1)] - [TestCase(2)] - public void should_find_episode_by_season_and_scene_absolute_episode_number(int seasonNumber) - { - GivenAbsoluteNumberingSeries(); - - Mocker.GetMock() - .Setup(s => s.GetSceneSeasonNumber(_parsedEpisodeInfo.SeriesTitle)) - .Returns(seasonNumber); - - Mocker.GetMock() - .Setup(s => s.FindEpisodesBySceneNumbering(It.IsAny(), seasonNumber, It.IsAny())) - .Returns(new List { _episodes.First() }); - - Subject.GetEpisodes(_parsedEpisodeInfo, _series, true, null); - - Mocker.GetMock() - .Verify(v => v.FindEpisodesBySceneNumbering(It.IsAny(), seasonNumber, It.IsAny()), Times.Once()); - - Mocker.GetMock() - .Verify(v => v.FindEpisode(It.IsAny(), seasonNumber, It.IsAny()), Times.Never()); - } - - [TestCase(0)] - [TestCase(1)] - [TestCase(2)] - public void should_find_episode_by_season_and_absolute_episode_number_when_scene_absolute_episode_number_returns_multiple_results(int seasonNumber) - { - GivenAbsoluteNumberingSeries(); - - Mocker.GetMock() - .Setup(s => s.GetSceneSeasonNumber(_parsedEpisodeInfo.SeriesTitle)) - .Returns(seasonNumber); - - Mocker.GetMock() - .Setup(s => s.FindEpisodesBySceneNumbering(It.IsAny(), seasonNumber, It.IsAny())) - .Returns(Builder.CreateListOfSize(5).Build().ToList()); - - Subject.GetEpisodes(_parsedEpisodeInfo, _series, true, null); - - Mocker.GetMock() - .Verify(v => v.FindEpisodesBySceneNumbering(It.IsAny(), seasonNumber, It.IsAny()), Times.Once()); - - Mocker.GetMock() - .Verify(v => v.FindEpisode(It.IsAny(), seasonNumber, It.IsAny()), Times.Once()); - } - - [Test] - public void should_use_tvdb_season_number_when_available_and_a_scene_source() - { - const int tvdbSeasonNumber = 5; - - Mocker.GetMock() - .Setup(s => s.FindSceneMapping(_parsedEpisodeInfo.SeriesTitle)) - .Returns(new SceneMapping { SeasonNumber = tvdbSeasonNumber, SceneSeasonNumber = _parsedEpisodeInfo.SeasonNumber }); - - Subject.GetEpisodes(_parsedEpisodeInfo, _series, true, null); - - Mocker.GetMock() - .Verify(v => v.FindEpisode(_series.Id, _parsedEpisodeInfo.SeasonNumber, _parsedEpisodeInfo.EpisodeNumbers.First()), Times.Never()); - - Mocker.GetMock() - .Verify(v => v.FindEpisode(_series.Id, tvdbSeasonNumber, _parsedEpisodeInfo.EpisodeNumbers.First()), Times.Once()); - } - - [Test] - public void should_not_use_tvdb_season_number_when_available_for_a_different_season_and_a_scene_source() - { - const int tvdbSeasonNumber = 5; - - Mocker.GetMock() - .Setup(s => s.FindSceneMapping(_parsedEpisodeInfo.SeriesTitle)) - .Returns(new SceneMapping { SeasonNumber = tvdbSeasonNumber, SceneSeasonNumber = _parsedEpisodeInfo.SeasonNumber + 100 }); - - Subject.GetEpisodes(_parsedEpisodeInfo, _series, true, null); - - Mocker.GetMock() - .Verify(v => v.FindEpisode(_series.Id, tvdbSeasonNumber, _parsedEpisodeInfo.EpisodeNumbers.First()), Times.Never()); - - Mocker.GetMock() - .Verify(v => v.FindEpisode(_series.Id, _parsedEpisodeInfo.SeasonNumber, _parsedEpisodeInfo.EpisodeNumbers.First()), Times.Once()); - } - - [Test] - public void should_not_use_tvdb_season_when_not_a_scene_source() - { - const int tvdbSeasonNumber = 5; - - Subject.GetEpisodes(_parsedEpisodeInfo, _series, false, null); - - Mocker.GetMock() - .Verify(v => v.FindEpisode(_series.Id, tvdbSeasonNumber, _parsedEpisodeInfo.EpisodeNumbers.First()), Times.Never()); - - Mocker.GetMock() - .Verify(v => v.FindEpisode(_series.Id, _parsedEpisodeInfo.SeasonNumber, _parsedEpisodeInfo.EpisodeNumbers.First()), Times.Once()); - } - - [Test] - public void should_not_use_tvdb_season_when_tvdb_season_number_is_less_than_zero() - { - const int tvdbSeasonNumber = -1; - - Mocker.GetMock() - .Setup(s => s.FindSceneMapping(_parsedEpisodeInfo.SeriesTitle)) - .Returns(new SceneMapping { SeasonNumber = tvdbSeasonNumber, SceneSeasonNumber = _parsedEpisodeInfo.SeasonNumber }); - - Subject.GetEpisodes(_parsedEpisodeInfo, _series, true, null); - - Mocker.GetMock() - .Verify(v => v.FindEpisode(_series.Id, tvdbSeasonNumber, _parsedEpisodeInfo.EpisodeNumbers.First()), Times.Never()); - - Mocker.GetMock() - .Verify(v => v.FindEpisode(_series.Id, _parsedEpisodeInfo.SeasonNumber, _parsedEpisodeInfo.EpisodeNumbers.First()), Times.Once()); - } - } -} diff --git a/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/MapFixture.cs b/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/MapFixture.cs deleted file mode 100644 index cbb616412..000000000 --- a/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/MapFixture.cs +++ /dev/null @@ -1,222 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using FizzWare.NBuilder; -using FluentAssertions; -using Moq; -using NUnit.Framework; -using NzbDrone.Core.DataAugmentation.Scene; -using NzbDrone.Core.IndexerSearch.Definitions; -using NzbDrone.Core.Parser; -using NzbDrone.Core.Parser.Model; -using NzbDrone.Core.Tv; -using NzbDrone.Test.Common; - -namespace NzbDrone.Core.Test.ParserTests.ParsingServiceTests -{ - [TestFixture] - public class MapFixture : TestBase - { - private Series _series; - private List _episodes; - private ParsedEpisodeInfo _parsedEpisodeInfo; - private SingleEpisodeSearchCriteria _singleEpisodeSearchCriteria; - - [SetUp] - public void Setup() - { - _series = Builder.CreateNew() - .With(s => s.Title = "30 Rock") - .With(s => s.CleanTitle = "rock") - .Build(); - - _episodes = Builder.CreateListOfSize(1) - .All() - .With(e => e.AirDate = DateTime.Today.ToString(Episode.AIR_DATE_FORMAT)) - .Build() - .ToList(); - - _parsedEpisodeInfo = new ParsedEpisodeInfo - { - SeriesTitle = _series.Title, - SeriesTitleInfo = new SeriesTitleInfo(), - SeasonNumber = 1, - EpisodeNumbers = new[] { 1 } - }; - - _singleEpisodeSearchCriteria = new SingleEpisodeSearchCriteria - { - Series = _series, - EpisodeNumber = _episodes.First().EpisodeNumber, - SeasonNumber = _episodes.First().SeasonNumber, - Episodes = _episodes - }; - } - - private void GivenMatchBySeriesTitle() - { - Mocker.GetMock() - .Setup(s => s.FindByTitle(It.IsAny())) - .Returns(_series); - } - - private void GivenMatchByTvdbId() - { - Mocker.GetMock() - .Setup(s => s.FindByTvdbId(It.IsAny())) - .Returns(_series); - } - - private void GivenMatchByTvRageId() - { - Mocker.GetMock() - .Setup(s => s.FindByTvRageId(It.IsAny())) - .Returns(_series); - } - - private void GivenParseResultSeriesDoesntMatchSearchCriteria() - { - _parsedEpisodeInfo.SeriesTitle = "Another Name"; - } - - [Test] - public void should_lookup_series_by_name() - { - GivenMatchBySeriesTitle(); - - Subject.Map(_parsedEpisodeInfo, _series.TvdbId, _series.TvRageId); - - Mocker.GetMock() - .Verify(v => v.FindByTitle(It.IsAny()), Times.Once()); - } - - [Test] - public void should_use_tvdbid_when_series_title_lookup_fails() - { - GivenMatchByTvdbId(); - - Subject.Map(_parsedEpisodeInfo, _series.TvdbId, _series.TvRageId); - - Mocker.GetMock() - .Verify(v => v.FindByTvdbId(It.IsAny()), Times.Once()); - } - - [Test] - public void should_use_tvrageid_when_series_title_lookup_fails() - { - GivenMatchByTvRageId(); - - Subject.Map(_parsedEpisodeInfo, 0, _series.TvRageId); - - Mocker.GetMock() - .Verify(v => v.FindByTvRageId(It.IsAny()), Times.Once()); - } - - [Test] - public void should_not_use_tvrageid_when_scene_naming_exception_exists() - { - GivenMatchByTvRageId(); - - Mocker.GetMock() - .Setup(v => v.FindTvdbId(It.IsAny())) - .Returns(10); - - var result = Subject.Map(_parsedEpisodeInfo, _series.TvdbId, _series.TvRageId); - - Mocker.GetMock() - .Verify(v => v.FindByTvRageId(It.IsAny()), Times.Never()); - - result.Series.Should().BeNull(); - } - - [Test] - public void should_use_search_criteria_series_title() - { - GivenMatchBySeriesTitle(); - - Subject.Map(_parsedEpisodeInfo, _series.TvdbId, _series.TvRageId, _singleEpisodeSearchCriteria); - - Mocker.GetMock() - .Verify(v => v.FindByTitle(It.IsAny()), Times.Never()); - } - - [Test] - public void should_FindByTitle_when_search_criteria_matching_fails() - { - GivenParseResultSeriesDoesntMatchSearchCriteria(); - - Subject.Map(_parsedEpisodeInfo, 10, 10, _singleEpisodeSearchCriteria); - - Mocker.GetMock() - .Verify(v => v.FindByTitle(It.IsAny()), Times.Once()); - } - - [Test] - public void should_FindByTitle_using_year_when_FindByTitle_matching_fails() - { - GivenParseResultSeriesDoesntMatchSearchCriteria(); - - _parsedEpisodeInfo.SeriesTitleInfo = new SeriesTitleInfo - { - Title = "Series Title 2017", - TitleWithoutYear = "Series Title", - Year = 2017 - }; - - Mocker.GetMock() - .Setup(s => s.FindByTitle(_parsedEpisodeInfo.SeriesTitleInfo.TitleWithoutYear, _parsedEpisodeInfo.SeriesTitleInfo.Year)) - .Returns(_series); - - Subject.Map(_parsedEpisodeInfo, 10, 10, _singleEpisodeSearchCriteria); - - Mocker.GetMock() - .Verify(v => v.FindByTitle(It.IsAny(), It.IsAny()), Times.Once()); - } - - [Test] - public void should_FindByTvdbId_when_search_criteria_and_FindByTitle_matching_fails() - { - GivenParseResultSeriesDoesntMatchSearchCriteria(); - - Subject.Map(_parsedEpisodeInfo, 10, 10, _singleEpisodeSearchCriteria); - - Mocker.GetMock() - .Verify(v => v.FindByTvdbId(It.IsAny()), Times.Once()); - } - - [Test] - public void should_FindByTvRageId_when_search_criteria_and_FindByTitle_matching_fails() - { - GivenParseResultSeriesDoesntMatchSearchCriteria(); - - Subject.Map(_parsedEpisodeInfo, 10, 10, _singleEpisodeSearchCriteria); - - Mocker.GetMock() - .Verify(v => v.FindByTvRageId(It.IsAny()), Times.Once()); - } - - [Test] - public void should_use_tvdbid_matching_when_alias_is_found() - { - Mocker.GetMock() - .Setup(s => s.FindTvdbId(It.IsAny())) - .Returns(_series.TvdbId); - - Subject.Map(_parsedEpisodeInfo, _series.TvdbId, _series.TvRageId, _singleEpisodeSearchCriteria); - - Mocker.GetMock() - .Verify(v => v.FindByTitle(It.IsAny()), Times.Never()); - } - - [Test] - public void should_use_tvrageid_match_from_search_criteria_when_title_match_fails() - { - GivenParseResultSeriesDoesntMatchSearchCriteria(); - - Subject.Map(_parsedEpisodeInfo, _series.TvdbId, _series.TvRageId, _singleEpisodeSearchCriteria); - - Mocker.GetMock() - .Verify(v => v.FindByTitle(It.IsAny()), Times.Never()); - } - } -} diff --git a/src/NzbDrone.Core/IndexerSearch/Definitions/AnimeEpisodeSearchCriteria.cs b/src/NzbDrone.Core/IndexerSearch/Definitions/AnimeEpisodeSearchCriteria.cs deleted file mode 100644 index a7cd8b9d2..000000000 --- a/src/NzbDrone.Core/IndexerSearch/Definitions/AnimeEpisodeSearchCriteria.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace NzbDrone.Core.IndexerSearch.Definitions -{ - public class AnimeEpisodeSearchCriteria : SearchCriteriaBase - { - public int AbsoluteEpisodeNumber { get; set; } - - public override string ToString() - { - return string.Format("[{0} : {1:00}]", Series.Title, AbsoluteEpisodeNumber); - } - } -} \ No newline at end of file diff --git a/src/NzbDrone.Core/IndexerSearch/Definitions/DailyEpisodeSearchCriteria.cs b/src/NzbDrone.Core/IndexerSearch/Definitions/DailyEpisodeSearchCriteria.cs deleted file mode 100644 index d5eeb15b7..000000000 --- a/src/NzbDrone.Core/IndexerSearch/Definitions/DailyEpisodeSearchCriteria.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; - -namespace NzbDrone.Core.IndexerSearch.Definitions -{ - public class DailyEpisodeSearchCriteria : SearchCriteriaBase - { - public DateTime AirDate { get; set; } - - public override string ToString() - { - return string.Format("[{0} : {1:yyyy-MM-dd}", Series.Title, AirDate); - } - } -} \ No newline at end of file diff --git a/src/NzbDrone.Core/IndexerSearch/Definitions/SeasonSearchCriteria.cs b/src/NzbDrone.Core/IndexerSearch/Definitions/SeasonSearchCriteria.cs deleted file mode 100644 index 122df795d..000000000 --- a/src/NzbDrone.Core/IndexerSearch/Definitions/SeasonSearchCriteria.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace NzbDrone.Core.IndexerSearch.Definitions -{ - public class SeasonSearchCriteria : SearchCriteriaBase - { - public int SeasonNumber { get; set; } - - public override bool MonitoredEpisodesOnly => true; - - public override string ToString() - { - return string.Format("[{0} : S{1:00}]", Series.Title, SeasonNumber); - } - } -} \ No newline at end of file diff --git a/src/NzbDrone.Core/IndexerSearch/Definitions/SingleEpisodeSearchCriteria.cs b/src/NzbDrone.Core/IndexerSearch/Definitions/SingleEpisodeSearchCriteria.cs deleted file mode 100644 index 797482846..000000000 --- a/src/NzbDrone.Core/IndexerSearch/Definitions/SingleEpisodeSearchCriteria.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace NzbDrone.Core.IndexerSearch.Definitions -{ - public class SingleEpisodeSearchCriteria : SearchCriteriaBase - { - public int EpisodeNumber { get; set; } - public int SeasonNumber { get; set; } - - public override string ToString() - { - return string.Format("[{0} : S{1:00}E{2:00}]", Series.Title, SeasonNumber, EpisodeNumber); - } - } -} \ No newline at end of file diff --git a/src/NzbDrone.Core/IndexerSearch/Definitions/SpecialEpisodeSearchCriteria.cs b/src/NzbDrone.Core/IndexerSearch/Definitions/SpecialEpisodeSearchCriteria.cs deleted file mode 100644 index 2b5c0bc0c..000000000 --- a/src/NzbDrone.Core/IndexerSearch/Definitions/SpecialEpisodeSearchCriteria.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.Linq; - -namespace NzbDrone.Core.IndexerSearch.Definitions -{ - public class SpecialEpisodeSearchCriteria : SearchCriteriaBase - { - public string[] EpisodeQueryTitles { get; set; } - - public override string ToString() - { - var episodeTitles = EpisodeQueryTitles.ToList(); - - if (episodeTitles.Count > 0) - { - return string.Format("[{0}] Specials", Series.Title); - } - - return string.Format("[{0} : {1}]", Series.Title, string.Join(",", EpisodeQueryTitles)); - } - } -} diff --git a/src/NzbDrone.Core/IndexerSearch/EpisodeSearchCommand.cs b/src/NzbDrone.Core/IndexerSearch/EpisodeSearchCommand.cs deleted file mode 100644 index af0cbf1cc..000000000 --- a/src/NzbDrone.Core/IndexerSearch/EpisodeSearchCommand.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.Collections.Generic; -using NzbDrone.Core.Messaging.Commands; - -namespace NzbDrone.Core.IndexerSearch -{ - public class EpisodeSearchCommand : Command - { - public List EpisodeIds { get; set; } - - public override bool SendUpdatesToClient => true; - - public EpisodeSearchCommand() - { - } - - public EpisodeSearchCommand(List episodeIds) - { - EpisodeIds = episodeIds; - } - } -} \ No newline at end of file diff --git a/src/NzbDrone.Core/IndexerSearch/EpisodeSearchService.cs b/src/NzbDrone.Core/IndexerSearch/EpisodeSearchService.cs deleted file mode 100644 index 6762fbaa2..000000000 --- a/src/NzbDrone.Core/IndexerSearch/EpisodeSearchService.cs +++ /dev/null @@ -1,129 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using NLog; -using NzbDrone.Common.Extensions; -using NzbDrone.Common.Instrumentation.Extensions; -using NzbDrone.Core.Datastore; -using NzbDrone.Core.DecisionEngine; -using NzbDrone.Core.Download; -using NzbDrone.Core.Messaging.Commands; -using NzbDrone.Core.Queue; -using NzbDrone.Core.Tv; - -namespace NzbDrone.Core.IndexerSearch -{ - public class EpisodeSearchService : IExecute, IExecute - { - private readonly ISearchForNzb _nzbSearchService; - private readonly IProcessDownloadDecisions _processDownloadDecisions; - private readonly IEpisodeService _episodeService; - private readonly IQueueService _queueService; - private readonly Logger _logger; - - public EpisodeSearchService(ISearchForNzb nzbSearchService, - IProcessDownloadDecisions processDownloadDecisions, - IEpisodeService episodeService, - IQueueService queueService, - Logger logger) - { - _nzbSearchService = nzbSearchService; - _processDownloadDecisions = processDownloadDecisions; - _episodeService = episodeService; - _queueService = queueService; - _logger = logger; - } - - private void SearchForMissingEpisodes(List episodes, bool userInvokedSearch) - { - _logger.ProgressInfo("Performing missing search for {0} episodes", episodes.Count); - var downloadedCount = 0; - - foreach (var series in episodes.GroupBy(e => e.SeriesId)) - { - foreach (var season in series.Select(e => e).GroupBy(e => e.SeasonNumber)) - { - List decisions; - - if (season.Count() > 1) - { - try - { - decisions = _nzbSearchService.SeasonSearch(series.Key, season.Key, true, userInvokedSearch); - } - catch (Exception ex) - { - _logger.Error(ex, "Unable to search for missing episodes in season {0} of [{1}]", season.Key, series.Key); - continue; - } - } - - else - { - try - { - decisions = _nzbSearchService.EpisodeSearch(season.First(), userInvokedSearch); - } - catch (Exception ex) - { - _logger.Error(ex, "Unable to search for missing episode: [{0}]", season.First()); - continue; - } - } - - var processed = _processDownloadDecisions.ProcessDecisions(decisions); - - downloadedCount += processed.Grabbed.Count; - } - } - - _logger.ProgressInfo("Completed missing search for {0} episodes. {1} reports downloaded.", episodes.Count, downloadedCount); - } - - public void Execute(EpisodeSearchCommand message) - { - foreach (var episodeId in message.EpisodeIds) - { - var decisions = _nzbSearchService.EpisodeSearch(episodeId, message.Trigger == CommandTrigger.Manual); - var processed = _processDownloadDecisions.ProcessDecisions(decisions); - - _logger.ProgressInfo("Episode search completed. {0} reports downloaded.", processed.Grabbed.Count); - } - } - - public void Execute(MissingEpisodeSearchCommand message) - { - List episodes; - - if (message.SeriesId.HasValue) - { - episodes = _episodeService.GetEpisodeBySeries(message.SeriesId.Value) - .Where(e => e.Monitored && - !e.HasFile && - e.AirDateUtc.HasValue && - e.AirDateUtc.Value.Before(DateTime.UtcNow)) - .ToList(); - } - - else - { - episodes = _episodeService.EpisodesWithoutFiles(new PagingSpec - { - Page = 1, - PageSize = 100000, - SortDirection = SortDirection.Ascending, - SortKey = "Id", - FilterExpression = - v => - v.Monitored == true && - v.Series.Monitored == true - }).Records.ToList(); - } - - var queue = _queueService.GetQueue().Select(q => q.Episode.Id); - var missing = episodes.Where(e => !queue.Contains(e.Id)).ToList(); - - SearchForMissingEpisodes(missing, message.Trigger == CommandTrigger.Manual); - } - } -} diff --git a/src/NzbDrone.Core/IndexerSearch/NzbSearchService.cs b/src/NzbDrone.Core/IndexerSearch/NzbSearchService.cs index ffad2b89d..9a318ea1a 100644 --- a/src/NzbDrone.Core/IndexerSearch/NzbSearchService.cs +++ b/src/NzbDrone.Core/IndexerSearch/NzbSearchService.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Globalization; using System.Threading.Tasks; @@ -18,9 +18,6 @@ namespace NzbDrone.Core.IndexerSearch { public interface ISearchForNzb { - List EpisodeSearch(int episodeId, bool userInvokedSearch); - List EpisodeSearch(Episode episode, bool userInvokedSearch); - List SeasonSearch(int seriesId, int seasonNumber, bool missingOnly, bool userInvokedSearch); List AlbumSearch(int albumId, bool missingOnly, bool userInvokedSearch); List ArtistSearch(int artistId, bool missingOnly, bool userInvokedSearch); } @@ -28,146 +25,24 @@ namespace NzbDrone.Core.IndexerSearch public class NzbSearchService : ISearchForNzb { private readonly IIndexerFactory _indexerFactory; - [System.Obsolete("Used for sonarr, not lidarr")] - private readonly ISeriesService _seriesService; - [System.Obsolete("Used for sonarr, not lidarr")] - private readonly IEpisodeService _episodeService; - private readonly IAlbumService _albumService; private readonly IArtistService _artistService; private readonly IMakeDownloadDecision _makeDownloadDecision; private readonly Logger _logger; public NzbSearchService(IIndexerFactory indexerFactory, - ISeriesService seriesService, - IEpisodeService episodeService, IAlbumService albumService, IArtistService artistService, IMakeDownloadDecision makeDownloadDecision, Logger logger) { _indexerFactory = indexerFactory; - //_sceneMapping = sceneMapping; - _seriesService = seriesService; - _episodeService = episodeService; _albumService = albumService; _artistService = artistService; _makeDownloadDecision = makeDownloadDecision; _logger = logger; } - public List EpisodeSearch(int episodeId, bool userInvokedSearch) - { - var episode = _episodeService.GetEpisode(episodeId); - - return EpisodeSearch(episode, userInvokedSearch); - } - - public List EpisodeSearch(Episode episode, bool userInvokedSearch) - { - var series = _seriesService.GetSeries(episode.SeriesId); - - if (series.SeriesType == SeriesTypes.Daily) - { - if (string.IsNullOrWhiteSpace(episode.AirDate)) - { - throw new InvalidOperationException("Daily episode is missing AirDate. Try to refresh series info."); - } - - return SearchDaily(series, episode, userInvokedSearch); - } - if (series.SeriesType == SeriesTypes.Anime) - { - return SearchAnime(series, episode, userInvokedSearch); - } - - if (episode.SeasonNumber == 0) - { - // search for special episodes in season 0 - return SearchSpecial(series, new List { episode }, userInvokedSearch); - } - - return SearchSingle(series, episode, userInvokedSearch); - } - - public List SeasonSearch(int seriesId, int seasonNumber, bool missingOnly, bool userInvokedSearch) - { - var series = _seriesService.GetSeries(seriesId); - var episodes = _episodeService.GetEpisodesBySeason(seriesId, seasonNumber); - - if (missingOnly) - { - episodes = episodes.Where(e => e.Monitored && !e.HasFile).ToList(); - } - - if (series.SeriesType == SeriesTypes.Anime) - { - return SearchAnimeSeason(series, episodes, userInvokedSearch); - } - - if (seasonNumber == 0) - { - // search for special episodes in season 0 - return SearchSpecial(series, episodes, userInvokedSearch); - } - - var downloadDecisions = new List(); - - if (series.UseSceneNumbering) - { - var sceneSeasonGroups = episodes.GroupBy(v => - { - if (v.SceneSeasonNumber.HasValue && v.SceneEpisodeNumber.HasValue) - { - return v.SceneSeasonNumber.Value; - } - return v.SeasonNumber; - }).Distinct(); - - foreach (var sceneSeasonEpisodes in sceneSeasonGroups) - { - if (sceneSeasonEpisodes.Count() == 1) - { - var episode = sceneSeasonEpisodes.First(); - var searchSpec = Get(series, sceneSeasonEpisodes.ToList(), userInvokedSearch); - - searchSpec.SeasonNumber = sceneSeasonEpisodes.Key; - searchSpec.MonitoredEpisodesOnly = true; - - if (episode.SceneSeasonNumber.HasValue && episode.SceneEpisodeNumber.HasValue) - { - searchSpec.EpisodeNumber = episode.SceneEpisodeNumber.Value; - } - else - { - searchSpec.EpisodeNumber = episode.EpisodeNumber; - } - - var decisions = Dispatch(indexer => indexer.Fetch(searchSpec), searchSpec); - downloadDecisions.AddRange(decisions); - } - else - { - var searchSpec = Get(series, sceneSeasonEpisodes.ToList(), userInvokedSearch); - searchSpec.SeasonNumber = sceneSeasonEpisodes.Key; - - var decisions = Dispatch(indexer => indexer.Fetch(searchSpec), searchSpec); - downloadDecisions.AddRange(decisions); - } - } - } - else - { - var searchSpec = Get(series, episodes, userInvokedSearch); - searchSpec.SeasonNumber = seasonNumber; - - var decisions = Dispatch(indexer => indexer.Fetch(searchSpec), searchSpec); - downloadDecisions.AddRange(decisions); - } - - return downloadDecisions; - } - public List AlbumSearch(int albumId, bool missingOnly, bool userInvokedSearch) { var album = _albumService.GetAlbum(albumId); @@ -205,93 +80,6 @@ namespace NzbDrone.Core.IndexerSearch return Dispatch(indexer => indexer.Fetch(searchSpec), searchSpec); } - private List SearchSingle(Series series, Episode episode, bool userInvokedSearch) - { - var searchSpec = Get(series, new List { episode }, userInvokedSearch); - - if (series.UseSceneNumbering && episode.SceneSeasonNumber.HasValue && episode.SceneEpisodeNumber.HasValue) - { - searchSpec.EpisodeNumber = episode.SceneEpisodeNumber.Value; - searchSpec.SeasonNumber = episode.SceneSeasonNumber.Value; - } - else - { - searchSpec.EpisodeNumber = episode.EpisodeNumber; - searchSpec.SeasonNumber = episode.SeasonNumber; - } - - return Dispatch(indexer => indexer.Fetch(searchSpec), searchSpec); - } - - private List SearchDaily(Series series, Episode episode, bool userInvokedSearch) - { - var airDate = DateTime.ParseExact(episode.AirDate, Episode.AIR_DATE_FORMAT, CultureInfo.InvariantCulture); - var searchSpec = Get(series, new List { episode }, userInvokedSearch); - searchSpec.AirDate = airDate; - - return Dispatch(indexer => indexer.Fetch(searchSpec), searchSpec); - } - - private List SearchAnime(Series series, Episode episode, bool userInvokedSearch) - { - var searchSpec = Get(series, new List { episode }, userInvokedSearch); - - if (episode.SceneAbsoluteEpisodeNumber.HasValue) - { - searchSpec.AbsoluteEpisodeNumber = episode.SceneAbsoluteEpisodeNumber.Value; - } - else if (episode.AbsoluteEpisodeNumber.HasValue) - { - searchSpec.AbsoluteEpisodeNumber = episode.AbsoluteEpisodeNumber.Value; - } - else - { - throw new ArgumentOutOfRangeException("AbsoluteEpisodeNumber", "Can not search for an episode without an absolute episode number"); - } - - return Dispatch(indexer => indexer.Fetch(searchSpec), searchSpec); - } - - private List SearchSpecial(Series series, List episodes, bool userInvokedSearch) - { - var searchSpec = Get(series, episodes, userInvokedSearch); - // build list of queries for each episode in the form: " " - searchSpec.EpisodeQueryTitles = episodes.Where(e => !string.IsNullOrWhiteSpace(e.Title)) - .SelectMany(e => searchSpec.QueryTitles.Select(title => title + " " + SearchCriteriaBase.GetQueryTitle(e.Title))) - .ToArray(); - - return Dispatch(indexer => indexer.Fetch(searchSpec), searchSpec); - } - - private List SearchAnimeSeason(Series series, List episodes, bool userInvokedSearch) - { - var downloadDecisions = new List(); - - foreach (var episode in episodes.Where(e => e.Monitored)) - { - downloadDecisions.AddRange(SearchAnime(series, episode, userInvokedSearch)); - } - - return downloadDecisions; - } - - private TSpec Get(Series series, List episodes, bool userInvokedSearch) where TSpec : SearchCriteriaBase, new() - { - var spec = new TSpec(); - - spec.Series = series; - // spec.SceneTitles = _sceneMapping.GetSceneNames(series.TvdbId, - // episodes.Select(e => e.SeasonNumber).Distinct().ToList(), - // episodes.Select(e => e.SceneSeasonNumber ?? e.SeasonNumber).Distinct().ToList()); - - spec.Episodes = episodes; - - spec.SceneTitles.Add(series.Title); - spec.UserInvokedSearch = userInvokedSearch; - - return spec; - } - private TSpec Get(Artist artist, List albums, bool userInvokedSearch) where TSpec : SearchCriteriaBase, new() { var spec = new TSpec(); diff --git a/src/NzbDrone.Core/IndexerSearch/SeasonSearchCommand.cs b/src/NzbDrone.Core/IndexerSearch/SeasonSearchCommand.cs deleted file mode 100644 index 2ac6cd439..000000000 --- a/src/NzbDrone.Core/IndexerSearch/SeasonSearchCommand.cs +++ /dev/null @@ -1,12 +0,0 @@ -using NzbDrone.Core.Messaging.Commands; - -namespace NzbDrone.Core.IndexerSearch -{ - public class SeasonSearchCommand : Command - { - public int SeriesId { get; set; } - public int SeasonNumber { get; set; } - - public override bool SendUpdatesToClient => true; - } -} \ No newline at end of file diff --git a/src/NzbDrone.Core/IndexerSearch/SeasonSearchService.cs b/src/NzbDrone.Core/IndexerSearch/SeasonSearchService.cs deleted file mode 100644 index 84c38c07d..000000000 --- a/src/NzbDrone.Core/IndexerSearch/SeasonSearchService.cs +++ /dev/null @@ -1,31 +0,0 @@ -using NLog; -using NzbDrone.Common.Instrumentation.Extensions; -using NzbDrone.Core.Download; -using NzbDrone.Core.Messaging.Commands; - -namespace NzbDrone.Core.IndexerSearch -{ - public class SeasonSearchService : IExecute - { - private readonly ISearchForNzb _nzbSearchService; - private readonly IProcessDownloadDecisions _processDownloadDecisions; - private readonly Logger _logger; - - public SeasonSearchService(ISearchForNzb nzbSearchService, - IProcessDownloadDecisions processDownloadDecisions, - Logger logger) - { - _nzbSearchService = nzbSearchService; - _processDownloadDecisions = processDownloadDecisions; - _logger = logger; - } - - public void Execute(SeasonSearchCommand message) - { - var decisions = _nzbSearchService.SeasonSearch(message.SeriesId, message.SeasonNumber, false, message.Trigger == CommandTrigger.Manual); - var processed = _processDownloadDecisions.ProcessDecisions(decisions); - - _logger.ProgressInfo("Season search completed. {0} reports downloaded.", processed.Grabbed.Count); - } - } -} diff --git a/src/NzbDrone.Core/IndexerSearch/SeriesSearchCommand.cs b/src/NzbDrone.Core/IndexerSearch/SeriesSearchCommand.cs deleted file mode 100644 index bc1a0a51a..000000000 --- a/src/NzbDrone.Core/IndexerSearch/SeriesSearchCommand.cs +++ /dev/null @@ -1,11 +0,0 @@ -using NzbDrone.Core.Messaging.Commands; - -namespace NzbDrone.Core.IndexerSearch -{ - public class SeriesSearchCommand : Command - { - public int SeriesId { get; set; } - - public override bool SendUpdatesToClient => true; - } -} \ No newline at end of file diff --git a/src/NzbDrone.Core/IndexerSearch/SeriesSearchService.cs b/src/NzbDrone.Core/IndexerSearch/SeriesSearchService.cs deleted file mode 100644 index 388dadfd8..000000000 --- a/src/NzbDrone.Core/IndexerSearch/SeriesSearchService.cs +++ /dev/null @@ -1,49 +0,0 @@ -using System.Linq; -using NLog; -using NzbDrone.Common.Instrumentation.Extensions; -using NzbDrone.Core.Download; -using NzbDrone.Core.Messaging.Commands; -using NzbDrone.Core.Tv; - -namespace NzbDrone.Core.IndexerSearch -{ - public class SeriesSearchService : IExecute - { - private readonly ISeriesService _seriesService; - private readonly ISearchForNzb _nzbSearchService; - private readonly IProcessDownloadDecisions _processDownloadDecisions; - private readonly Logger _logger; - - public SeriesSearchService(ISeriesService seriesService, - ISearchForNzb nzbSearchService, - IProcessDownloadDecisions processDownloadDecisions, - Logger logger) - { - _seriesService = seriesService; - _nzbSearchService = nzbSearchService; - _processDownloadDecisions = processDownloadDecisions; - _logger = logger; - } - - public void Execute(SeriesSearchCommand message) - { - var series = _seriesService.GetSeries(message.SeriesId); - - var downloadedCount = 0; - - foreach (var season in series.Seasons.OrderBy(s => s.SeasonNumber)) - { - if (!season.Monitored) - { - _logger.Debug("Season {0} of {1} is not monitored, skipping search", season.SeasonNumber, series.Title); - continue; - } - - var decisions = _nzbSearchService.SeasonSearch(message.SeriesId, season.SeasonNumber, false, message.Trigger == CommandTrigger.Manual); - downloadedCount += _processDownloadDecisions.ProcessDecisions(decisions).Grabbed.Count; - } - - _logger.ProgressInfo("Series search completed. {0} reports downloaded.", downloadedCount); - } - } -} diff --git a/src/NzbDrone.Core/Indexers/Fanzub/FanzubRequestGenerator.cs b/src/NzbDrone.Core/Indexers/Fanzub/FanzubRequestGenerator.cs index 13a7c1581..07012107d 100644 --- a/src/NzbDrone.Core/Indexers/Fanzub/FanzubRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/Fanzub/FanzubRequestGenerator.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; @@ -29,37 +29,6 @@ namespace NzbDrone.Core.Indexers.Fanzub return pageableRequests; } - public virtual IndexerPageableRequestChain GetSearchRequests(SingleEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(SeasonSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(DailyEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(AnimeEpisodeSearchCriteria searchCriteria) - { - var pageableRequests = new IndexerPageableRequestChain(); - - var searchTitles = searchCriteria.QueryTitles.SelectMany(v => GetTitleSearchStrings(v, searchCriteria.AbsoluteEpisodeNumber)).ToList(); - - pageableRequests.Add(GetPagedRequests(string.Join("|", searchTitles))); - - return pageableRequests; - } - - public virtual IndexerPageableRequestChain GetSearchRequests(SpecialEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - public virtual IndexerPageableRequestChain GetSearchRequests(AlbumSearchCriteria searchCriteria) { throw new System.NotImplementedException(); diff --git a/src/NzbDrone.Core/Indexers/HttpIndexerBase.cs b/src/NzbDrone.Core/Indexers/HttpIndexerBase.cs index 3ff24d1f4..e1349665e 100644 --- a/src/NzbDrone.Core/Indexers/HttpIndexerBase.cs +++ b/src/NzbDrone.Core/Indexers/HttpIndexerBase.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Net; @@ -51,71 +51,6 @@ namespace NzbDrone.Core.Indexers return FetchReleases(generator.GetRecentRequests(), true); } - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - public override IList Fetch(SingleEpisodeSearchCriteria searchCriteria) - { - if (!SupportsSearch) - { - return new List(); - } - - var generator = GetRequestGenerator(); - - return FetchReleases(generator.GetSearchRequests(searchCriteria)); - } - - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - public override IList Fetch(SeasonSearchCriteria searchCriteria) - { - if (!SupportsSearch) - { - return new List(); - } - - var generator = GetRequestGenerator(); - - return FetchReleases(generator.GetSearchRequests(searchCriteria)); - } - - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - public override IList Fetch(DailyEpisodeSearchCriteria searchCriteria) - { - if (!SupportsSearch) - { - return new List(); - } - - var generator = GetRequestGenerator(); - - return FetchReleases(generator.GetSearchRequests(searchCriteria)); - } - - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - public override IList Fetch(AnimeEpisodeSearchCriteria searchCriteria) - { - if (!SupportsSearch) - { - return new List(); - } - - var generator = GetRequestGenerator(); - - return FetchReleases(generator.GetSearchRequests(searchCriteria)); - } - - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - public override IList Fetch(SpecialEpisodeSearchCriteria searchCriteria) - { - if (!SupportsSearch) - { - return new List(); - } - - var generator = GetRequestGenerator(); - - return FetchReleases(generator.GetSearchRequests(searchCriteria)); - } - public override IList Fetch(AlbumSearchCriteria searchCriteria) { if (!SupportsSearch) diff --git a/src/NzbDrone.Core/Indexers/IIndexer.cs b/src/NzbDrone.Core/Indexers/IIndexer.cs index b8985a1e3..1a1e034f1 100644 --- a/src/NzbDrone.Core/Indexers/IIndexer.cs +++ b/src/NzbDrone.Core/Indexers/IIndexer.cs @@ -12,17 +12,7 @@ namespace NzbDrone.Core.Indexers DownloadProtocol Protocol { get; } IList FetchRecent(); - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - IList Fetch(SeasonSearchCriteria searchCriteria); - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - IList Fetch(SingleEpisodeSearchCriteria searchCriteria); - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - IList Fetch(DailyEpisodeSearchCriteria searchCriteria); - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - IList Fetch(AnimeEpisodeSearchCriteria searchCriteria); - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - IList Fetch(SpecialEpisodeSearchCriteria searchCriteria); IList Fetch(AlbumSearchCriteria searchCriteria); IList Fetch(ArtistSearchCriteria searchCriteria); } -} \ No newline at end of file +} diff --git a/src/NzbDrone.Core/Indexers/IIndexerRequestGenerator.cs b/src/NzbDrone.Core/Indexers/IIndexerRequestGenerator.cs index 20dcb7737..776feee5b 100644 --- a/src/NzbDrone.Core/Indexers/IIndexerRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/IIndexerRequestGenerator.cs @@ -1,16 +1,11 @@ -using NzbDrone.Core.IndexerSearch.Definitions; +using NzbDrone.Core.IndexerSearch.Definitions; namespace NzbDrone.Core.Indexers { public interface IIndexerRequestGenerator { IndexerPageableRequestChain GetRecentRequests(); - IndexerPageableRequestChain GetSearchRequests(SingleEpisodeSearchCriteria searchCriteria); - IndexerPageableRequestChain GetSearchRequests(SeasonSearchCriteria searchCriteria); - IndexerPageableRequestChain GetSearchRequests(DailyEpisodeSearchCriteria searchCriteria); - IndexerPageableRequestChain GetSearchRequests(AnimeEpisodeSearchCriteria searchCriteria); - IndexerPageableRequestChain GetSearchRequests(SpecialEpisodeSearchCriteria searchCriteria); IndexerPageableRequestChain GetSearchRequests(AlbumSearchCriteria searchCriteria); IndexerPageableRequestChain GetSearchRequests(ArtistSearchCriteria searchCriteria); } -} \ No newline at end of file +} diff --git a/src/NzbDrone.Core/Indexers/IPTorrents/IPTorrentsRequestGenerator.cs b/src/NzbDrone.Core/Indexers/IPTorrents/IPTorrentsRequestGenerator.cs index 39d81423d..a3ce1ae24 100644 --- a/src/NzbDrone.Core/Indexers/IPTorrents/IPTorrentsRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/IPTorrents/IPTorrentsRequestGenerator.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using NzbDrone.Common.Http; using NzbDrone.Core.IndexerSearch.Definitions; @@ -17,31 +17,6 @@ namespace NzbDrone.Core.Indexers.IPTorrents return pageableRequests; } - public virtual IndexerPageableRequestChain GetSearchRequests(SingleEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(SeasonSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(DailyEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(AnimeEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(SpecialEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - public virtual IndexerPageableRequestChain GetSearchRequests(AlbumSearchCriteria searchCriteria) { throw new System.NotImplementedException(); diff --git a/src/NzbDrone.Core/Indexers/IndexerBase.cs b/src/NzbDrone.Core/Indexers/IndexerBase.cs index bc15ce086..2a0515ad2 100644 --- a/src/NzbDrone.Core/Indexers/IndexerBase.cs +++ b/src/NzbDrone.Core/Indexers/IndexerBase.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using FluentValidation.Results; @@ -63,16 +63,6 @@ namespace NzbDrone.Core.Indexers public abstract IList FetchRecent(); - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - public abstract IList Fetch(SeasonSearchCriteria searchCriteria); - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - public abstract IList Fetch(SingleEpisodeSearchCriteria searchCriteria); - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - public abstract IList Fetch(DailyEpisodeSearchCriteria searchCriteria); - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - public abstract IList Fetch(AnimeEpisodeSearchCriteria searchCriteria); - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - public abstract IList Fetch(SpecialEpisodeSearchCriteria searchCriteria); public abstract IList Fetch(AlbumSearchCriteria searchCriteria); public abstract IList Fetch(ArtistSearchCriteria searchCriteria); diff --git a/src/NzbDrone.Core/Indexers/Newznab/NewznabRequestGenerator.cs b/src/NzbDrone.Core/Indexers/Newznab/NewznabRequestGenerator.cs index fe5b2d461..e08e527e9 100644 --- a/src/NzbDrone.Core/Indexers/Newznab/NewznabRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/Newznab/NewznabRequestGenerator.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using NzbDrone.Common.Extensions; using NzbDrone.Common.Http; @@ -32,19 +32,6 @@ namespace NzbDrone.Core.Indexers.Newznab } } - private bool SupportsTvSearch - { - get - { - var capabilities = _capabilitiesProvider.GetCapabilities(Settings); - - return capabilities.SupportedTvSearchParameters != null && - capabilities.SupportedTvSearchParameters.Contains("q") && - capabilities.SupportedTvSearchParameters.Contains("season") && - capabilities.SupportedTvSearchParameters.Contains("ep"); - } - } - private bool SupportsAudioSearch { get @@ -58,57 +45,6 @@ namespace NzbDrone.Core.Indexers.Newznab } } - - - private bool SupportsTvdbSearch - { - get - { - var capabilities = _capabilitiesProvider.GetCapabilities(Settings); - - return capabilities.SupportedTvSearchParameters != null && - capabilities.SupportedTvSearchParameters.Contains("tvdbid") && - capabilities.SupportedTvSearchParameters.Contains("season") && - capabilities.SupportedTvSearchParameters.Contains("ep"); - } - } - - private bool SupportsTvRageSearch - { - get - { - var capabilities = _capabilitiesProvider.GetCapabilities(Settings); - - return capabilities.SupportedTvSearchParameters != null && - capabilities.SupportedTvSearchParameters.Contains("rid") && - capabilities.SupportedTvSearchParameters.Contains("season") && - capabilities.SupportedTvSearchParameters.Contains("ep"); - } - } - - private bool SupportsTvMazeSearch - { - get - { - var capabilities = _capabilitiesProvider.GetCapabilities(Settings); - - return capabilities.SupportedTvSearchParameters != null && - capabilities.SupportedTvSearchParameters.Contains("tvmazeid") && - capabilities.SupportedTvSearchParameters.Contains("season") && - capabilities.SupportedTvSearchParameters.Contains("ep"); - } - } - - private bool SupportsAggregatedIdSearch - { - get - { - var capabilities = _capabilitiesProvider.GetCapabilities(Settings); - - return capabilities.SupportsAggregateIdSearch; - } - } - public virtual IndexerPageableRequestChain GetRecentRequests() { var pageableRequests = new IndexerPageableRequestChain(); @@ -123,78 +59,6 @@ namespace NzbDrone.Core.Indexers.Newznab return pageableRequests; } - public virtual IndexerPageableRequestChain GetSearchRequests(SingleEpisodeSearchCriteria searchCriteria) - { - var pageableRequests = new IndexerPageableRequestChain(); - - AddTvIdPageableRequests(pageableRequests, MaxPages, Settings.Categories, searchCriteria, - string.Format("&season={0}&ep={1}", - searchCriteria.SeasonNumber, - searchCriteria.EpisodeNumber)); - - return pageableRequests; - } - - public virtual IndexerPageableRequestChain GetSearchRequests(SeasonSearchCriteria searchCriteria) - { - var pageableRequests = new IndexerPageableRequestChain(); - - AddTvIdPageableRequests(pageableRequests, MaxPages, Settings.Categories, searchCriteria, - string.Format("&season={0}", - searchCriteria.SeasonNumber)); - - return pageableRequests; - } - - public virtual IndexerPageableRequestChain GetSearchRequests(DailyEpisodeSearchCriteria searchCriteria) - { - var pageableRequests = new IndexerPageableRequestChain(); - - AddTvIdPageableRequests(pageableRequests, MaxPages, Settings.Categories, searchCriteria, - string.Format("&season={0:yyyy}&ep={0:MM}/{0:dd}", - searchCriteria.AirDate)); - - return pageableRequests; - } - - public virtual IndexerPageableRequestChain GetSearchRequests(AnimeEpisodeSearchCriteria searchCriteria) - { - var pageableRequests = new IndexerPageableRequestChain(); - - if (SupportsSearch) - { - foreach (var queryTitle in searchCriteria.QueryTitles) - { - pageableRequests.Add(GetPagedRequests(MaxPages, Settings.AnimeCategories, "search", - string.Format("&q={0}+{1:00}", - NewsnabifyTitle(queryTitle), - searchCriteria.AbsoluteEpisodeNumber))); - } - } - - return pageableRequests; - } - - public virtual IndexerPageableRequestChain GetSearchRequests(SpecialEpisodeSearchCriteria searchCriteria) - { - var pageableRequests = new IndexerPageableRequestChain(); - - if (SupportsSearch) - { - foreach (var queryTitle in searchCriteria.EpisodeQueryTitles) - { - var query = queryTitle.Replace('+', ' '); - query = System.Web.HttpUtility.UrlEncode(query); - - pageableRequests.Add(GetPagedRequests(MaxPages, Settings.Categories.Concat(Settings.AnimeCategories), "search", - string.Format("&q={0}", - query))); - } - } - - return pageableRequests; - } - public virtual IndexerPageableRequestChain GetSearchRequests(AlbumSearchCriteria searchCriteria) { var pageableRequests = new IndexerPageableRequestChain(); @@ -218,66 +82,6 @@ namespace NzbDrone.Core.Indexers.Newznab return pageableRequests; } - private void AddTvIdPageableRequests(IndexerPageableRequestChain chain, int maxPages, IEnumerable categories, SearchCriteriaBase searchCriteria, string parameters) - { - var includeTvdbSearch = SupportsTvdbSearch && searchCriteria.Series.TvdbId > 0; - var includeTvRageSearch = SupportsTvRageSearch && searchCriteria.Series.TvRageId > 0; - var includeTvMazeSearch = SupportsTvMazeSearch && searchCriteria.Series.TvMazeId > 0; - - if (SupportsAggregatedIdSearch && (includeTvdbSearch || includeTvRageSearch || includeTvMazeSearch)) - { - var ids = ""; - - if (includeTvdbSearch) - { - ids += "&tvdbid=" + searchCriteria.Series.TvdbId; - } - - if (includeTvRageSearch) - { - ids += "&rid=" + searchCriteria.Series.TvRageId; - } - - if (includeTvMazeSearch) - { - ids += "&tvmazeid=" + searchCriteria.Series.TvMazeId; - } - - chain.Add(GetPagedRequests(maxPages, categories, "tvsearch", ids + parameters)); - } - else - { - if (includeTvdbSearch) - { - chain.Add(GetPagedRequests(maxPages, categories, "tvsearch", - string.Format("&tvdbid={0}{1}", searchCriteria.Series.TvdbId, parameters))); - } - else if (includeTvRageSearch) - { - chain.Add(GetPagedRequests(maxPages, categories, "tvsearch", - string.Format("&rid={0}{1}", searchCriteria.Series.TvRageId, parameters))); - } - - else if (includeTvMazeSearch) - { - chain.Add(GetPagedRequests(maxPages, categories, "tvsearch", - string.Format("&tvmazeid={0}{1}", searchCriteria.Series.TvMazeId, parameters))); - } - } - - if (SupportsTvSearch) - { - chain.AddTier(); - foreach (var queryTitle in searchCriteria.QueryTitles) - { - chain.Add(GetPagedRequests(MaxPages, Settings.Categories, "tvsearch", - string.Format("&q={0}{1}", - NewsnabifyTitle(queryTitle), - parameters))); - } - } - } - private void AddAudioPageableRequests(IndexerPageableRequestChain chain, string parameters) { diff --git a/src/NzbDrone.Core/Indexers/Nyaa/NyaaRequestGenerator.cs b/src/NzbDrone.Core/Indexers/Nyaa/NyaaRequestGenerator.cs index 5acc3bc60..8157e5fc0 100644 --- a/src/NzbDrone.Core/Indexers/Nyaa/NyaaRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/Nyaa/NyaaRequestGenerator.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using NzbDrone.Common.Http; using NzbDrone.Core.IndexerSearch.Definitions; @@ -26,54 +26,6 @@ namespace NzbDrone.Core.Indexers.Nyaa return pageableRequests; } - public virtual IndexerPageableRequestChain GetSearchRequests(SingleEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(SeasonSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(DailyEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(AnimeEpisodeSearchCriteria searchCriteria) - { - var pageableRequests = new IndexerPageableRequestChain(); - - foreach (var queryTitle in searchCriteria.QueryTitles) - { - var searchTitle = PrepareQuery(queryTitle); - - pageableRequests.Add(GetPagedRequests(MaxPages, $"{searchTitle}+{searchCriteria.AbsoluteEpisodeNumber:0}")); - - if (searchCriteria.AbsoluteEpisodeNumber < 10) - { - pageableRequests.Add(GetPagedRequests(MaxPages, $"{searchTitle}+{searchCriteria.AbsoluteEpisodeNumber:00}")); - } - } - - return pageableRequests; - } - - public virtual IndexerPageableRequestChain GetSearchRequests(SpecialEpisodeSearchCriteria searchCriteria) - { - var pageableRequests = new IndexerPageableRequestChain(); - - foreach (var queryTitle in searchCriteria.EpisodeQueryTitles) - { - pageableRequests.Add(GetPagedRequests(MaxPages, - string.Format("&term={0}", - PrepareQuery(queryTitle)))); - } - - return pageableRequests; - } - public virtual IndexerPageableRequestChain GetSearchRequests(AlbumSearchCriteria searchCriteria) { throw new System.NotImplementedException(); diff --git a/src/NzbDrone.Core/Indexers/Omgwtfnzbs/OmgwtfnzbsRequestGenerator.cs b/src/NzbDrone.Core/Indexers/Omgwtfnzbs/OmgwtfnzbsRequestGenerator.cs index 61a7e5797..272be331c 100644 --- a/src/NzbDrone.Core/Indexers/Omgwtfnzbs/OmgwtfnzbsRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/Omgwtfnzbs/OmgwtfnzbsRequestGenerator.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Text; using NzbDrone.Common.Extensions; using NzbDrone.Common.Http; @@ -25,69 +25,6 @@ namespace NzbDrone.Core.Indexers.Omgwtfnzbs return pageableRequests; } - public virtual IndexerPageableRequestChain GetSearchRequests(SingleEpisodeSearchCriteria searchCriteria) - { - var pageableRequests = new IndexerPageableRequestChain(); - - foreach (var queryTitle in searchCriteria.QueryTitles) - { - pageableRequests.Add(GetPagedRequests(string.Format("{0}+S{1:00}E{2:00}", - queryTitle, - searchCriteria.SeasonNumber, - searchCriteria.EpisodeNumber))); - } - - return pageableRequests; - } - - public virtual IndexerPageableRequestChain GetSearchRequests(SeasonSearchCriteria searchCriteria) - { - var pageableRequests = new IndexerPageableRequestChain(); - - foreach (var queryTitle in searchCriteria.QueryTitles) - { - pageableRequests.Add(GetPagedRequests(string.Format("{0}+S{1:00}", - queryTitle, - searchCriteria.SeasonNumber))); - } - - return pageableRequests; - } - - public virtual IndexerPageableRequestChain GetSearchRequests(DailyEpisodeSearchCriteria searchCriteria) - { - var pageableRequests = new IndexerPageableRequestChain(); - - foreach (var queryTitle in searchCriteria.QueryTitles) - { - pageableRequests.Add(GetPagedRequests(string.Format("{0}+{1:yyyy MM dd}", - queryTitle, - searchCriteria.AirDate))); - } - - return pageableRequests; - } - - public virtual IndexerPageableRequestChain GetSearchRequests(AnimeEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(SpecialEpisodeSearchCriteria searchCriteria) - { - var pageableRequests = new IndexerPageableRequestChain(); - - foreach (var queryTitle in searchCriteria.EpisodeQueryTitles) - { - var query = queryTitle.Replace('+', ' '); - query = System.Web.HttpUtility.UrlEncode(query); - - pageableRequests.Add(GetPagedRequests(query)); - } - - return pageableRequests; - } - public virtual IndexerPageableRequestChain GetSearchRequests(AlbumSearchCriteria searchCriteria) { var pageableRequests = new IndexerPageableRequestChain(); diff --git a/src/NzbDrone.Core/Indexers/Rarbg/RarbgRequestGenerator.cs b/src/NzbDrone.Core/Indexers/Rarbg/RarbgRequestGenerator.cs index 991f6d71b..662249477 100644 --- a/src/NzbDrone.Core/Indexers/Rarbg/RarbgRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/Rarbg/RarbgRequestGenerator.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using NzbDrone.Common.Extensions; using NzbDrone.Common.Http; using NzbDrone.Core.IndexerSearch.Definitions; @@ -25,58 +25,6 @@ namespace NzbDrone.Core.Indexers.Rarbg return pageableRequests; } - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - public virtual IndexerPageableRequestChain GetSearchRequests(SingleEpisodeSearchCriteria searchCriteria) - { - var pageableRequests = new IndexerPageableRequestChain(); - - pageableRequests.Add(GetPagedRequests("search", searchCriteria.Series.TvdbId, "S{0:00}E{1:00}", searchCriteria.SeasonNumber, searchCriteria.EpisodeNumber)); - - return pageableRequests; - } - - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - public virtual IndexerPageableRequestChain GetSearchRequests(SeasonSearchCriteria searchCriteria) - { - var pageableRequests = new IndexerPageableRequestChain(); - - pageableRequests.Add(GetPagedRequests("search", searchCriteria.Series.TvdbId, "S{0:00}", searchCriteria.SeasonNumber)); - - return pageableRequests; - } - - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - public virtual IndexerPageableRequestChain GetSearchRequests(DailyEpisodeSearchCriteria searchCriteria) - { - var pageableRequests = new IndexerPageableRequestChain(); - - pageableRequests.Add(GetPagedRequests("search", searchCriteria.Series.TvdbId, "\"{0:yyyy MM dd}\"", searchCriteria.AirDate)); - - return pageableRequests; - } - - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - public virtual IndexerPageableRequestChain GetSearchRequests(AnimeEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - public virtual IndexerPageableRequestChain GetSearchRequests(SpecialEpisodeSearchCriteria searchCriteria) - { - var pageableRequests = new IndexerPageableRequestChain(); - - foreach (var queryTitle in searchCriteria.EpisodeQueryTitles) - { - var query = queryTitle.Replace('+', ' '); - query = System.Web.HttpUtility.UrlEncode(query); - - pageableRequests.Add(GetPagedRequests("search", searchCriteria.Series.TvdbId, query)); - } - - return pageableRequests; - } - public virtual IndexerPageableRequestChain GetSearchRequests(AlbumSearchCriteria searchCriteria) { var pageableRequests = new IndexerPageableRequestChain(); diff --git a/src/NzbDrone.Core/Indexers/RssIndexerRequestGenerator.cs b/src/NzbDrone.Core/Indexers/RssIndexerRequestGenerator.cs index f00e7e740..0fa1a03f1 100644 --- a/src/NzbDrone.Core/Indexers/RssIndexerRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/RssIndexerRequestGenerator.cs @@ -1,4 +1,4 @@ -using NzbDrone.Common.Http; +using NzbDrone.Common.Http; using NzbDrone.Core.IndexerSearch.Definitions; namespace NzbDrone.Core.Indexers @@ -22,31 +22,6 @@ namespace NzbDrone.Core.Indexers return pageableRequests; } - public virtual IndexerPageableRequestChain GetSearchRequests(SingleEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(SeasonSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(DailyEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(AnimeEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(SpecialEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - public virtual IndexerPageableRequestChain GetSearchRequests(AlbumSearchCriteria searchCriteria) { throw new System.NotImplementedException(); diff --git a/src/NzbDrone.Core/Indexers/TorrentRss/TorrentRssIndexerRequestGenerator.cs b/src/NzbDrone.Core/Indexers/TorrentRss/TorrentRssIndexerRequestGenerator.cs index f791c0cea..582a817e9 100644 --- a/src/NzbDrone.Core/Indexers/TorrentRss/TorrentRssIndexerRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/TorrentRss/TorrentRssIndexerRequestGenerator.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using NzbDrone.Common.Extensions; using NzbDrone.Common.Http; using NzbDrone.Core.IndexerSearch.Definitions; @@ -18,31 +18,6 @@ namespace NzbDrone.Core.Indexers.TorrentRss return pageableRequests; } - public virtual IndexerPageableRequestChain GetSearchRequests(SingleEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(SeasonSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(DailyEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(AnimeEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(SpecialEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - public virtual IndexerPageableRequestChain GetSearchRequests(AlbumSearchCriteria searchCriteria) { throw new System.NotImplementedException(); diff --git a/src/NzbDrone.Core/Indexers/Torrentleech/TorrentleechRequestGenerator.cs b/src/NzbDrone.Core/Indexers/Torrentleech/TorrentleechRequestGenerator.cs index 4edfb6e90..829b485f8 100644 --- a/src/NzbDrone.Core/Indexers/Torrentleech/TorrentleechRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/Torrentleech/TorrentleechRequestGenerator.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using NzbDrone.Common.Http; using NzbDrone.Core.IndexerSearch.Definitions; @@ -17,31 +17,6 @@ namespace NzbDrone.Core.Indexers.Torrentleech return pageableRequests; } - public virtual IndexerPageableRequestChain GetSearchRequests(SingleEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(SeasonSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(DailyEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(AnimeEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - - public virtual IndexerPageableRequestChain GetSearchRequests(SpecialEpisodeSearchCriteria searchCriteria) - { - return new IndexerPageableRequestChain(); - } - public virtual IndexerPageableRequestChain GetSearchRequests(AlbumSearchCriteria searchCriteria) { throw new System.NotImplementedException(); diff --git a/src/NzbDrone.Core/Indexers/Waffles/WafflesRequestGenerator.cs b/src/NzbDrone.Core/Indexers/Waffles/WafflesRequestGenerator.cs index 428772083..44039cece 100644 --- a/src/NzbDrone.Core/Indexers/Waffles/WafflesRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/Waffles/WafflesRequestGenerator.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using NzbDrone.Common.Extensions; using NzbDrone.Common.Http; using System.Text; @@ -26,36 +26,6 @@ namespace NzbDrone.Core.Indexers.Waffles return pageableRequests; } - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - public virtual IndexerPageableRequestChain GetSearchRequests(SingleEpisodeSearchCriteria searchCriteria) - { - throw new NotImplementedException (); - } - - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - public virtual IndexerPageableRequestChain GetSearchRequests(SeasonSearchCriteria searchCriteria) - { - throw new NotImplementedException(); - } - - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - public virtual IndexerPageableRequestChain GetSearchRequests(DailyEpisodeSearchCriteria searchCriteria) - { - throw new NotImplementedException(); - } - - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - public virtual IndexerPageableRequestChain GetSearchRequests(AnimeEpisodeSearchCriteria searchCriteria) - { - throw new NotImplementedException(); - } - - [System.Obsolete("Sonarr TV Stuff -- Shouldn't be needed for Lidarr")] - public virtual IndexerPageableRequestChain GetSearchRequests(SpecialEpisodeSearchCriteria searchCriteria) - { - throw new NotImplementedException(); - } - public IndexerPageableRequestChain GetSearchRequests(AlbumSearchCriteria searchCriteria) { var pageableRequests = new IndexerPageableRequestChain(); diff --git a/src/NzbDrone.Core/NzbDrone.Core.csproj b/src/NzbDrone.Core/NzbDrone.Core.csproj index 8c6737b95..2c57e6d52 100644 --- a/src/NzbDrone.Core/NzbDrone.Core.csproj +++ b/src/NzbDrone.Core/NzbDrone.Core.csproj @@ -689,20 +689,9 @@ - - - - - - - - - - - diff --git a/src/NzbDrone.Core/Tv/EpisodeAddedService.cs b/src/NzbDrone.Core/Tv/EpisodeAddedService.cs index 54e3d2991..1eba25720 100644 --- a/src/NzbDrone.Core/Tv/EpisodeAddedService.cs +++ b/src/NzbDrone.Core/Tv/EpisodeAddedService.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using NLog; @@ -44,7 +44,7 @@ namespace NzbDrone.Core.Tv if (missing.Any()) { - _commandQueueManager.Push(new EpisodeSearchCommand(missing.Select(e => e.Id).ToList())); + //_commandQueueManager.Push(new EpisodeSearchCommand(missing.Select(e => e.Id).ToList())); } }