[e621] implement manual pagination mode

pull/3413/head
ClosedPort22 2 years ago
parent 6f0735568c
commit d0ad6d0e67
No known key found for this signature in database

@ -1004,6 +1004,20 @@ Description
Note: This requires 1 additional HTTP request for each post.
extractor.danbooru.pagination
-----------------------------
Type
``string``
Default
``"length"``
Description
Controls when to stop paginating over API results.
* ``"length"``: Stop when the length of a batch of results is less than
the page limit.
* ``"manual"``: Only stop when a batch of results is empty.
extractor.danbooru.ugoira
-------------------------
Type

@ -41,6 +41,7 @@ class DanbooruExtractor(BaseExtractor):
self.ugoira = self.config("ugoira", False)
self.external = self.config("external", False)
self.extended_metadata = self.config("metadata", False)
self.strategy = self.config("pagination", "length")
username, api_key = self._get_auth_info()
if username:
@ -126,7 +127,7 @@ class DanbooruExtractor(BaseExtractor):
posts = posts["posts"]
yield from posts
if len(posts) < self.per_page:
if self.strategy == "length" and len(posts) < self.per_page:
return
if pagenum:

Loading…
Cancel
Save