from discord.rpc import DiscordRPC from jellyfin.api_client import JellyfinApiClient from settings import settings import coloredlogs import logging import time coloredlogs.install( level=logging.INFO, fmt='%(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(media_item.to_rpc_payload()) time.sleep(settings.poll_interval) except KeyboardInterrupt: logging.info("Shutting down...") discordRPC.clear() break if __name__ == "__main__": main()