extract image utils

This commit is contained in:
2025-12-10 16:20:58 +01:00
parent f8619aa66c
commit 89209fa675
4 changed files with 22 additions and 18 deletions

View File

@@ -8,6 +8,7 @@ from jellyfin.models import (
JellyfinEpisodeMediaMetadata)
from jellyfin.utils.config import configure_client
from jellyfin.utils.playback import get_current_playback
from jellyfin.utils.image import get_image_url
from typing import Optional, Tuple
import logging
import time
@@ -50,9 +51,9 @@ class JellyfinApiClient:
self.last_auth_time = time.time()
self.logger.info("Authenticated with Jellyfin server.")
def get_current_playback(self) -> Optional[JellyfinMediaItem]:
def get_current_media(self) -> Optional[JellyfinMediaItem]:
"""
Fetches the current playback information from the Jellyfin server.
Fetches the current media information from the Jellyfin server.
Returns:
Optional[JellyfinMediaItem]: The current playback media item or None if no active playback is found.
@@ -79,18 +80,6 @@ class JellyfinApiClient:
self.logger.info("No active playback found.")
return None
def get_image_url(self, media_id: str) -> str:
"""
Constructs the image URL for a given media item.
Args:
media_id (str): The ID of the media item.
Returns:
str: The constructed image URL.
"""
server_address = settings.jellyfin_server_url.rstrip('/')
return f"{server_address}/Items/{media_id}/Images/Primary?maxWidth=300&maxHeight=300"
def to_model(self, item: dict) -> JellyfinMediaItem:
"""
Converts a Jellyfin media item dictionary to a JellyfinMediaItem model.
@@ -134,7 +123,7 @@ class JellyfinApiClient:
id=media_id,
name=item.get('Name'),
type=JellyfinMediaType.AUDIO,
image_url=self.get_image_url(parent_id),
image_url=get_image_url(parent_id),
start=start,
end=end,
metadata=metadata
@@ -161,7 +150,7 @@ class JellyfinApiClient:
id=media_id,
name=item.get('Name'),
type=JellyfinMediaType.MOVIE,
image_url=self.get_image_url(media_id),
image_url=get_image_url(media_id),
start=start,
end=end,
metadata=metadata
@@ -196,7 +185,7 @@ class JellyfinApiClient:
id=media_id,
name=name,
type=JellyfinMediaType.EPISODE,
image_url=self.get_image_url(parent_id),
image_url=get_image_url(parent_id),
start=start,
end=end,
metadata=metadata