Added tiered indexer requests to support fallback to wildcard queries.

This commit is contained in:
Taloth Saldono
2015-10-09 20:56:40 +02:00
parent 88ce0ec487
commit 1ad1d73c91
22 changed files with 452 additions and 364 deletions
@@ -53,9 +53,9 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
{
var results = Subject.GetRecentRequests();
results.Should().HaveCount(1);
results.GetAllTiers().Should().HaveCount(1);
var page = results.First().First();
var page = results.GetAllTiers().First().First();
page.Url.Query.Should().Contain("&cat=1,2,3,4&");
}
@@ -67,9 +67,9 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
var results = Subject.GetRecentRequests();
results.Should().HaveCount(1);
results.GetAllTiers().Should().HaveCount(1);
var page = results.First().First();
var page = results.GetAllTiers().First().First();
page.Url.Query.Should().Contain("&cat=1,2,3,4&");
}
@@ -79,9 +79,9 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
{
var results = Subject.GetSearchRequests(_animeSearchCriteria);
results.Should().HaveCount(1);
results.GetAllTiers().Should().HaveCount(1);
var page = results.First().First();
var page = results.GetAllTiers().First().First();
page.Url.Query.Should().Contain("&cat=3,4&");
}
@@ -91,9 +91,9 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
{
var results = Subject.GetSearchRequests(_animeSearchCriteria);
results.Should().HaveCount(1);
results.GetAllTiers().Should().HaveCount(1);
var page = results.First().First();
var page = results.GetAllTiers().First().First();
page.Url.Query.Should().Contain("?t=search&");
}
@@ -103,9 +103,9 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
{
var results = Subject.GetSearchRequests(_animeSearchCriteria);
results.Should().HaveCount(1);
results.GetAllTiers().Should().HaveCount(1);
var pages = results.First().Take(3).ToList();
var pages = results.GetAllTiers().First().Take(3).ToList();
pages[0].Url.Query.Should().Contain("&offset=0&");
pages[1].Url.Query.Should().Contain("&offset=100&");
@@ -117,9 +117,9 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
{
var results = Subject.GetSearchRequests(_animeSearchCriteria);
results.Should().HaveCount(1);
results.GetAllTiers().Should().HaveCount(1);
var pages = results.First().Take(500).ToList();
var pages = results.GetAllTiers().First().Take(500).ToList();
pages.Count.Should().BeLessThan(500);
}
@@ -131,9 +131,9 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
var results = Subject.GetSearchRequests(_singleEpisodeSearchCriteria);
results.Should().HaveCount(1);
results.GetAllTiers().Should().HaveCount(1);
var page = results.First().First();
var page = results.GetAllTiers().First().First();
page.Url.Query.Should().NotContain("rid=10");
page.Url.Query.Should().Contain("q=Monkey");
@@ -143,9 +143,9 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
public void should_search_by_rid_if_supported()
{
var results = Subject.GetSearchRequests(_singleEpisodeSearchCriteria);
results.Should().HaveCount(1);
results.GetTier(0).Should().HaveCount(1);
var page = results.First().First();
var page = results.GetAllTiers().First().First();
page.Url.Query.Should().Contain("rid=10");
}
@@ -156,10 +156,9 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
_capabilities.SupportedTvSearchParameters = new[] { "q", "season", "ep" };
var results = Subject.GetSearchRequests(_singleEpisodeSearchCriteria);
results.GetTier(0).Should().HaveCount(1);
results.Should().HaveCount(1);
var page = results.First().First();
var page = results.GetAllTiers().First().First();
page.Url.Query.Should().NotContain("rid=10");
page.Url.Query.Should().Contain("q=Monkey");
@@ -171,9 +170,9 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
_capabilities.SupportedTvSearchParameters = new[] { "q", "tvdbid", "season", "ep" };
var results = Subject.GetSearchRequests(_singleEpisodeSearchCriteria);
results.Should().HaveCount(1);
results.GetTier(0).Should().HaveCount(1);
var page = results.First().First();
var page = results.GetAllTiers().First().First();
page.Url.Query.Should().Contain("tvdbid=20");
}
@@ -184,12 +183,43 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
_capabilities.SupportedTvSearchParameters = new[] { "q", "tvdbid", "rid", "season", "ep" };
var results = Subject.GetSearchRequests(_singleEpisodeSearchCriteria);
results.Should().HaveCount(1);
results.GetTier(0).Should().HaveCount(1);
var page = results.First().First();
var page = results.GetAllTiers().First().First();
page.Url.Query.Should().Contain("tvdbid=20");
page.Url.Query.Should().NotContain("rid=10");
}
[Test]
public void should_use_aggregrated_id_search_if_supported()
{
_capabilities.SupportedTvSearchParameters = new[] { "q", "tvdbid", "rid", "season", "ep" };
_capabilities.SupportsAggregateIdSearch = true;
var results = Subject.GetSearchRequests(_singleEpisodeSearchCriteria);
results.GetTier(0).Should().HaveCount(1);
var page = results.GetTier(0).First().First();
page.Url.Query.Should().Contain("tvdbid=20");
page.Url.Query.Should().Contain("rid=10");
}
[Test]
public void should_fallback_to_q()
{
_capabilities.SupportedTvSearchParameters = new[] { "q", "tvdbid", "rid", "season", "ep" };
_capabilities.SupportsAggregateIdSearch = true;
var results = Subject.GetSearchRequests(_singleEpisodeSearchCriteria);
results.Tiers.Should().Be(2);
var pageTier2 = results.GetTier(1).First().First();
pageTier2.Url.Query.Should().NotContain("tvdbid=20");
pageTier2.Url.Query.Should().NotContain("rid=10");
pageTier2.Url.Query.Should().Contain("q=");
}
}
}