[twitter] retry API requests only for Timeout errors (#4811)
This commit is contained in:
@@ -1277,13 +1277,16 @@ class TwitterAPI():
|
|||||||
|
|
||||||
if response.status_code < 400:
|
if response.status_code < 400:
|
||||||
data = response.json()
|
data = response.json()
|
||||||
if not data.get("errors"):
|
if not data.get("errors") or not any(
|
||||||
return data # success
|
(e.get("message") or "").lower().startswith("timeout")
|
||||||
|
for e in data["errors"]):
|
||||||
|
return data # success or non-timeout errors
|
||||||
|
|
||||||
msg = data["errors"][0].get("message") or "Unspecified"
|
msg = data["errors"][0].get("message") or "Unspecified"
|
||||||
self.extractor.log.debug("internal error: '%s'", msg)
|
self.extractor.log.debug("Internal Twitter error: '%s'", msg)
|
||||||
|
|
||||||
if self.headers["x-twitter-auth-type"]:
|
if self.headers["x-twitter-auth-type"]:
|
||||||
|
self.extractor.log.debug("Retrying API request")
|
||||||
continue # retry
|
continue # retry
|
||||||
|
|
||||||
# fall through to "Login Required"
|
# fall through to "Login Required"
|
||||||
|
|||||||
Reference in New Issue
Block a user