From 2e13d7b57c4506b8545845f3d3ec847a8c6ca82b Mon Sep 17 00:00:00 2001 From: Zed Date: Wed, 5 Feb 2025 00:35:39 +0100 Subject: [PATCH] Capture "account locked" API error --- src/apiutils.nim | 9 +++++---- src/types.nim | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/apiutils.nim b/src/apiutils.nim index 75e0e4c..03de5f1 100644 --- a/src/apiutils.nim +++ b/src/apiutils.nim @@ -76,8 +76,8 @@ template fetchImpl(result, fetchBody) {.dirty.} = if result.startsWith("{\"errors"): let errors = result.fromJson(Errors) - if errors in {expiredToken, badToken}: - echo "fetch error: ", errors + echo "Fetch error, API: ", api, ", errors: ", errors + if errors in {expiredToken, badToken, locked}: invalidate(account) raise rateLimitError() elif errors in {rateLimited}: @@ -93,6 +93,7 @@ template fetchImpl(result, fetchBody) {.dirty.} = fetchBody if resp.status == $Http400: + echo "ERROR 400, ", api, ": ", result raise newException(InternalError, $url) except InternalError as e: raise e @@ -125,8 +126,8 @@ proc fetch*(url: Uri; api: Api): Future[JsonNode] {.async.} = result = newJNull() let error = result.getError - if error in {expiredToken, badToken}: - echo "fetchBody error: ", error + echo "Fetch error, API: ", api, ", error: ", error + if error in {expiredToken, badToken, locked}: invalidate(account) raise rateLimitError() diff --git a/src/types.nim b/src/types.nim index f8cdda7..685fbad 100644 --- a/src/types.nim +++ b/src/types.nim @@ -57,6 +57,7 @@ type tweetNotAuthorized = 179 forbidden = 200 badToken = 239 + locked = 326 noCsrf = 353 tweetUnavailable = 421 tweetCensored = 422