New: RARBG tvdbId support and retry on failure

Fixes #333
pull/387/head
Qstick 3 years ago
parent f97c3ff9bd
commit 13b458090d

@ -20,7 +20,7 @@ namespace NzbDrone.Core.Indexers.Rarbg
_tokenProvider = tokenProvider; _tokenProvider = tokenProvider;
} }
private IEnumerable<IndexerRequest> GetRequest(string term, int[] categories, string imdbId = null, int? tmdbId = null) private IEnumerable<IndexerRequest> GetRequest(string term, int[] categories, string imdbId = null, int? tmdbId = null, int? tvdbId = null)
{ {
var requestBuilder = new HttpRequestBuilder(Settings.BaseUrl) var requestBuilder = new HttpRequestBuilder(Settings.BaseUrl)
.Resource("/pubapi_v2.php") .Resource("/pubapi_v2.php")
@ -42,6 +42,10 @@ namespace NzbDrone.Core.Indexers.Rarbg
{ {
requestBuilder.AddQueryParam("search_themoviedb", tmdbId); requestBuilder.AddQueryParam("search_themoviedb", tmdbId);
} }
else if (tvdbId.HasValue && tmdbId > 0)
{
requestBuilder.AddQueryParam("search_tvdb", tvdbId);
}
else if (term.IsNotNullOrWhiteSpace()) else if (term.IsNotNullOrWhiteSpace())
{ {
requestBuilder.AddQueryParam("search_string", $"{term}"); requestBuilder.AddQueryParam("search_string", $"{term}");
@ -70,36 +74,43 @@ namespace NzbDrone.Core.Indexers.Rarbg
public IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria) public IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria)
{ {
var pageableRequests = new IndexerPageableRequestChain(); var request = GetRequest(searchCriteria.SanitizedSearchTerm, searchCriteria.Categories, searchCriteria.FullImdbId, searchCriteria.TmdbId);
pageableRequests.Add(GetRequest(searchCriteria.SanitizedSearchTerm, searchCriteria.Categories, searchCriteria.FullImdbId, searchCriteria.TmdbId)); return GetRequestChain(request, 2);
return pageableRequests;
} }
public IndexerPageableRequestChain GetSearchRequests(MusicSearchCriteria searchCriteria) public IndexerPageableRequestChain GetSearchRequests(MusicSearchCriteria searchCriteria)
{ {
var pageableRequests = new IndexerPageableRequestChain(); var request = GetRequest(searchCriteria.SanitizedSearchTerm, searchCriteria.Categories);
pageableRequests.Add(GetRequest(searchCriteria.SanitizedSearchTerm, searchCriteria.Categories)); return GetRequestChain(request, 2);
return pageableRequests;
} }
public IndexerPageableRequestChain GetSearchRequests(TvSearchCriteria searchCriteria) public IndexerPageableRequestChain GetSearchRequests(TvSearchCriteria searchCriteria)
{ {
var pageableRequests = new IndexerPageableRequestChain(); var request = GetRequest(searchCriteria.SanitizedTvSearchString, searchCriteria.Categories, searchCriteria.FullImdbId, tvdbId: searchCriteria.TvdbId);
pageableRequests.Add(GetRequest(searchCriteria.SanitizedTvSearchString, searchCriteria.Categories, searchCriteria.FullImdbId)); return GetRequestChain(request, 2);
return pageableRequests;
} }
public IndexerPageableRequestChain GetSearchRequests(BookSearchCriteria searchCriteria) public IndexerPageableRequestChain GetSearchRequests(BookSearchCriteria searchCriteria)
{ {
var pageableRequests = new IndexerPageableRequestChain(); var request = GetRequest(searchCriteria.SanitizedSearchTerm, searchCriteria.Categories);
pageableRequests.Add(GetRequest(searchCriteria.SanitizedSearchTerm, searchCriteria.Categories)); return GetRequestChain(request, 2);
return pageableRequests;
} }
public IndexerPageableRequestChain GetSearchRequests(BasicSearchCriteria searchCriteria) public IndexerPageableRequestChain GetSearchRequests(BasicSearchCriteria searchCriteria)
{
var request = GetRequest(searchCriteria.SanitizedSearchTerm, searchCriteria.Categories);
return GetRequestChain(request, 2);
}
private IndexerPageableRequestChain GetRequestChain(IEnumerable<IndexerRequest> requests, int retry)
{ {
var pageableRequests = new IndexerPageableRequestChain(); var pageableRequests = new IndexerPageableRequestChain();
pageableRequests.Add(GetRequest(searchCriteria.SanitizedSearchTerm, searchCriteria.Categories));
for (int i = 0; i < retry; i++)
{
pageableRequests.AddTier(requests);
}
return pageableRequests; return pageableRequests;
} }

Loading…
Cancel
Save