Files
jellydisc/jellyfin/utils/models/movie.py
T
2026-04-10 12:21:15 +02:00

68 lines
1.5 KiB
Python

from jellyfin.models import (
JellyfinMediaItem,
JellyfinMediaType,
JellyfinMovieMediaMetadata
)
from jellyfin.utils.playback import get_current_playback
from jellyfin.utils.image import get_image_url
from datetime import datetime
def get_name(
item: dict
) -> str:
"""
Retrieves the name of a Jellyfin movie media item.
Args:
item (dict): The Jellyfin movie media item dictionary.
Returns:
str: The name of the movie.
"""
original_title = item.get('OriginalTitle')
title = item.get('Name')
if not original_title
return title
if not title
return original_title
return f"{original_title} ({title})"
def to_media_item(
item: dict
) -> JellyfinMediaItem:
"""
Converts a Jellyfin movie media item dictionary to a JellyfinMediaItem.
Args:
item (dict): The Jellyfin movie media item dictionary.
Returns:
JellyfinMediaItem: The converted JellyfinMediaItem model.
"""
item_id = item.get('Id')
# Get name
name = get_name(item)
# Construct metadata
premiere_date = item.get('PremiereDate')
premiere_year = datetime.fromisoformat(premiere_date).year
metadata = JellyfinMovieMediaMetadata(
year=premiere_year
)
# Get playback positions
(start, end) = get_current_playback(item)
return JellyfinMediaItem(
id=item_id,
name=name,
type=JellyfinMediaType.MOVIE,
image_url=get_image_url(item_id),
start=start,
end=end,
metadata=metadata
)