mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2026-04-22 22:34:53 -04:00
Fixed: (XSpeeds) Category filtering if single, add sorting to skip sticky
This commit is contained in:
@@ -41,7 +41,7 @@ public class XSpeeds : TorrentIndexerBase<UserPassTorrentBaseSettings>
|
||||
|
||||
public override IIndexerRequestGenerator GetRequestGenerator()
|
||||
{
|
||||
return new XSpeedsRequestGenerator(Settings);
|
||||
return new XSpeedsRequestGenerator(Settings, Capabilities);
|
||||
}
|
||||
|
||||
public override IParseIndexerResponse GetParser()
|
||||
@@ -166,17 +166,19 @@ public class XSpeeds : TorrentIndexerBase<UserPassTorrentBaseSettings>
|
||||
public class XSpeedsRequestGenerator : IIndexerRequestGenerator
|
||||
{
|
||||
private readonly UserPassTorrentBaseSettings _settings;
|
||||
private readonly IndexerCapabilities _capabilities;
|
||||
|
||||
public XSpeedsRequestGenerator(UserPassTorrentBaseSettings settings)
|
||||
public XSpeedsRequestGenerator(UserPassTorrentBaseSettings settings, IndexerCapabilities capabilities)
|
||||
{
|
||||
_settings = settings;
|
||||
_capabilities = capabilities;
|
||||
}
|
||||
|
||||
public IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria)
|
||||
{
|
||||
var pageableRequests = new IndexerPageableRequestChain();
|
||||
|
||||
pageableRequests.Add(GetPagedRequests($"{searchCriteria.SanitizedSearchTerm}"));
|
||||
pageableRequests.Add(GetPagedRequests($"{searchCriteria.SanitizedSearchTerm}", searchCriteria.Categories));
|
||||
|
||||
return pageableRequests;
|
||||
}
|
||||
@@ -185,7 +187,7 @@ public class XSpeedsRequestGenerator : IIndexerRequestGenerator
|
||||
{
|
||||
var pageableRequests = new IndexerPageableRequestChain();
|
||||
|
||||
pageableRequests.Add(GetPagedRequests($"{searchCriteria.SanitizedSearchTerm}"));
|
||||
pageableRequests.Add(GetPagedRequests($"{searchCriteria.SanitizedSearchTerm}", searchCriteria.Categories));
|
||||
|
||||
return pageableRequests;
|
||||
}
|
||||
@@ -194,7 +196,7 @@ public class XSpeedsRequestGenerator : IIndexerRequestGenerator
|
||||
{
|
||||
var pageableRequests = new IndexerPageableRequestChain();
|
||||
|
||||
pageableRequests.Add(GetPagedRequests($"{searchCriteria.SanitizedTvSearchString}"));
|
||||
pageableRequests.Add(GetPagedRequests($"{searchCriteria.SanitizedTvSearchString}", searchCriteria.Categories));
|
||||
|
||||
return pageableRequests;
|
||||
}
|
||||
@@ -203,7 +205,7 @@ public class XSpeedsRequestGenerator : IIndexerRequestGenerator
|
||||
{
|
||||
var pageableRequests = new IndexerPageableRequestChain();
|
||||
|
||||
pageableRequests.Add(GetPagedRequests($"{searchCriteria.SanitizedSearchTerm}"));
|
||||
pageableRequests.Add(GetPagedRequests($"{searchCriteria.SanitizedSearchTerm}", searchCriteria.Categories));
|
||||
|
||||
return pageableRequests;
|
||||
}
|
||||
@@ -212,14 +214,22 @@ public class XSpeedsRequestGenerator : IIndexerRequestGenerator
|
||||
{
|
||||
var pageableRequests = new IndexerPageableRequestChain();
|
||||
|
||||
pageableRequests.Add(GetPagedRequests($"{searchCriteria.SanitizedSearchTerm}"));
|
||||
pageableRequests.Add(GetPagedRequests($"{searchCriteria.SanitizedSearchTerm}", searchCriteria.Categories));
|
||||
|
||||
return pageableRequests;
|
||||
}
|
||||
|
||||
private IEnumerable<IndexerRequest> GetPagedRequests(string term)
|
||||
private IEnumerable<IndexerRequest> GetPagedRequests(string term, int[] categories)
|
||||
{
|
||||
var parameters = new NameValueCollection();
|
||||
var categoryMapping = _capabilities.Categories.MapTorznabCapsToTrackers(categories);
|
||||
|
||||
var parameters = new NameValueCollection
|
||||
{
|
||||
{ "category", categoryMapping.FirstIfSingleOrDefault("0") }, // multi category search not supported
|
||||
{ "include_dead_torrents", "yes" },
|
||||
{ "sort", "added" },
|
||||
{ "order", "desc" }
|
||||
};
|
||||
|
||||
term = Regex.Replace(term, @"[ -._]+", " ").Trim();
|
||||
|
||||
@@ -228,8 +238,6 @@ public class XSpeedsRequestGenerator : IIndexerRequestGenerator
|
||||
parameters.Set("do", "search");
|
||||
parameters.Set("keywords", term);
|
||||
parameters.Set("search_type", "t_name");
|
||||
parameters.Set("category", "0"); // multi category search not supported
|
||||
parameters.Set("include_dead_torrents", "no");
|
||||
}
|
||||
|
||||
var searchUrl = _settings.BaseUrl + "browse.php";
|
||||
|
||||
Reference in New Issue
Block a user