mirror of
https://github.com/Prowlarr/Prowlarr
synced 2026-01-16 12:41:57 +01:00
parent
d279c97f15
commit
680bf46e25
1 changed files with 21 additions and 17 deletions
|
|
@ -38,7 +38,7 @@ public SceneHD(IIndexerHttpClient httpClient, IEventAggregator eventAggregator,
|
|||
|
||||
public override IIndexerRequestGenerator GetRequestGenerator()
|
||||
{
|
||||
return new SceneHDRequestGenerator() { Settings = Settings, Capabilities = Capabilities };
|
||||
return new SceneHDRequestGenerator(Settings, Capabilities);
|
||||
}
|
||||
|
||||
public override IParseIndexerResponse GetParser()
|
||||
|
|
@ -88,38 +88,42 @@ private IndexerCapabilities SetCapabilities()
|
|||
|
||||
public class SceneHDRequestGenerator : IIndexerRequestGenerator
|
||||
{
|
||||
public SceneHDSettings Settings { get; set; }
|
||||
public IndexerCapabilities Capabilities { get; set; }
|
||||
public string BaseUrl { get; set; }
|
||||
private readonly SceneHDSettings _settings;
|
||||
private readonly IndexerCapabilities _capabilities;
|
||||
|
||||
public SceneHDRequestGenerator(SceneHDSettings settings, IndexerCapabilities capabilities)
|
||||
{
|
||||
_settings = settings;
|
||||
_capabilities = capabilities;
|
||||
}
|
||||
|
||||
private IEnumerable<IndexerRequest> GetPagedRequests(string term, int[] categories, string imdbId = null)
|
||||
{
|
||||
var search = new[] { imdbId, term };
|
||||
|
||||
var qc = new NameValueCollection
|
||||
var parameters = new NameValueCollection
|
||||
{
|
||||
{ "api", "" },
|
||||
{ "passkey", Settings.Passkey },
|
||||
{ "passkey", _settings.Passkey },
|
||||
{ "search", string.Join(" ", search.Where(s => s.IsNotNullOrWhiteSpace())) },
|
||||
{ "search", string.Join(" ", search.Where(s => s.IsNotNullOrWhiteSpace())) }
|
||||
};
|
||||
|
||||
foreach (var cat in Capabilities.Categories.MapTorznabCapsToTrackers(categories))
|
||||
if (categories?.Length > 0)
|
||||
{
|
||||
qc.Add("categories[" + cat + "]", "1");
|
||||
parameters.Add("cat", _capabilities.Categories.MapTorznabCapsToTrackers(categories).Distinct().Join(","));
|
||||
}
|
||||
|
||||
var searchUrl = string.Format("{0}/browse.php?{1}", Settings.BaseUrl.TrimEnd('/'), qc.GetQueryString());
|
||||
var searchUrl = $"{_settings.BaseUrl.TrimEnd('/')}/browse.php?{parameters.GetQueryString()}";
|
||||
|
||||
var request = new IndexerRequest(searchUrl, HttpAccept.Json);
|
||||
|
||||
yield return request;
|
||||
yield return new IndexerRequest(searchUrl, HttpAccept.Json);
|
||||
}
|
||||
|
||||
public IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria)
|
||||
{
|
||||
var pageableRequests = new IndexerPageableRequestChain();
|
||||
|
||||
pageableRequests.Add(GetPagedRequests(string.Format("{0}", searchCriteria.SanitizedSearchTerm), searchCriteria.Categories, searchCriteria.FullImdbId));
|
||||
pageableRequests.Add(GetPagedRequests($"{searchCriteria.SanitizedSearchTerm}", searchCriteria.Categories, searchCriteria.FullImdbId));
|
||||
|
||||
return pageableRequests;
|
||||
}
|
||||
|
|
@ -128,7 +132,7 @@ public IndexerPageableRequestChain GetSearchRequests(MusicSearchCriteria searchC
|
|||
{
|
||||
var pageableRequests = new IndexerPageableRequestChain();
|
||||
|
||||
pageableRequests.Add(GetPagedRequests(string.Format("{0}", searchCriteria.SanitizedSearchTerm), searchCriteria.Categories));
|
||||
pageableRequests.Add(GetPagedRequests($"{searchCriteria.SanitizedSearchTerm}", searchCriteria.Categories));
|
||||
|
||||
return pageableRequests;
|
||||
}
|
||||
|
|
@ -137,7 +141,7 @@ public IndexerPageableRequestChain GetSearchRequests(TvSearchCriteria searchCrit
|
|||
{
|
||||
var pageableRequests = new IndexerPageableRequestChain();
|
||||
|
||||
pageableRequests.Add(GetPagedRequests(string.Format("{0}", searchCriteria.SanitizedTvSearchString), searchCriteria.Categories, searchCriteria.FullImdbId));
|
||||
pageableRequests.Add(GetPagedRequests($"{searchCriteria.SanitizedTvSearchString}", searchCriteria.Categories, searchCriteria.FullImdbId));
|
||||
|
||||
return pageableRequests;
|
||||
}
|
||||
|
|
@ -146,7 +150,7 @@ public IndexerPageableRequestChain GetSearchRequests(BookSearchCriteria searchCr
|
|||
{
|
||||
var pageableRequests = new IndexerPageableRequestChain();
|
||||
|
||||
pageableRequests.Add(GetPagedRequests(string.Format("{0}", searchCriteria.SanitizedSearchTerm), searchCriteria.Categories));
|
||||
pageableRequests.Add(GetPagedRequests($"{searchCriteria.SanitizedSearchTerm}", searchCriteria.Categories));
|
||||
|
||||
return pageableRequests;
|
||||
}
|
||||
|
|
@ -155,7 +159,7 @@ public IndexerPageableRequestChain GetSearchRequests(BasicSearchCriteria searchC
|
|||
{
|
||||
var pageableRequests = new IndexerPageableRequestChain();
|
||||
|
||||
pageableRequests.Add(GetPagedRequests(string.Format("{0}", searchCriteria.SanitizedSearchTerm), searchCriteria.Categories));
|
||||
pageableRequests.Add(GetPagedRequests($"{searchCriteria.SanitizedSearchTerm}", searchCriteria.Categories));
|
||||
|
||||
return pageableRequests;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue