[fanbox] fix pagination (#5949, #5951, #5956)

This commit is contained in:
Mike Fährmann
2024-08-07 09:58:29 +02:00
parent 605f6fba2c
commit b4733b7ea8
2 changed files with 17 additions and 5 deletions

View File

@@ -309,8 +309,20 @@ class FanboxCreatorExtractor(FanboxExtractor):
self.creator_id = match.group(1) or match.group(2)
def posts(self):
url = "https://api.fanbox.cc/post.listCreator?creatorId={}&limit=10"
return self._pagination(url.format(self.creator_id))
url = "https://api.fanbox.cc/post.paginateCreator?creatorId="
return self._pagination_creator(url + self.creator_id)
def _pagination_creator(self, url):
urls = self.request(url, headers=self.headers).json()["body"]
for url in urls:
url = text.ensure_http_scheme(url)
body = self.request(url, headers=self.headers).json()["body"]
for item in body:
try:
yield self._get_post_data(item["id"])
except Exception as exc:
self.log.warning("Skipping post %s (%s: %s)",
item["id"], exc.__class__.__name__, exc)
class FanboxPostExtractor(FanboxExtractor):