From 12ff697ab0c3c02b2ecd7e42ef9a534f9f0c2e10 Mon Sep 17 00:00:00 2001 From: arnd-s <34441397+arnd-s@users.noreply.github.com> Date: Thu, 6 Jan 2022 06:59:37 +0100 Subject: [PATCH] [TwitterBridge] Continue using existing guesttoken from cache, when requesting a new one failed (#2396) --- bridges/TwitterBridge.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/bridges/TwitterBridge.php b/bridges/TwitterBridge.php index e54a5d02..a14e5062 100644 --- a/bridges/TwitterBridge.php +++ b/bridges/TwitterBridge.php @@ -546,8 +546,16 @@ EOD; if($guestTokenUses === null || !is_array($guestTokenUses) || count($guestTokenUses) != 2 || $guestTokenUses[0] <= 0 || (time() - $refresh) > self::GUEST_TOKEN_EXPIRY) { $guestToken = $this->getGuestToken(); - $gt_cache->saveData(array(self::GUEST_TOKEN_USES, $guestToken)); - $r_cache->saveData(time()); + if ($guestToken === null) { + if($guestTokenUses === null) { + returnServerError('Could not parse guest token'); + } else { + $guestToken = $guestTokenUses[1]; + } + } else { + $gt_cache->saveData(array(self::GUEST_TOKEN_USES, $guestToken)); + $r_cache->saveData(time()); + } } else { $guestTokenUses[0] -= 1; $gt_cache->saveData($guestTokenUses); @@ -567,7 +575,7 @@ EOD; preg_match_all($guestTokenRegex, $pageContent['header'], $guestTokenMatches, PREG_SET_ORDER, 0); if (!$guestTokenMatches) preg_match_all($guestTokenRegex, $pageContent['content'], $guestTokenMatches, PREG_SET_ORDER, 0); - if (!$guestTokenMatches) returnServerError('Could not parse guest token'); + if (!$guestTokenMatches) return null; $guestToken = $guestTokenMatches[0][1]; return $guestToken; }