mirror of
https://github.com/Prowlarr/Prowlarr
synced 2026-01-17 13:12:03 +01:00
Fixed: (AvistazBase) Add pagination and SupportsPagination
This commit is contained in:
parent
ac3047f0cc
commit
538abcc47b
6 changed files with 36 additions and 55 deletions
|
|
@ -23,17 +23,6 @@ public AvistaZ(IIndexerRepository indexerRepository,
|
|||
{
|
||||
}
|
||||
|
||||
public override IIndexerRequestGenerator GetRequestGenerator()
|
||||
{
|
||||
return new AvistazRequestGenerator
|
||||
{
|
||||
Settings = Settings,
|
||||
HttpClient = _httpClient,
|
||||
Logger = _logger,
|
||||
Capabilities = Capabilities
|
||||
};
|
||||
}
|
||||
|
||||
public override IParseIndexerResponse GetParser()
|
||||
{
|
||||
return new AvistaZParser();
|
||||
|
|
@ -43,6 +32,8 @@ protected override IndexerCapabilities SetCapabilities()
|
|||
{
|
||||
var caps = new IndexerCapabilities
|
||||
{
|
||||
LimitsDefault = PageSize,
|
||||
LimitsMax = PageSize,
|
||||
TvSearchParams = new List<TvSearchParam>
|
||||
{
|
||||
TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.TvdbId, TvSearchParam.Genre
|
||||
|
|
|
|||
|
|
@ -15,7 +15,9 @@ public abstract class AvistazBase : TorrentIndexerBase<AvistazSettings>
|
|||
public override DownloadProtocol Protocol => DownloadProtocol.Torrent;
|
||||
public override bool SupportsRss => true;
|
||||
public override bool SupportsSearch => true;
|
||||
public override bool SupportsPagination => true;
|
||||
public override int PageSize => 50;
|
||||
public override TimeSpan RateLimit => TimeSpan.FromSeconds(4);
|
||||
public override IndexerCapabilities Capabilities => SetCapabilities();
|
||||
protected virtual string LoginUrl => Settings.BaseUrl + "api/v1/jackett/auth";
|
||||
private IIndexerRepository _indexerRepository;
|
||||
|
|
@ -36,9 +38,10 @@ public override IIndexerRequestGenerator GetRequestGenerator()
|
|||
return new AvistazRequestGenerator
|
||||
{
|
||||
Settings = Settings,
|
||||
Capabilities = Capabilities,
|
||||
PageSize = PageSize,
|
||||
HttpClient = _httpClient,
|
||||
Logger = _logger,
|
||||
Capabilities = Capabilities
|
||||
Logger = _logger
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,23 +12,35 @@ namespace NzbDrone.Core.Indexers.Definitions.Avistaz
|
|||
public class AvistazRequestGenerator : IIndexerRequestGenerator
|
||||
{
|
||||
public AvistazSettings Settings { get; set; }
|
||||
public IIndexerHttpClient HttpClient { get; set; }
|
||||
public IndexerCapabilities Capabilities { get; set; }
|
||||
public int PageSize { get; set; }
|
||||
public IIndexerHttpClient HttpClient { get; set; }
|
||||
public Logger Logger { get; set; }
|
||||
public Func<IDictionary<string, string>> GetCookies { get; set; }
|
||||
public Action<IDictionary<string, string>, DateTime?> CookiesUpdater { get; set; }
|
||||
|
||||
protected virtual string SearchUrl => Settings.BaseUrl + "api/v1/jackett/torrents";
|
||||
|
||||
// hook to adjust the search category
|
||||
protected virtual List<KeyValuePair<string, string>> GetBasicSearchParameters(int[] categories, string genre)
|
||||
protected virtual List<KeyValuePair<string, string>> GetBasicSearchParameters(SearchCriteriaBase searchCriteria, string genre = null)
|
||||
{
|
||||
var categories = searchCriteria.Categories ?? Array.Empty<int>();
|
||||
|
||||
var categoryMapping = Capabilities.Categories.MapTorznabCapsToTrackers(categories).Distinct().ToList();
|
||||
|
||||
var qc = new List<KeyValuePair<string, string>> // NameValueCollection don't support cat[]=19&cat[]=6
|
||||
{
|
||||
{ "in", "1" },
|
||||
{ "type", categoryMapping.Any() ? categoryMapping.First() : "0" }
|
||||
{ "type", categoryMapping.FirstIfSingleOrDefault("0") },
|
||||
{ "limit", Math.Min(PageSize, searchCriteria.Limit.GetValueOrDefault(PageSize)).ToString() }
|
||||
};
|
||||
|
||||
if (searchCriteria.Limit is > 0 && searchCriteria.Offset is > 0)
|
||||
{
|
||||
var page = (int)(searchCriteria.Offset / searchCriteria.Limit) + 1;
|
||||
qc.Add("page", page.ToString());
|
||||
}
|
||||
|
||||
if (Settings.FreeleechOnly)
|
||||
{
|
||||
qc.Add("discount[]", "1");
|
||||
|
|
@ -78,7 +90,7 @@ private IEnumerable<IndexerRequest> GetRequest(List<KeyValuePair<string, string>
|
|||
|
||||
public IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchCriteria)
|
||||
{
|
||||
var parameters = GetBasicSearchParameters(searchCriteria.Categories, searchCriteria.Genre);
|
||||
var parameters = GetBasicSearchParameters(searchCriteria, searchCriteria.Genre);
|
||||
|
||||
if (searchCriteria.ImdbId.IsNotNullOrWhiteSpace())
|
||||
{
|
||||
|
|
@ -100,7 +112,7 @@ public IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria searchC
|
|||
|
||||
public IndexerPageableRequestChain GetSearchRequests(MusicSearchCriteria searchCriteria)
|
||||
{
|
||||
var parameters = GetBasicSearchParameters(searchCriteria.Categories, null);
|
||||
var parameters = GetBasicSearchParameters(searchCriteria);
|
||||
|
||||
parameters.Add("search", GetSearchTerm(searchCriteria.SanitizedSearchTerm).Trim());
|
||||
|
||||
|
|
@ -111,7 +123,7 @@ public IndexerPageableRequestChain GetSearchRequests(MusicSearchCriteria searchC
|
|||
|
||||
public IndexerPageableRequestChain GetSearchRequests(TvSearchCriteria searchCriteria)
|
||||
{
|
||||
var parameters = GetBasicSearchParameters(searchCriteria.Categories, searchCriteria.Genre);
|
||||
var parameters = GetBasicSearchParameters(searchCriteria, searchCriteria.Genre);
|
||||
|
||||
if (searchCriteria.ImdbId.IsNotNullOrWhiteSpace())
|
||||
{
|
||||
|
|
@ -135,7 +147,7 @@ public IndexerPageableRequestChain GetSearchRequests(TvSearchCriteria searchCrit
|
|||
|
||||
public IndexerPageableRequestChain GetSearchRequests(BookSearchCriteria searchCriteria)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
return new IndexerPageableRequestChain();
|
||||
}
|
||||
|
||||
// hook to adjust the search term
|
||||
|
|
@ -143,7 +155,7 @@ public IndexerPageableRequestChain GetSearchRequests(BookSearchCriteria searchCr
|
|||
|
||||
public IndexerPageableRequestChain GetSearchRequests(BasicSearchCriteria searchCriteria)
|
||||
{
|
||||
var parameters = GetBasicSearchParameters(searchCriteria.Categories, null);
|
||||
var parameters = GetBasicSearchParameters(searchCriteria);
|
||||
|
||||
parameters.Add("search", GetSearchTerm(searchCriteria.SanitizedSearchTerm).Trim());
|
||||
|
||||
|
|
|
|||
|
|
@ -23,21 +23,12 @@ public CinemaZ(IIndexerRepository indexerRepository,
|
|||
{
|
||||
}
|
||||
|
||||
public override IIndexerRequestGenerator GetRequestGenerator()
|
||||
{
|
||||
return new AvistazRequestGenerator
|
||||
{
|
||||
Settings = Settings,
|
||||
HttpClient = _httpClient,
|
||||
Logger = _logger,
|
||||
Capabilities = Capabilities
|
||||
};
|
||||
}
|
||||
|
||||
protected override IndexerCapabilities SetCapabilities()
|
||||
{
|
||||
var caps = new IndexerCapabilities
|
||||
{
|
||||
LimitsDefault = PageSize,
|
||||
LimitsMax = PageSize,
|
||||
TvSearchParams = new List<TvSearchParam>
|
||||
{
|
||||
TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.Genre
|
||||
|
|
|
|||
|
|
@ -24,17 +24,6 @@ public ExoticaZ(IIndexerRepository indexerRepository,
|
|||
{
|
||||
}
|
||||
|
||||
public override IIndexerRequestGenerator GetRequestGenerator()
|
||||
{
|
||||
return new AvistazRequestGenerator
|
||||
{
|
||||
Settings = Settings,
|
||||
HttpClient = _httpClient,
|
||||
Logger = _logger,
|
||||
Capabilities = Capabilities,
|
||||
};
|
||||
}
|
||||
|
||||
public override IParseIndexerResponse GetParser()
|
||||
{
|
||||
return new ExoticaZParser(Capabilities.Categories);
|
||||
|
|
@ -42,7 +31,11 @@ public override IParseIndexerResponse GetParser()
|
|||
|
||||
protected override IndexerCapabilities SetCapabilities()
|
||||
{
|
||||
var caps = new IndexerCapabilities();
|
||||
var caps = new IndexerCapabilities
|
||||
{
|
||||
LimitsDefault = PageSize,
|
||||
LimitsMax = PageSize
|
||||
};
|
||||
|
||||
caps.Categories.AddCategoryMapping(1, NewznabStandardCategory.XXXx264, "Video Clip");
|
||||
caps.Categories.AddCategoryMapping(2, NewznabStandardCategory.XXXPack, "Video Pack");
|
||||
|
|
|
|||
|
|
@ -23,21 +23,12 @@ public PrivateHD(IIndexerRepository indexerRepository,
|
|||
{
|
||||
}
|
||||
|
||||
public override IIndexerRequestGenerator GetRequestGenerator()
|
||||
{
|
||||
return new AvistazRequestGenerator
|
||||
{
|
||||
Settings = Settings,
|
||||
HttpClient = _httpClient,
|
||||
Logger = _logger,
|
||||
Capabilities = Capabilities
|
||||
};
|
||||
}
|
||||
|
||||
protected override IndexerCapabilities SetCapabilities()
|
||||
{
|
||||
var caps = new IndexerCapabilities
|
||||
{
|
||||
LimitsDefault = PageSize,
|
||||
LimitsMax = PageSize,
|
||||
TvSearchParams = new List<TvSearchParam>
|
||||
{
|
||||
TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.ImdbId, TvSearchParam.TvdbId, TvSearchParam.Genre
|
||||
|
|
|
|||
Loading…
Reference in a new issue