aboutsummaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/issuu.py
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2025-01-28 19:12:09 -0500
committerLibravatarUnit 193 <unit193@unit193.net>2025-01-28 19:12:09 -0500
commita26df18796ff4e506b16bf32fcec9336233b9e2e (patch)
tree876512f59831cd670a90a0bc92bc85def6ea3d82 /gallery_dl/extractor/issuu.py
parent0532a387ef5b7fcb4507a9b094dca37a5f635fe1 (diff)
New upstream version 1.28.5.upstream/1.28.5
Diffstat (limited to 'gallery_dl/extractor/issuu.py')
-rw-r--r--gallery_dl/extractor/issuu.py32
1 files changed, 18 insertions, 14 deletions
diff --git a/gallery_dl/extractor/issuu.py b/gallery_dl/extractor/issuu.py
index 54c6539..b900113 100644
--- a/gallery_dl/extractor/issuu.py
+++ b/gallery_dl/extractor/issuu.py
@@ -54,26 +54,30 @@ class IssuuPublicationExtractor(IssuuBase, GalleryExtractor):
class IssuuUserExtractor(IssuuBase, Extractor):
"""Extractor for all publications of a user/publisher"""
subcategory = "user"
- pattern = r"(?:https?://)?issuu\.com/([^/?#]+)/?$"
+ pattern = r"(?:https?://)?issuu\.com/([^/?#]+)(?:/(\d*))?$"
example = "https://issuu.com/USER"
- def __init__(self, match):
- Extractor.__init__(self, match)
- self.user = match.group(1)
-
def items(self):
- url = "{}/call/profile/v1/documents/{}".format(self.root, self.user)
- params = {"offset": 0, "limit": "25"}
+ user, pnum = self.groups
+ base = self.root + "/" + user
+ pnum = text.parse_int(pnum, 1)
while True:
- data = self.request(url, params=params).json()
+ url = base + "/" + str(pnum) if pnum > 1 else base
+ try:
+ html = self.request(url).text
+ data = util.json_loads(text.unescape(text.extr(
+ html, '</main></div><script data-json="', '" id="')))
+ docs = data["docs"]
+ except Exception as exc:
+ self.log.debug("", exc_info=exc)
+ return
- for publication in data["items"]:
- publication["url"] = "{}/{}/docs/{}".format(
- self.root, self.user, publication["uri"])
+ for publication in docs:
+ url = self.root + "/" + publication["uri"]
publication["_extractor"] = IssuuPublicationExtractor
- yield Message.Queue, publication["url"], publication
+ yield Message.Queue, url, publication
- if not data["hasMore"]:
+ if len(docs) < 48:
return
- params["offset"] += data["limit"]
+ pnum += 1