35 lines
731 B
Python
35 lines
731 B
Python
from pydantic import BaseModel
|
|
from enum import Enum
|
|
from typing import Optional, Union
|
|
|
|
|
|
class JellyfinMediaType(str, Enum):
|
|
AUDIO = 'Audio'
|
|
MOVIE = 'Movie'
|
|
EPISODE = 'Episode'
|
|
|
|
|
|
class JellyfinMusicMediaMetadata(BaseModel):
|
|
artist: Optional[str]
|
|
album: Optional[str]
|
|
|
|
|
|
class JellyfinMovieMediaMetadata(BaseModel):
|
|
date: Optional[str]
|
|
|
|
|
|
class JellyfinEpisodeMediaMetadata(BaseModel):
|
|
subtitle: str
|
|
|
|
|
|
class JellyfinMediaItem(BaseModel):
|
|
id: str
|
|
name: str
|
|
type: JellyfinMediaType
|
|
image_url: str
|
|
start: Optional[int]
|
|
end: Optional[int]
|
|
metadata: Union[JellyfinMusicMediaMetadata,
|
|
JellyfinMovieMediaMetadata,
|
|
JellyfinEpisodeMediaMetadata]
|