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 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 = item.get('OriginalTitle') if not name: name = item.get('Name') # 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 )