From 229498b8aa659a9c2bceafe49122dee8199fec7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Mon, 9 Aug 2021 01:53:41 +0200 Subject: [PATCH] [twitter] warn about suspended accounts etc (closes #1759) --- gallery_dl/extractor/twitter.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/gallery_dl/extractor/twitter.py b/gallery_dl/extractor/twitter.py index fd0140dc..af795252 100644 --- a/gallery_dl/extractor/twitter.py +++ b/gallery_dl/extractor/twitter.py @@ -726,21 +726,25 @@ class TwitterAPI(): if csrf_token: self.headers["x-csrf-token"] = csrf_token + data = response.json() + if "errors" in data: + try: + msg = ", ".join( + '"' + error["message"] + '"' + for error in data["errors"] + ) + except Exception: + msg = data["errors"] + if response.status_code < 400: + self.extractor.log.warning(msg) + if response.status_code < 400: - return response.json() + return data if response.status_code == 429: until = response.headers.get("x-rate-limit-reset") seconds = None if until else 60 self.extractor.wait(until=until, seconds=seconds) continue - - try: - msg = ", ".join( - '"' + error["message"] + '"' - for error in response.json()["errors"] - ) - except Exception: - msg = response.text raise exception.StopExtraction( "%s %s (%s)", response.status_code, response.reason, msg)