re-auth every 10min

This commit is contained in:
2025-12-10 01:45:37 +01:00
parent 7a3a20cb32
commit ef4e4c43ae
2 changed files with 8 additions and 4 deletions

View File

@@ -4,8 +4,11 @@ from getmac import get_mac_address
from jellyfin.models import JellyfinMediaItem, JellyfinMediaType from jellyfin.models import JellyfinMediaItem, JellyfinMediaType
from datetime import datetime from datetime import datetime
import logging import logging
import time
import os import os
AUTH_TIMEOUT = 10 * 60 # 10 minutes
class JellyfinApiClient: class JellyfinApiClient:
def __init__(self): def __init__(self):
machine_name = os.uname().nodename 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.app('jellydisc', '0.0.1', machine_name, unique_id)
self.client.config.data['auth.ssl'] = True self.client.config.data['auth.ssl'] = True
self.last_auth_time = None
self.authenticate() self.authenticate()
self.logger.info("Connected to Jellyfin server.") self.logger.info("Connected to Jellyfin server.")
@@ -30,9 +34,13 @@ class JellyfinApiClient:
settings.jellyfin_username, settings.jellyfin_username,
settings.jellyfin_password settings.jellyfin_password
) )
self.last_auth_time = time.time()
self.logger.info("Authenticated with Jellyfin server.") self.logger.info("Authenticated with Jellyfin server.")
def get_current_playback(self) -> JellyfinMediaItem | None: def get_current_playback(self) -> JellyfinMediaItem | None:
if time.time() - self.last_auth_time > AUTH_TIMEOUT:
self.authenticate()
self.logger.info("Fetching current playback information...") self.logger.info("Fetching current playback information...")
sessions = self.client.jellyfin.get_sessions() sessions = self.client.jellyfin.get_sessions()

View File

@@ -26,10 +26,6 @@ def main():
logging.info("Shutting down...") logging.info("Shutting down...")
discordRPC.clear() discordRPC.clear()
break break
except:
logging.exception("An error occurred in the main loop.")
jellyfinApiClient.authenticate()
time.sleep(15)
if __name__ == "__main__": if __name__ == "__main__":
main() main()