diff --git a/twscrape/queue_client.py b/twscrape/queue_client.py index e40356e..535fd3a 100644 --- a/twscrape/queue_client.py +++ b/twscrape/queue_client.py @@ -38,11 +38,14 @@ class RateLimitError(Exception): class BannedError(Exception): pass - class DependencyError(Exception): pass +class UnknownAuthorizationError(Exception): + pass + + def req_id(rep: httpx.Response): lr = str(rep.headers.get("x-rate-limit-remaining", -1)) ll = str(rep.headers.get("x-rate-limit-limit", -1)) @@ -170,10 +173,16 @@ async def _check_rep(self, rep: httpx.Response): if rep.status_code == 200 and "_Missing: No status found with that ID." in msg: return # ignore this error + if rep.status_code == 200 and "Authorization" in msg: + return # ignore this error + raise UnknownAuthorizationError(msg) + # todo: (32) Could not authenticate you if msg != "OK": - raise ApiError(rep, res) + logger.error(f"Unknown error: {msg}") + return # ignore this error + #raise ApiError(rep, res) rep.raise_for_status() @@ -197,7 +206,10 @@ async def req(self, method: str, url: str, params: ReqParams = None): # already handled continue except DependencyError: - logger.error(f"Dependency error, returnning: {url}") + logger.error(f"Dependency error, returning: {url}") + return + except UnknownAuthorizationError: + logger.error(f"Unknown authorization error, returning: {url}") return except (httpx.ReadTimeout, httpx.ProxyError): # http transport failed, just retry