improve start/end typing
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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]
|
||||||
|
|||||||
16
main.py
16
main.py
@@ -5,28 +5,28 @@ import coloredlogs
|
|||||||
import logging
|
import logging
|
||||||
import time
|
import time
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
coloredlogs.install(
|
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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user