extract image utils
This commit is contained in:
@@ -8,6 +8,7 @@ from jellyfin.models import (
|
|||||||
JellyfinEpisodeMediaMetadata)
|
JellyfinEpisodeMediaMetadata)
|
||||||
from jellyfin.utils.config import configure_client
|
from jellyfin.utils.config import configure_client
|
||||||
from jellyfin.utils.playback import get_current_playback
|
from jellyfin.utils.playback import get_current_playback
|
||||||
|
from jellyfin.utils.image import get_image_url
|
||||||
from typing import Optional, Tuple
|
from typing import Optional, Tuple
|
||||||
import logging
|
import logging
|
||||||
import time
|
import time
|
||||||
@@ -79,17 +80,7 @@ class JellyfinApiClient:
|
|||||||
self.logger.info("No active playback found.")
|
self.logger.info("No active playback found.")
|
||||||
return None
|
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:
|
def to_model(self, item: dict) -> JellyfinMediaItem:
|
||||||
"""
|
"""
|
||||||
@@ -134,7 +125,7 @@ class JellyfinApiClient:
|
|||||||
id=media_id,
|
id=media_id,
|
||||||
name=item.get('Name'),
|
name=item.get('Name'),
|
||||||
type=JellyfinMediaType.AUDIO,
|
type=JellyfinMediaType.AUDIO,
|
||||||
image_url=self.get_image_url(parent_id),
|
image_url=get_image_url(parent_id),
|
||||||
start=start,
|
start=start,
|
||||||
end=end,
|
end=end,
|
||||||
metadata=metadata
|
metadata=metadata
|
||||||
@@ -161,7 +152,7 @@ class JellyfinApiClient:
|
|||||||
id=media_id,
|
id=media_id,
|
||||||
name=item.get('Name'),
|
name=item.get('Name'),
|
||||||
type=JellyfinMediaType.MOVIE,
|
type=JellyfinMediaType.MOVIE,
|
||||||
image_url=self.get_image_url(media_id),
|
image_url=get_image_url(media_id),
|
||||||
start=start,
|
start=start,
|
||||||
end=end,
|
end=end,
|
||||||
metadata=metadata
|
metadata=metadata
|
||||||
@@ -196,7 +187,7 @@ class JellyfinApiClient:
|
|||||||
id=media_id,
|
id=media_id,
|
||||||
name=name,
|
name=name,
|
||||||
type=JellyfinMediaType.EPISODE,
|
type=JellyfinMediaType.EPISODE,
|
||||||
image_url=self.get_image_url(parent_id),
|
image_url=get_image_url(parent_id),
|
||||||
start=start,
|
start=start,
|
||||||
end=end,
|
end=end,
|
||||||
metadata=metadata
|
metadata=metadata
|
||||||
|
|||||||
13
jellyfin/utils/image.py
Normal file
13
jellyfin/utils/image.py
Normal 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"
|
||||||
Reference in New Issue
Block a user