[photobucket] don't crash if JSON data is missing
This commit is contained in:
@@ -28,15 +28,22 @@ class PhotobucketAlbumExtractor(Extractor):
|
|||||||
"pattern": r"http://i\d+.photobucket.com/albums/hh280/focolandia",
|
"pattern": r"http://i\d+.photobucket.com/albums/hh280/focolandia",
|
||||||
"count": ">= 39"
|
"count": ">= 39"
|
||||||
}),
|
}),
|
||||||
|
# subalbums from main "directory"
|
||||||
("http://s271.photobucket.com/user/lakerfanryan/library/", {
|
("http://s271.photobucket.com/user/lakerfanryan/library/", {
|
||||||
"options": (("image-filter", "False"),),
|
"options": (("image-filter", "False"),),
|
||||||
"pattern": pattern[0],
|
"pattern": pattern[0],
|
||||||
"count": 1,
|
"count": 1,
|
||||||
}),
|
}),
|
||||||
|
# subalbums from subalbum without images
|
||||||
("http://s271.photobucket.com/user/lakerfanryan/library/Basketball", {
|
("http://s271.photobucket.com/user/lakerfanryan/library/Basketball", {
|
||||||
"pattern": pattern[0],
|
"pattern": pattern[0],
|
||||||
"count": ">= 9",
|
"count": ">= 9",
|
||||||
}),
|
}),
|
||||||
|
# private (missing JSON data)
|
||||||
|
("http://s1277.photobucket.com/user/sinisterkat44/library/", {
|
||||||
|
"count": 0,
|
||||||
|
}),
|
||||||
|
|
||||||
("http://s1110.photobucket.com/user/chndrmhn100/library/"
|
("http://s1110.photobucket.com/user/chndrmhn100/library/"
|
||||||
"Chandu%20is%20the%20King?sort=3&page=1", None),
|
"Chandu%20is%20the%20King?sort=3&page=1", None),
|
||||||
]
|
]
|
||||||
@@ -68,7 +75,13 @@ class PhotobucketAlbumExtractor(Extractor):
|
|||||||
|
|
||||||
while True:
|
while True:
|
||||||
page = self.request(url, params=params).text
|
page = self.request(url, params=params).text
|
||||||
data = json.loads(text.extract(page, "collectionData:", ",\n")[0])
|
json_data = text.extract(page, "collectionData:", ",\n")[0]
|
||||||
|
if not json_data:
|
||||||
|
msg = text.extract(page, 'libraryPrivacyBlock">', "</div>")[0]
|
||||||
|
msg = ' ("{}")'.format(text.remove_html(msg)) if msg else ""
|
||||||
|
self.log.error("Unable to get JSON data%s", msg)
|
||||||
|
return
|
||||||
|
data = json.loads(json_data)
|
||||||
|
|
||||||
yield from data["items"]["objects"]
|
yield from data["items"]["objects"]
|
||||||
|
|
||||||
@@ -88,7 +101,7 @@ class PhotobucketAlbumExtractor(Extractor):
|
|||||||
}
|
}
|
||||||
|
|
||||||
data = self.request(url, params=params).json()
|
data = self.request(url, params=params).json()
|
||||||
return data["body"]["subAlbums"]
|
return data["body"].get("subAlbums", ())
|
||||||
|
|
||||||
|
|
||||||
class PhotobucketImageExtractor(Extractor):
|
class PhotobucketImageExtractor(Extractor):
|
||||||
|
|||||||
Reference in New Issue
Block a user