From 2aaeed3708d2f93e200415b82fb1440ba60c65e8 Mon Sep 17 00:00:00 2001 From: Zvonimir Rudinski Date: Wed, 10 Dec 2025 16:20:58 +0100 Subject: [PATCH] extract image utils --- jellyfin/api_client.py | 17 ++++------------- jellyfin/utils/image.py | 13 +++++++++++++ 2 files changed, 17 insertions(+), 13 deletions(-) create mode 100644 jellyfin/utils/image.py diff --git a/jellyfin/api_client.py b/jellyfin/api_client.py index 3cafbd4..580d10c 100644 --- a/jellyfin/api_client.py +++ b/jellyfin/api_client.py @@ -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 @@ -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 diff --git a/jellyfin/utils/image.py b/jellyfin/utils/image.py new file mode 100644 index 0000000..ea71b1f --- /dev/null +++ b/jellyfin/utils/image.py @@ -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"