From aefc8b28713882c3814268098a083a2c843dc44d Mon Sep 17 00:00:00 2001 From: Nirvana Date: Wed, 7 Oct 2026 13:47:37 +0200 Subject: [PATCH] joyn prevent token upgrade --- lib/streaming_providers/providers/joyn/auth.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/streaming_providers/providers/joyn/auth.py b/lib/streaming_providers/providers/joyn/auth.py index 6a5ee7a..c6b895e 100644 --- a/lib/streaming_providers/providers/joyn/auth.py +++ b/lib/streaming_providers/providers/joyn/auth.py @@ -331,6 +331,19 @@ class JoynAuthenticator(BaseOAuth2Authenticator): return payload + def should_upgrade_token(self, token) -> bool: + # Joyn's login flow is rate-limited and locks the account on repeated + # failures. If the token hasn't been upgraded on the first attempt, + # don't keep retrying during this process lifetime. + if getattr(self, "_joyn_upgrade_attempted", False): + return False + # Only attempt upgrade if we have user credentials + from ...base.auth.credentials import UserPasswordCredentials + if not isinstance(self.credentials, UserPasswordCredentials): + return False + self._joyn_upgrade_attempted = True + return True + def _get_token_exchange_endpoint(self, **kwargs) -> str: return self.oauth_token_endpoint