re-auth every 10min
This commit is contained in:
@@ -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()
|
||||||
|
|
||||||
|
|||||||
4
main.py
4
main.py
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user