Files
jellydisc/jellyfin/utils.py

39 lines
1.6 KiB
Python

from discord.models import DiscordRPCUpdatePayload
from jellyfin.models import JellyfinMediaItem, JellyfinMediaType
from pypresence.types import ActivityType
def to_rpc_payload(media_item: JellyfinMediaItem) -> DiscordRPCUpdatePayload:
if media_item.type == JellyfinMediaType.AUDIO:
return DiscordRPCUpdatePayload(
id=media_item.id,
title=f"Listening to {media_item.name}",
subtitle=f"by {media_item.metadata.get('artist', 'Unknown Artist')}",
image_url=media_item.image_url,
details=media_item.name,
activity_type=ActivityType.LISTENING
)
elif media_item.type == JellyfinMediaType.MOVIE:
return DiscordRPCUpdatePayload(
id=media_item.id,
title=f"Watching {media_item.name}",
subtitle=media_item.metadata.get('date'),
image_url=media_item.image_url,
details=media_item.name,
activity_type=ActivityType.WATCHING
)
elif media_item.type == JellyfinMediaType.EPISODE:
series_name = media_item.metadata.get('series', 'Unknown Series')
season = media_item.metadata.get('season', '?')
episode = media_item.metadata.get('episode', '?')
subtitle = f"S{season:02}E{episode:02} of {series_name}"
return DiscordRPCUpdatePayload(
id=media_item.id,
title=f"Watching {media_item.name}",
subtitle=subtitle,
image_url=media_item.image_url,
details=media_item.name,
activity_type=ActivityType.WATCHING
)