From 7ebd984e8d0ca8b0a461411dc3ecc1b729029922 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Tue, 15 Oct 2019 22:17:31 +0200 Subject: [PATCH] [imgur] print error message if no JSON data is found (#446) --- gallery_dl/extractor/imgur.py | 16 ++++++++++++---- test/test_results.py | 2 ++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/gallery_dl/extractor/imgur.py b/gallery_dl/extractor/imgur.py index dc969bac..b4f4bd04 100644 --- a/gallery_dl/extractor/imgur.py +++ b/gallery_dl/extractor/imgur.py @@ -54,9 +54,17 @@ class ImgurExtractor(Extractor): return self.session.cookies def _extract_data(self, path): - response = self.request(self.root + path, notfound=self.subcategory) - data = json.loads(text.extract( - response.text, "image : ", ",\n")[0]) + page = self.request(self.root + path, notfound=self.subcategory).text + data = text.extract(page, "image : ", ",\n")[0] + + if not data: + if ">Sign in required<" in page: + self.log.error("'Sign in required'") + else: + self.log.error("Unable to extract JSON data") + raise exception.StopExtraction() + data = json.loads(data) + try: del data["adConfig"] del data["isAd"] @@ -218,7 +226,7 @@ class ImgurAlbumExtractor(ImgurExtractor): def items(self): self.login() - album = self._extract_data("/a/" + self.key + "/all") + album = self._extract_data("/a/" + self.key) images = album["album_images"]["images"] del album["album_images"] diff --git a/test/test_results.py b/test/test_results.py index bde3af53..4ade7646 100644 --- a/test/test_results.py +++ b/test/test_results.py @@ -285,8 +285,10 @@ def setup_test_config(): config.set(("extractor", "password"), name) config.set(("extractor", "nijie" , "username"), email) config.set(("extractor", "seiga" , "username"), email) + config.set(("extractor", "danbooru" , "username"), None) config.set(("extractor", "instagram", "username"), None) + config.set(("extractor", "imgur" , "username"), None) config.set(("extractor", "twitter" , "username"), None) config.set(("extractor", "mangoxo" , "username"), "LiQiang3")