mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2025-09-17 17:14:18 +02: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:
@@ -176,12 +176,16 @@ namespace NzbDrone.Core.Indexers
|
||||
{
|
||||
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 @@ namespace NzbDrone.Core.Indexers
|
||||
break;
|
||||
}
|
||||
|
||||
if (!IsFullPage(page.Releases))
|
||||
if (!IsFullPage(page.Releases, pageSize))
|
||||
{
|
||||
break;
|
||||
}
|
||||
@@ -336,9 +340,9 @@ namespace NzbDrone.Core.Indexers
|
||||
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)
|
||||
|
Reference in New Issue
Block a user