[weibo:album] fix "KeyError - 'pid'" (#8792)
add workaround for (sub)album items without 'pid' field
This commit is contained in:
@@ -417,9 +417,19 @@ class WeiboAlbumExtractor(WeiboExtractor):
|
|||||||
self.kwdict["subalbum"] = data
|
self.kwdict["subalbum"] = data
|
||||||
yield Message.Directory, "", {}
|
yield Message.Directory, "", {}
|
||||||
for file in files:
|
for file in files:
|
||||||
file["filename"] = file["pid"]
|
if "pid" in file:
|
||||||
file["extension"] = "jpg"
|
file["filename"] = file["pid"]
|
||||||
yield Message.Url, base + file["pid"], file
|
file["extension"] = "jpg"
|
||||||
|
yield Message.Url, base + file["pid"], file
|
||||||
|
elif "mid" in file:
|
||||||
|
mid = file["mid"]
|
||||||
|
status = self._status_by_id(mid)
|
||||||
|
if status.get("ok") != 1:
|
||||||
|
self.log.debug("Skipping status %s (%s)", mid, status)
|
||||||
|
else:
|
||||||
|
self.statuses = lambda: (status,)
|
||||||
|
yield from WeiboExtractor.items(self)
|
||||||
|
yield Message.Directory, "", {}
|
||||||
|
|
||||||
def statuses(self):
|
def statuses(self):
|
||||||
endpoint = "/profile/getImageWall"
|
endpoint = "/profile/getImageWall"
|
||||||
|
|||||||
Reference in New Issue
Block a user