From c5778941ea6c936be5aa66d3fa6cfb47e7c6f5c2 Mon Sep 17 00:00:00 2001 From: Nirvana Date: Fri, 29 May 2026 23:12:39 +0200 Subject: [PATCH] joyn auth --- lib/streaming_providers/providers/joyn/auth.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/streaming_providers/providers/joyn/auth.py b/lib/streaming_providers/providers/joyn/auth.py index 38883d5..dd07bd2 100644 --- a/lib/streaming_providers/providers/joyn/auth.py +++ b/lib/streaming_providers/providers/joyn/auth.py @@ -593,8 +593,16 @@ class JoynAuthenticator(BaseOAuth2Authenticator): def authenticate_with_fallback(self, username: str, password: str) -> Dict[str, Any]: try: return self._perform_oauth_authorization_code_flow(username, password) + except WafBlockedException as e: + logger.warning(f"{self.provider_name}: WAF block detected ({e}), trying remote login") + try: + return self._perform_remote_login_flow() + except Exception as remote_err: + logger.warning( + f"{self.provider_name}: Remote login failed ({remote_err}), falling back to client credentials") + return self._perform_oauth_client_credentials_flow() except Exception as e: - logger.warning(f"User authentication failed: {e}, falling back to client credentials") + logger.warning(f"{self.provider_name}: Login failed ({e}), falling back to client credentials") return self._perform_oauth_client_credentials_flow() def _perform_oauth_client_credentials_flow(self) -> Dict[str, Any]: