[gelbooru] fix and improve --range for pools

pull/3849/head
Mike Fährmann 2 years ago
parent 197882cf12
commit 1f82b00b8f
No known key found for this signature in database
GPG Key ID: 5680CA389D365A88

@ -21,6 +21,7 @@ class GelbooruBase():
category = "gelbooru" category = "gelbooru"
basecategory = "booru" basecategory = "booru"
root = "https://gelbooru.com" root = "https://gelbooru.com"
offset = 0
def _api_request(self, params, key="post"): def _api_request(self, params, key="post"):
if "s" not in params: if "s" not in params:
@ -59,7 +60,7 @@ class GelbooruBase():
def _pagination_html(self, params): def _pagination_html(self, params):
url = self.root + "/index.php" url = self.root + "/index.php"
params["pid"] = self.page_start * self.per_page params["pid"] = self.offset
data = {} data = {}
while True: while True:
@ -105,6 +106,10 @@ class GelbooruBase():
"body" : extr(note, 'data-body="', '"')[0], "body" : extr(note, 'data-body="', '"')[0],
}) })
def _skip_offset(self, num):
self.offset += num
return num
class GelbooruTagExtractor(GelbooruBase, class GelbooruTagExtractor(GelbooruBase,
gelbooru_v02.GelbooruV02TagExtractor): gelbooru_v02.GelbooruV02TagExtractor):
@ -135,13 +140,14 @@ class GelbooruPoolExtractor(GelbooruBase,
}), }),
) )
skip = GelbooruBase._skip_offset
def metadata(self): def metadata(self):
url = self.root + "/index.php" url = self.root + "/index.php"
self._params = { self._params = {
"page": "pool", "page": "pool",
"s" : "show", "s" : "show",
"id" : self.pool_id, "id" : self.pool_id,
"pid" : self.page_start,
} }
page = self.request(url, params=self._params).text page = self.request(url, params=self._params).text

Loading…
Cancel
Save