diff --git a/app/__init__.py b/app/__init__.py index 8ab2afd..7c76b8c 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -115,9 +115,9 @@ sp = spotipy.Spotify(auth_manager=SpotifyClientCredentials( client_secret=app.config['SPOTIFY_CLIENT_SECRET'] )) -app.logger.info(f"setting up jellyfin client") +app.logger.info(f"setting up jellyfin client, BaseUrl = {app.config['JELLYFIN_SERVER_URL']}, timeout = {app.config['JELLYFIN_REQUEST_TIMEOUT']}") -jellyfin = JellyfinClient(app.config['JELLYFIN_SERVER_URL']) +jellyfin = JellyfinClient(app.config['JELLYFIN_SERVER_URL'], app.config['JELLYFIN_REQUEST_TIMEOUT']) jellyfin_admin_token, jellyfin_admin_id, jellyfin_admin_name, jellyfin_admin_is_admin = jellyfin.login_with_password( app.config['JELLYFIN_ADMIN_USER'], app.config['JELLYFIN_ADMIN_PASSWORD'], device_id= device_id diff --git a/config.py b/config.py index bebea6a..f22fb55 100644 --- a/config.py +++ b/config.py @@ -7,6 +7,7 @@ class Config: JELLYFIN_SERVER_URL = os.getenv('JELLYFIN_SERVER_URL') JELLYFIN_ADMIN_USER = os.getenv('JELLYFIN_ADMIN_USER') JELLYFIN_ADMIN_PASSWORD = os.getenv('JELLYFIN_ADMIN_PASSWORD') + JELLYFIN_REQUEST_TIMEOUT = int(os.getenv('JELLYFIN_REQUEST_TIMEOUT','10')) SPOTIFY_CLIENT_ID = os.getenv('SPOTIFY_CLIENT_ID') SPOTIFY_CLIENT_SECRET = os.getenv('SPOTIFY_CLIENT_SECRET') JELLYPLIST_DB_HOST = os.getenv('JELLYPLIST_DB_HOST') diff --git a/jellyfin/client.py b/jellyfin/client.py index 3ff4c06..0f97c06 100644 --- a/jellyfin/client.py +++ b/jellyfin/client.py @@ -23,12 +23,13 @@ def _clean_query(query): return cleaned_query class JellyfinClient: - def __init__(self, base_url): + def __init__(self, base_url, timeout = 10): """ Initialize the Jellyfin client with the base URL of the server. :param base_url: The base URL of the Jellyfin server (e.g., 'http://localhost:8096') """ self.base_url = base_url + self.timeout = timeout def _get_headers(self, session_token: str): """ @@ -165,7 +166,7 @@ class JellyfinClient: 'Fields': 'OpenAccess' # Fields we want } - response = requests.get(playlists_url, headers=self._get_headers(session_token=session_token), params=params , timeout = 10) + response = requests.get(playlists_url, headers=self._get_headers(session_token=session_token), params=params , timeout = self.timeout) if response.status_code == 200: return response.json()['Items'] @@ -177,7 +178,7 @@ class JellyfinClient: params = { } - response = requests.get(url, headers=self._get_headers(session_token=session_token), params=params , timeout = 10) + response = requests.get(url, headers=self._get_headers(session_token=session_token), params=params , timeout = self.timeout) if response.status_code == 200: return response.json() else: @@ -194,7 +195,7 @@ class JellyfinClient: "RegenerateTrickplay": "false", "ReplaceAllMetadata": "false" } - response = requests.post(url, headers=self._get_headers(session_token=session_token), params=params , timeout = 10) + response = requests.post(url, headers=self._get_headers(session_token=session_token), params=params , timeout = self.timeout) if response.status_code == 204: return True else: @@ -374,7 +375,7 @@ class JellyfinClient: headers = self._get_headers(session_token=session_token) # Send the request to Jellyfin API - response = requests.post(url, headers=headers, json=data,timeout = 10) + response = requests.post(url, headers=headers, json=data,timeout = self.timeout) # Check for success if response.status_code == 204: @@ -388,7 +389,7 @@ class JellyfinClient: """ me_url = f'{self.base_url}/Users/Me' - response = requests.get(me_url, headers=self._get_headers(session_token=session_token), timeout = 10) + response = requests.get(me_url, headers=self._get_headers(session_token=session_token), timeout = self.timeout) if response.status_code == 200: return response.json()