mirror of
https://github.com/Prowlarr/Prowlarr
synced 2026-01-07 16:26:04 +01:00
Fixed: Dynamic page size for Cardigann search path paging
Fixes some indexers that have arbitrary paging paths in their search-paths definitions. Set page size based on first request, break out if a request down the line returns less results.
This commit is contained in:
parent
5a1186639e
commit
bbea256c85
1 changed files with 7 additions and 3 deletions
|
|
@ -176,12 +176,16 @@ protected virtual async Task<IndexerPageableQueryResult> FetchReleases(Func<IInd
|
|||
{
|
||||
var pagedReleases = new List<ReleaseInfo>();
|
||||
|
||||
var pageSize = PageSize;
|
||||
|
||||
foreach (var request in pageableRequest)
|
||||
{
|
||||
url = request.Url.FullUri;
|
||||
|
||||
var page = await FetchPage(request, parser);
|
||||
|
||||
pageSize = pageSize == 1 ? page.Releases.Count : pageSize;
|
||||
|
||||
result.Queries.Add(page);
|
||||
|
||||
pagedReleases.AddRange(page.Releases);
|
||||
|
|
@ -213,7 +217,7 @@ protected virtual async Task<IndexerPageableQueryResult> FetchReleases(Func<IInd
|
|||
break;
|
||||
}
|
||||
|
||||
if (!IsFullPage(page.Releases))
|
||||
if (!IsFullPage(page.Releases, pageSize))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
|
@ -336,9 +340,9 @@ public override IndexerCapabilities GetCapabilities()
|
|||
return Capabilities ?? ((IndexerDefinition)Definition).Capabilities;
|
||||
}
|
||||
|
||||
protected virtual bool IsFullPage(IList<ReleaseInfo> page)
|
||||
protected virtual bool IsFullPage(IList<ReleaseInfo> page, int pageSize)
|
||||
{
|
||||
return PageSize != 0 && page.Count >= PageSize;
|
||||
return pageSize != 0 && page.Count >= pageSize;
|
||||
}
|
||||
|
||||
protected virtual async Task<IndexerQueryResult> FetchPage(IndexerRequest request, IParseIndexerResponse parser)
|
||||
|
|
|
|||
Loading…
Reference in a new issue