replace jellyfin utils with class method
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
from pydantic import BaseModel
|
||||
from enum import Enum
|
||||
from typing import Optional, Union
|
||||
from discord.models import DiscordRPCUpdatePayload
|
||||
from pypresence.types import ActivityType
|
||||
|
||||
|
||||
class JellyfinMediaType(str, Enum):
|
||||
@@ -32,3 +34,45 @@ class JellyfinMediaItem(BaseModel):
|
||||
metadata: Union[JellyfinMusicMediaMetadata,
|
||||
JellyfinMovieMediaMetadata,
|
||||
JellyfinEpisodeMediaMetadata]
|
||||
|
||||
def to_rpc_payload(self) -> DiscordRPCUpdatePayload:
|
||||
"""
|
||||
Converts a JellyfinMediaItem to a DiscordRPCUpdatePayload.
|
||||
|
||||
Returns:
|
||||
DiscordRPCUpdatePayload: The converted Discord RPC update payload.
|
||||
"""
|
||||
if self.type == JellyfinMediaType.AUDIO:
|
||||
return DiscordRPCUpdatePayload(
|
||||
id=self.id,
|
||||
title=f"Listening to {
|
||||
self.name}",
|
||||
subtitle=f"by {
|
||||
self.metadata.artist}",
|
||||
image_url=self.image_url,
|
||||
details=self.metadata.album,
|
||||
activity_type=ActivityType.LISTENING,
|
||||
start=self.start,
|
||||
end=self.end)
|
||||
elif self.type == JellyfinMediaType.MOVIE:
|
||||
return DiscordRPCUpdatePayload(
|
||||
id=self.id,
|
||||
title=f"Watching {self.name}",
|
||||
subtitle=self.metadata.date,
|
||||
image_url=self.image_url,
|
||||
details=self.name,
|
||||
activity_type=ActivityType.WATCHING,
|
||||
start=self.start,
|
||||
end=self.end
|
||||
)
|
||||
elif self.type == JellyfinMediaType.EPISODE:
|
||||
return DiscordRPCUpdatePayload(
|
||||
id=self.id,
|
||||
title=f"Watching {self.name}",
|
||||
subtitle=self.metadata.subtitle,
|
||||
image_url=self.image_url,
|
||||
details=self.name,
|
||||
activity_type=ActivityType.WATCHING,
|
||||
start=self.start,
|
||||
end=self.end
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user