From 922b8a95957c600acd35ced06f5c7c7a11d2c76b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Sat, 14 Dec 2019 22:10:02 +0100 Subject: [PATCH] [weibo] raise NotFoundError for unavailable/deleted statuses --- gallery_dl/extractor/weibo.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/gallery_dl/extractor/weibo.py b/gallery_dl/extractor/weibo.py index 0f4ebd21..49fa082c 100644 --- a/gallery_dl/extractor/weibo.py +++ b/gallery_dl/extractor/weibo.py @@ -9,7 +9,7 @@ """Extractors for https://www.weibo.com/""" from .common import Extractor, Message -from .. import text +from .. import text, exception import json @@ -124,7 +124,7 @@ class WeiboStatusExtractor(WeiboExtractor): }), # unavailable video (#427) ("https://m.weibo.cn/status/4268682979207023", { - "count": 0, + "exception": exception.NotFoundError, }), ("https://m.weibo.cn/status/4339748116375525"), ("https://m.weibo.cn/5746766133/4339748116375525"), @@ -136,7 +136,8 @@ class WeiboStatusExtractor(WeiboExtractor): def statuses(self): url = "{}/detail/{}".format(self.root, self.status_id) - page = self.request(url).text - data = json.loads(text.extract( - page, " var $render_data = [", "][0] || {};")[0]) - return (data["status"],) + page = self.request(url, notfound="status").text + data = text.extract(page, "var $render_data = [", "][0] || {};")[0] + if not data: + raise exception.NotFoundError("status") + return (json.loads(data)["status"],)