summaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/weibo.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/weibo.py')
-rw-r--r--gallery_dl/extractor/weibo.py17
1 files changed, 13 insertions, 4 deletions
diff --git a/gallery_dl/extractor/weibo.py b/gallery_dl/extractor/weibo.py
index 68871c8..bdbdc8c 100644
--- a/gallery_dl/extractor/weibo.py
+++ b/gallery_dl/extractor/weibo.py
@@ -310,7 +310,8 @@ class WeiboAlbumExtractor(WeiboExtractor):
subcategory = "album"
pattern = USER_PATTERN + r"\?tabtype=album"
test = ("https://weibo.com/1758989602?tabtype=album", {
- "pattern": r"https://wx\d+\.sinaimg\.cn/large/\w{32}\.(jpg|png|gif)",
+ "pattern": r"https://(wx\d+\.sinaimg\.cn/large/\w{32}\.(jpg|png|gif)"
+ r"|g\.us\.sinaimg\.cn/../\w+\.mp4)",
"range": "1-3",
"count": 3,
})
@@ -324,7 +325,11 @@ class WeiboAlbumExtractor(WeiboExtractor):
mid = image["mid"]
if mid not in seen:
seen.add(mid)
- yield self._status_by_id(mid)
+ status = self._status_by_id(mid)
+ if status.get("ok") != 1:
+ self.log.debug("Skipping status %s (%s)", mid, status)
+ else:
+ yield status
class WeiboStatusExtractor(WeiboExtractor):
@@ -341,7 +346,7 @@ class WeiboStatusExtractor(WeiboExtractor):
}),
# unavailable video (#427)
("https://m.weibo.cn/status/4268682979207023", {
- "exception": exception.HttpError,
+ "exception": exception.NotFoundError,
}),
# non-numeric status ID (#664)
("https://weibo.com/3314883543/Iy7fj4qVg"),
@@ -366,7 +371,11 @@ class WeiboStatusExtractor(WeiboExtractor):
)
def statuses(self):
- return (self._status_by_id(self.user),)
+ status = self._status_by_id(self.user)
+ if status.get("ok") != 1:
+ self.log.debug(status)
+ raise exception.NotFoundError("status")
+ return (status,)
@cache(maxage=356*86400)