diff options
| author | 2019-12-25 19:40:28 -0500 | |
|---|---|---|
| committer | 2019-12-25 19:40:28 -0500 | |
| commit | f9a1a9dcb7df977eeac9544786df9c0b93795815 (patch) | |
| tree | 8cb69cf7685da8d7e4deb7dc1d6b209098e1ddfb /gallery_dl/extractor/imgbb.py | |
| parent | 0c73e982fa596da07f23b377621ab894a9e64884 (diff) | |
New upstream version 1.12.1upstream/1.12.1
Diffstat (limited to 'gallery_dl/extractor/imgbb.py')
| -rw-r--r-- | gallery_dl/extractor/imgbb.py | 38 |
1 files changed, 18 insertions, 20 deletions
diff --git a/gallery_dl/extractor/imgbb.py b/gallery_dl/extractor/imgbb.py index fb321d0..15152b7 100644 --- a/gallery_dl/extractor/imgbb.py +++ b/gallery_dl/extractor/imgbb.py @@ -39,7 +39,7 @@ class ImgbbExtractor(Extractor): for img in self.images(page): image = { "id" : img["url_viewer"].rpartition("/")[2], - "user" : img["user"]["username"], + "user" : img["user"]["username"] if "user" in img else "", "title" : text.unescape(img["title"]), "url" : img["image"]["url"], "extension": img["image"]["extension"], @@ -79,8 +79,15 @@ class ImgbbExtractor(Extractor): return self.session.cookies def _pagination(self, page, endpoint, params): - params["page"] = 2 data = None + seek, pos = text.extract(page, 'data-seek="', '"') + tokn, pos = text.extract(page, 'PF.obj.config.auth_token="', '"', pos) + params["action"] = "list" + params["list"] = "images" + params["sort"] = self.sort + params["seek"] = seek + params["page"] = 2 + params["auth_token"] = tokn while True: for img in text.extract_iter(page, "data-object='", "'"): @@ -90,6 +97,8 @@ class ImgbbExtractor(Extractor): return params["seek"] = data["seekEnd"] params["page"] += 1 + elif not seek or 'class="pagination-next"' not in page: + return data = self.request(endpoint, method="POST", data=params).json() page = data["html"] @@ -110,6 +119,11 @@ class ImgbbAlbumExtractor(ImgbbExtractor): "url": "e2e387b8fdb3690bd75d804d0af2833112e385cd", "keyword": "a307fc9d2085bdc0eb7c538c8d866c59198d460c", }), + # no user data (#471) + ("https://ibb.co/album/kYKpwF", { + "url": "ac0abcfcb89f4df6adc2f7e4ff872f3b03ef1bc7", + "keyword": {"user": ""}, + }), # deleted ("https://ibb.co/album/fDArrF", { "exception": exception.NotFoundError, @@ -133,21 +147,13 @@ class ImgbbAlbumExtractor(ImgbbExtractor): return { "album_id" : self.album_id, "album_name": text.unescape(album), - "user" : user.lower(), + "user" : user.lower() if user else "", } def images(self, page): - seek, pos = text.extract(page, 'data-seek="', '"') - tokn, pos = text.extract(page, 'PF.obj.config.auth_token="', '"', pos) - return self._pagination(page, "https://ibb.co/json", { - "action" : "list", - "list" : "images", "from" : "album", - "sort" : self.sort, "albumid" : self.album_id, - "seek" : seek, - "auth_token": tokn, "params_hidden[list]" : "images", "params_hidden[from]" : "album", "params_hidden[albumid]": self.album_id, @@ -173,18 +179,10 @@ class ImgbbUserExtractor(ImgbbExtractor): return {"user": self.user} def images(self, page): - seek, pos = text.extract(page, 'data-seek="', '"') - tokn, pos = text.extract(page, 'PF.obj.config.auth_token="', '"', pos) - user, pos = text.extract(page, '.obj.resource={"id":"', '"', pos) - + user = text.extract(page, '.obj.resource={"id":"', '"')[0] return self._pagination(page, self.page_url + "json", { - "action" : "list", - "list" : "images", "from" : "user", - "sort" : self.sort, - "seek" : seek, "userid" : user, - "auth_token": tokn, "params_hidden[userid]": user, "params_hidden[from]" : "user", }) |
