extract image utils

This commit is contained in:
2025-12-10 16:20:58 +01:00
parent f8619aa66c
commit bf97cd843c
3 changed files with 20 additions and 16 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,17 +80,7 @@ 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:
"""
@@ -134,7 +125,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 +152,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 +187,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

13
jellyfin/utils/image.py Normal file
View File

@@ -0,0 +1,13 @@
from settings import settings
def get_image_url(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"