From 260e3ffc87b2738eebf50128dbce6fef65d118e6 Mon Sep 17 00:00:00 2001 From: Zvonimir Rudinski Date: Wed, 10 Dec 2025 01:45:37 +0100 Subject: [PATCH] re-auth every 10min --- jellyfin/api_client.py | 8 ++++++++ main.py | 4 ---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/jellyfin/api_client.py b/jellyfin/api_client.py index db2cd91..b5d2d3b 100644 --- a/jellyfin/api_client.py +++ b/jellyfin/api_client.py @@ -4,8 +4,11 @@ from getmac import get_mac_address from jellyfin.models import JellyfinMediaItem, JellyfinMediaType from datetime import datetime import logging +import time import os +AUTH_TIMEOUT = 10 * 60 # 10 minutes + class JellyfinApiClient: def __init__(self): machine_name = os.uname().nodename @@ -18,6 +21,7 @@ class JellyfinApiClient: self.client.config.app('jellydisc', '0.0.1', machine_name, unique_id) self.client.config.data['auth.ssl'] = True + self.last_auth_time = None self.authenticate() self.logger.info("Connected to Jellyfin server.") @@ -30,9 +34,13 @@ class JellyfinApiClient: settings.jellyfin_username, settings.jellyfin_password ) + self.last_auth_time = time.now() self.logger.info("Authenticated with Jellyfin server.") def get_current_playback(self) -> JellyfinMediaItem | None: + if time.now() - self.last_auth_time > AUTH_TIMEOUT: + self.authenticate() + self.logger.info("Fetching current playback information...") sessions = self.client.jellyfin.get_sessions() diff --git a/main.py b/main.py index 2f5b21e..77af552 100644 --- a/main.py +++ b/main.py @@ -26,10 +26,6 @@ def main(): logging.info("Shutting down...") discordRPC.clear() break - except: - logging.exception("An error occurred in the main loop.") - jellyfinApiClient.authenticate() - time.sleep(15) if __name__ == "__main__": main()