summaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/imgbb.py
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2019-12-25 19:40:28 -0500
committerLibravatarUnit 193 <unit193@ubuntu.com>2019-12-25 19:40:28 -0500
commitf9a1a9dcb7df977eeac9544786df9c0b93795815 (patch)
tree8cb69cf7685da8d7e4deb7dc1d6b209098e1ddfb /gallery_dl/extractor/imgbb.py
parent0c73e982fa596da07f23b377621ab894a9e64884 (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.py38
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",
})