33 lines
887 B
Python
33 lines
887 B
Python
from discord.rpc import DiscordRPC
|
|
from jellyfin.api_client import JellyfinApiClient
|
|
from jellyfin.utils import to_rpc_payload
|
|
from settings import settings
|
|
import logging
|
|
import time
|
|
|
|
logging.basicConfig(
|
|
level=logging.INFO,
|
|
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
|
|
|
discordRPC = DiscordRPC()
|
|
jellyfinApiClient = JellyfinApiClient()
|
|
|
|
def main():
|
|
while True:
|
|
try:
|
|
media_item = jellyfinApiClient.get_current_playback()
|
|
if not media_item:
|
|
discordRPC.clear()
|
|
time.sleep(settings.poll_interval)
|
|
continue
|
|
|
|
discordRPC.update(to_rpc_payload(media_item))
|
|
time.sleep(settings.poll_interval)
|
|
except KeyboardInterrupt:
|
|
logging.info("Shutting down...")
|
|
discordRPC.clear()
|
|
break
|
|
|
|
if __name__ == "__main__":
|
|
main()
|