mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2025-04-24 05:47:22 -04:00
New: (AlphaRatio) Add pagination support
This commit is contained in:
parent
add2988789
commit
d4b037db78
3 changed files with 27 additions and 13 deletions
|
@ -1,3 +1,4 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using NLog;
|
||||
|
@ -5,6 +6,7 @@ using NzbDrone.Common.Http;
|
|||
using NzbDrone.Core.Annotations;
|
||||
using NzbDrone.Core.Configuration;
|
||||
using NzbDrone.Core.Indexers.Definitions.Gazelle;
|
||||
using NzbDrone.Core.IndexerSearch.Definitions;
|
||||
using NzbDrone.Core.Messaging.Events;
|
||||
|
||||
namespace NzbDrone.Core.Indexers.Definitions;
|
||||
|
@ -15,6 +17,9 @@ public class AlphaRatio : GazelleBase<AlphaRatioSettings>
|
|||
public override string[] IndexerUrls => new[] { "https://alpharatio.cc/" };
|
||||
public override string Description => "AlphaRatio(AR) is a Private Torrent Tracker for 0DAY / GENERAL";
|
||||
public override IndexerPrivacy Privacy => IndexerPrivacy.Private;
|
||||
public override bool SupportsPagination => true;
|
||||
public override int PageSize => 50;
|
||||
public override TimeSpan RateLimit => TimeSpan.FromSeconds(3);
|
||||
|
||||
public AlphaRatio(IIndexerHttpClient httpClient,
|
||||
IEventAggregator eventAggregator,
|
||||
|
@ -39,6 +44,8 @@ public class AlphaRatio : GazelleBase<AlphaRatioSettings>
|
|||
{
|
||||
var caps = new IndexerCapabilities
|
||||
{
|
||||
LimitsDefault = PageSize,
|
||||
LimitsMax = PageSize,
|
||||
TvSearchParams = new List<TvSearchParam>
|
||||
{
|
||||
TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep
|
||||
|
@ -98,9 +105,9 @@ public class AlphaRatioRequestGenerator : GazelleRequestGenerator
|
|||
_settings = settings;
|
||||
}
|
||||
|
||||
protected override NameValueCollection GetBasicSearchParameters(string term, int[] categories)
|
||||
protected override NameValueCollection GetBasicSearchParameters(SearchCriteriaBase searchCriteria, string term)
|
||||
{
|
||||
var parameters = base.GetBasicSearchParameters(term, categories);
|
||||
var parameters = base.GetBasicSearchParameters(searchCriteria, term);
|
||||
|
||||
if (_settings.FreeleechOnly)
|
||||
{
|
||||
|
@ -112,6 +119,12 @@ public class AlphaRatioRequestGenerator : GazelleRequestGenerator
|
|||
parameters.Set("scene", "0");
|
||||
}
|
||||
|
||||
if (searchCriteria.Limit is > 0 && searchCriteria.Offset is > 0)
|
||||
{
|
||||
var page = (int)(searchCriteria.Offset / searchCriteria.Limit) + 1;
|
||||
parameters.Set("page", page.ToString());
|
||||
}
|
||||
|
||||
return parameters;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,7 +46,7 @@ public class GazelleRequestGenerator : IIndexerRequestGenerator
|
|||
{
|
||||
var pageableRequests = new IndexerPageableRequestChain();
|
||||
|
||||
var parameters = GetBasicSearchParameters(searchCriteria.SanitizedSearchTerm, searchCriteria.Categories);
|
||||
var parameters = GetBasicSearchParameters(searchCriteria, searchCriteria.SanitizedSearchTerm);
|
||||
|
||||
if (searchCriteria.ImdbId != null)
|
||||
{
|
||||
|
@ -62,7 +62,7 @@ public class GazelleRequestGenerator : IIndexerRequestGenerator
|
|||
{
|
||||
var pageableRequests = new IndexerPageableRequestChain();
|
||||
|
||||
var parameters = GetBasicSearchParameters(searchCriteria.SanitizedSearchTerm, searchCriteria.Categories);
|
||||
var parameters = GetBasicSearchParameters(searchCriteria, searchCriteria.SanitizedSearchTerm);
|
||||
|
||||
if (searchCriteria.Artist.IsNotNullOrWhiteSpace() && searchCriteria.Artist != "VA")
|
||||
{
|
||||
|
@ -88,7 +88,7 @@ public class GazelleRequestGenerator : IIndexerRequestGenerator
|
|||
{
|
||||
var pageableRequests = new IndexerPageableRequestChain();
|
||||
|
||||
var parameters = GetBasicSearchParameters(searchCriteria.SanitizedTvSearchString, searchCriteria.Categories);
|
||||
var parameters = GetBasicSearchParameters(searchCriteria, searchCriteria.SanitizedTvSearchString);
|
||||
|
||||
if (searchCriteria.ImdbId != null)
|
||||
{
|
||||
|
@ -104,7 +104,7 @@ public class GazelleRequestGenerator : IIndexerRequestGenerator
|
|||
{
|
||||
var pageableRequests = new IndexerPageableRequestChain();
|
||||
|
||||
var parameters = GetBasicSearchParameters(searchCriteria.SanitizedSearchTerm, searchCriteria.Categories);
|
||||
var parameters = GetBasicSearchParameters(searchCriteria, searchCriteria.SanitizedSearchTerm);
|
||||
pageableRequests.Add(GetRequest(parameters));
|
||||
|
||||
return pageableRequests;
|
||||
|
@ -114,7 +114,7 @@ public class GazelleRequestGenerator : IIndexerRequestGenerator
|
|||
{
|
||||
var pageableRequests = new IndexerPageableRequestChain();
|
||||
|
||||
var parameters = GetBasicSearchParameters(searchCriteria.SanitizedSearchTerm, searchCriteria.Categories);
|
||||
var parameters = GetBasicSearchParameters(searchCriteria, searchCriteria.SanitizedSearchTerm);
|
||||
pageableRequests.Add(GetRequest(parameters));
|
||||
|
||||
return pageableRequests;
|
||||
|
@ -123,7 +123,7 @@ public class GazelleRequestGenerator : IIndexerRequestGenerator
|
|||
// hook to adjust the search term
|
||||
protected virtual string GetSearchTerm(string term) => term;
|
||||
|
||||
protected virtual NameValueCollection GetBasicSearchParameters(string term, int[] categories)
|
||||
protected virtual NameValueCollection GetBasicSearchParameters(SearchCriteriaBase searchCriteria, string term)
|
||||
{
|
||||
var parameters = new NameValueCollection
|
||||
{
|
||||
|
@ -139,9 +139,10 @@ public class GazelleRequestGenerator : IIndexerRequestGenerator
|
|||
parameters.Set("searchstr", searchTerm.Replace(".", " "));
|
||||
}
|
||||
|
||||
if (categories != null)
|
||||
if (searchCriteria.Categories != null && searchCriteria.Categories.Any())
|
||||
{
|
||||
var queryCats = Capabilities.Categories.MapTorznabCapsToTrackers(categories);
|
||||
var queryCats = Capabilities.Categories.MapTorznabCapsToTrackers(searchCriteria.Categories);
|
||||
|
||||
if (queryCats.Any())
|
||||
{
|
||||
queryCats.ForEach(cat => parameters.Set($"filter_cat[{cat}]", "1"));
|
||||
|
|
|
@ -89,7 +89,7 @@ public class GreatPosterWallRequestGenerator : GazelleRequestGenerator
|
|||
|
||||
public override IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria)
|
||||
{
|
||||
var parameters = GetBasicSearchParameters(searchCriteria.SearchTerm, searchCriteria.Categories);
|
||||
var parameters = GetBasicSearchParameters(searchCriteria, searchCriteria.SearchTerm);
|
||||
|
||||
if (searchCriteria.ImdbId != null)
|
||||
{
|
||||
|
@ -101,9 +101,9 @@ public class GreatPosterWallRequestGenerator : GazelleRequestGenerator
|
|||
return pageableRequests;
|
||||
}
|
||||
|
||||
protected override NameValueCollection GetBasicSearchParameters(string term, int[] categories)
|
||||
protected override NameValueCollection GetBasicSearchParameters(SearchCriteriaBase searchCriteria, string term)
|
||||
{
|
||||
var parameters = base.GetBasicSearchParameters(term, categories);
|
||||
var parameters = base.GetBasicSearchParameters(searchCriteria, term);
|
||||
|
||||
if (_settings.FreeleechOnly)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue