From ec4a8c1e3e4b89790015502a2824d34cd97f73d8 Mon Sep 17 00:00:00 2001 From: dumbmoron Date: Fri, 3 May 2024 09:34:37 +0000 Subject: [PATCH] twitter: retry if possibly missing csrf token --- src/modules/processing/services/twitter.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/modules/processing/services/twitter.js b/src/modules/processing/services/twitter.js index 645fb39d..e96b6dbc 100644 --- a/src/modules/processing/services/twitter.js +++ b/src/modules/processing/services/twitter.js @@ -83,6 +83,16 @@ const requestTweet = async(tweetId, token, cookie) => { let result = await fetch(graphqlTweetURL, { headers }); updateCookie(cookie, result.headers); + // we might have been missing the `ct0` cookie, retry + if (result.status === 403 && result.headers.get('set-cookie')) { + result = await fetch(graphqlTweetURL, { + headers: { + ...headers, + 'x-csrf-token': cookie.values().ct0 + } + }); + } + return result }