configure client in utils method

This commit is contained in:
2025-12-10 11:50:47 +01:00
parent a5659d90e8
commit 32e4a76cd1
4 changed files with 24 additions and 7 deletions

View File

@@ -1,3 +1,4 @@
# 0.1.2
- Extracted utility functions from JellyfinApiClient to JellyfinUtils
- Keep client configuration in Settings class

View File

@@ -10,23 +10,24 @@ import time
class JellyfinApiClient:
"""
Client for interacting with the Jellyfin server API.
Attributes:
last_auth_time (Optional[float]): Timestamp of the last authentication.
logger (logging.Logger): Logger instance for logging messages.
"""
last_auth_time: Optional[float] = None
logger: logging.Logger = logging.getLogger('JellyfinApiClient')
def __init__(self):
"""
Initializes the Jellyfin API client and authenticates with the server.
"""
self.logger = logging.getLogger('JellyfinApiClient')
self.logger.info("Connecting to Jellyfin server...")
self.client = JellyfinClient()
self.client.config.app('jellydisc', '0.1.2', JellyfinUtils.get_machine_name(), JellyfinUtils.get_unique_id())
self.client.config.data['auth.ssl'] = settings.jellyfin_server_url.startswith(
'https://')
JellyfinUtils.configure_client(self.client)
self.last_auth_time = None
self.authenticate()
self.logger.info("Connected to Jellyfin server.")
def authenticate(self):

View File

@@ -1,7 +1,19 @@
from jellyfin_apiclient_python import JellyfinClient
from getmac import get_mac_address
from settings import settings
import os
class JellyfinUtils:
@staticmethod
def configure_client(client: JellyfinClient):
client.config.app(
settings.app_name,
settings.app_version,
JellyfinUtils.get_machine_name(),
JellyfinUtils.get_unique_id()
)
client.config.data['auth.ssl'] = settings.jellyfin_server_url.startswith('https://')
@staticmethod
def get_machine_name() -> str:
"""

View File

@@ -6,6 +6,9 @@ class Settings(BaseSettings):
"""
Application settings loaded from environment variables or a .env file.
"""
app_name: str = Field('jellydisc')
app_version: str = Field('0.1.2')
jellyfin_server_url: str = Field(..., env="JELLYFIN_SERVER_URL")
jellyfin_username: str = Field(..., env="JELLYFIN_USERNAME")
jellyfin_password: str = Field(..., env="JELLYFIN_PASSWORD")