improve start/end typing

This commit is contained in:
2025-12-10 04:13:01 +01:00
parent d4febbc3b2
commit 906b07e20c
3 changed files with 17 additions and 17 deletions

View File

@@ -1,4 +1,4 @@
from pydantic import BaseModel from pydantic import BaseModel, NonNegativeInt
from pypresence.types import ActivityType from pypresence.types import ActivityType
from typing import Optional from typing import Optional
@@ -9,6 +9,6 @@ class DiscordRPCUpdatePayload(BaseModel):
subtitle: str subtitle: str
image_url: str image_url: str
details: str details: str
start: Optional[int] start: Optional[NonNegativeInt]
end: Optional[int] end: Optional[NonNegativeInt]
activity_type: ActivityType activity_type: ActivityType

View File

@@ -1,4 +1,4 @@
from pydantic import BaseModel, HttpUrl from pydantic import BaseModel, HttpUrl, NonNegativeInt
from enum import StrEnum from enum import StrEnum
from typing import Optional, Union from typing import Optional, Union
from discord.models import DiscordRPCUpdatePayload from discord.models import DiscordRPCUpdatePayload
@@ -29,8 +29,8 @@ class JellyfinMediaItem(BaseModel):
name: str name: str
type: JellyfinMediaType type: JellyfinMediaType
image_url: HttpUrl image_url: HttpUrl
start: Optional[int] start: Optional[NonNegativeInt]
end: Optional[int] end: Optional[NonNegativeInt]
metadata: Union[JellyfinMusicMediaMetadata, metadata: Union[JellyfinMusicMediaMetadata,
JellyfinMovieMediaMetadata, JellyfinMovieMediaMetadata,
JellyfinEpisodeMediaMetadata] JellyfinEpisodeMediaMetadata]

18
main.py
View File

@@ -5,28 +5,28 @@ import coloredlogs
import logging import logging
import time import time
coloredlogs.install(
def main():
coloredlogs.install(
level=logging.INFO, level=logging.INFO,
fmt='%(asctime)s - %(name)s - %(levelname)s - %(message)s') fmt='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
discordRPC = DiscordRPC() discord_rpc = DiscordRPC()
jellyfinApiClient = JellyfinApiClient() jellyfin_api_client = JellyfinApiClient()
def main():
while True: while True:
try: try:
media_item = jellyfinApiClient.get_current_playback() media_item = jellyfin_api_client.get_current_playback()
if not media_item: if not media_item:
discordRPC.clear() discord_rpc.clear()
time.sleep(settings.poll_interval) time.sleep(settings.poll_interval)
continue continue
discordRPC.update(media_item.to_rpc_payload()) discord_rpc.update(media_item.to_rpc_payload())
time.sleep(settings.poll_interval) time.sleep(settings.poll_interval)
except KeyboardInterrupt: except KeyboardInterrupt:
logging.info("Shutting down...") logging.info("Shutting down...")
discordRPC.clear() discord_rpc.clear()
break break