Fixed: Newznab/Torznab used wrong query if tvrageid was unknown in combination with a specific indexer capability profile.
This commit is contained in:
parent
947f494e72
commit
4c5707bba8
|
@ -234,6 +234,21 @@ namespace NzbDrone.Core.Test.IndexerTests.NewznabTests
|
||||||
page.Url.Query.Should().Contain("q=");
|
page.Url.Query.Should().Contain("q=");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void should_not_use_aggregrated_id_search_if_no_ids_are_known()
|
||||||
|
{
|
||||||
|
_capabilities.SupportedTvSearchParameters = new[] { "q", "rid", "season", "ep" };
|
||||||
|
_capabilities.SupportsAggregateIdSearch = true; // Turns true if indexer supplies supportedParams.
|
||||||
|
|
||||||
|
_singleEpisodeSearchCriteria.Series.TvRageId = 0;
|
||||||
|
|
||||||
|
var results = Subject.GetSearchRequests(_singleEpisodeSearchCriteria);
|
||||||
|
|
||||||
|
var page = results.GetTier(0).First().First();
|
||||||
|
|
||||||
|
page.Url.Query.Should().Contain("q=");
|
||||||
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void should_fallback_to_q()
|
public void should_fallback_to_q()
|
||||||
{
|
{
|
||||||
|
|
|
@ -183,21 +183,25 @@ namespace NzbDrone.Core.Indexers.Newznab
|
||||||
|
|
||||||
private void AddTvIdPageableRequests(IndexerPageableRequestChain chain, int maxPages, IEnumerable<int> categories, SearchCriteriaBase searchCriteria, string parameters)
|
private void AddTvIdPageableRequests(IndexerPageableRequestChain chain, int maxPages, IEnumerable<int> categories, SearchCriteriaBase searchCriteria, string parameters)
|
||||||
{
|
{
|
||||||
if (SupportsAggregatedIdSearch && (SupportsTvdbSearch || SupportsTvRageSearch || SupportsTvMazeSearch))
|
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 = "";
|
var ids = "";
|
||||||
|
|
||||||
if (searchCriteria.Series.TvdbId > 0 && SupportsTvdbSearch)
|
if (includeTvdbSearch)
|
||||||
{
|
{
|
||||||
ids += "&tvdbid=" + searchCriteria.Series.TvdbId;
|
ids += "&tvdbid=" + searchCriteria.Series.TvdbId;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (searchCriteria.Series.TvRageId > 0 && SupportsTvRageSearch)
|
if (includeTvRageSearch)
|
||||||
{
|
{
|
||||||
ids += "&rid=" + searchCriteria.Series.TvRageId;
|
ids += "&rid=" + searchCriteria.Series.TvRageId;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (searchCriteria.Series.TvMazeId > 0 && SupportsTvMazeSearch)
|
if (includeTvMazeSearch)
|
||||||
{
|
{
|
||||||
ids += "&tvmazeid=" + searchCriteria.Series.TvMazeId;
|
ids += "&tvmazeid=" + searchCriteria.Series.TvMazeId;
|
||||||
}
|
}
|
||||||
|
@ -206,18 +210,18 @@ namespace NzbDrone.Core.Indexers.Newznab
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (searchCriteria.Series.TvdbId > 0 && SupportsTvdbSearch)
|
if (includeTvdbSearch)
|
||||||
{
|
{
|
||||||
chain.Add(GetPagedRequests(maxPages, categories, "tvsearch",
|
chain.Add(GetPagedRequests(maxPages, categories, "tvsearch",
|
||||||
string.Format("&tvdbid={0}{1}", searchCriteria.Series.TvdbId, parameters)));
|
string.Format("&tvdbid={0}{1}", searchCriteria.Series.TvdbId, parameters)));
|
||||||
}
|
}
|
||||||
else if (searchCriteria.Series.TvRageId > 0 && SupportsTvRageSearch)
|
else if (includeTvRageSearch)
|
||||||
{
|
{
|
||||||
chain.Add(GetPagedRequests(maxPages, categories, "tvsearch",
|
chain.Add(GetPagedRequests(maxPages, categories, "tvsearch",
|
||||||
string.Format("&rid={0}{1}", searchCriteria.Series.TvRageId, parameters)));
|
string.Format("&rid={0}{1}", searchCriteria.Series.TvRageId, parameters)));
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (searchCriteria.Series.TvMazeId > 0 && SupportsTvMazeSearch)
|
else if (includeTvMazeSearch)
|
||||||
{
|
{
|
||||||
chain.Add(GetPagedRequests(maxPages, categories, "tvsearch",
|
chain.Add(GetPagedRequests(maxPages, categories, "tvsearch",
|
||||||
string.Format("&tvmazeid={0}{1}", searchCriteria.Series.TvMazeId, parameters)));
|
string.Format("&tvmazeid={0}{1}", searchCriteria.Series.TvMazeId, parameters)));
|
||||||
|
|
Loading…
Reference in New Issue