refactor: Make rate limiting configurable and move session validation to Tidal class
- Add api_rate_limit_batch_size and api_rate_limit_delay_sec to Settings (cfg.py) - Move validate_session() and is_authentication_error() to Tidal class (config.py) - Update _load_albums_with_rate_limiting() to use config values instead of hardcoded 20/3 - Update _handle_album_load_error() to use Tidal.is_authentication_error() - Remove _validate_session() from gui.py (now uses Tidal.validate_session()) - Addresses maintainer feedback: configurable tweaking variables and proper separation of concerns
This commit is contained in:
@@ -190,6 +190,26 @@ class Tidal(BaseConfig, metaclass=SingletonMeta):
|
||||
|
||||
return True
|
||||
|
||||
def validate_session(self) -> bool:
|
||||
"""Validate that the TIDAL session is still authenticated.
|
||||
|
||||
Returns:
|
||||
bool: True if session is valid, False otherwise.
|
||||
"""
|
||||
return self.session.check_login()
|
||||
|
||||
def is_authentication_error(self, error: Exception) -> bool:
|
||||
"""Check if an error is related to authentication/OAuth issues.
|
||||
|
||||
Args:
|
||||
error (Exception): The exception to check.
|
||||
|
||||
Returns:
|
||||
bool: True if the error is authentication-related, False otherwise.
|
||||
"""
|
||||
error_msg = str(error)
|
||||
return "401" in error_msg or "OAuth" in error_msg or "token" in error_msg.lower()
|
||||
|
||||
|
||||
class HandlingApp(metaclass=SingletonMeta):
|
||||
event_abort: Event = Event()
|
||||
|
||||
Reference in New Issue
Block a user