add jellyfin api client
This commit is contained in:
52
main.py
52
main.py
@@ -1,46 +1,12 @@
|
||||
from dotenv import load_dotenv
|
||||
from jellyfin import get_client, get_active_media
|
||||
from discord import get_rpc
|
||||
from pypresence.types import ActivityType
|
||||
import time
|
||||
from discord.rpc import DiscordRPC
|
||||
from jellyfin.api_client import JellyfinApiClient
|
||||
import logging
|
||||
|
||||
load_dotenv()
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
||||
|
||||
rpc = get_rpc()
|
||||
client = get_client()
|
||||
discordRPC = DiscordRPC()
|
||||
jellyfinApiClient = JellyfinApiClient()
|
||||
|
||||
def generate_media_id(media):
|
||||
return f"{media['artist']}-{media['title']}"
|
||||
|
||||
def main_loop(last_media_id):
|
||||
media = get_active_media(client)
|
||||
|
||||
if media is None:
|
||||
print("No active media found.")
|
||||
rpc.clear()
|
||||
return None
|
||||
|
||||
media_id = generate_media_id(media)
|
||||
|
||||
if media_id != last_media_id:
|
||||
print(f"Updating Discord RPC: Listening to {media['title']} by {media['artist']}")
|
||||
|
||||
rpc.update(
|
||||
activity_type=ActivityType.LISTENING,
|
||||
state=f"by {media['artist']}",
|
||||
details=f"Listening to {media['title']}",
|
||||
large_image=media['image'],
|
||||
large_text=media['title'],
|
||||
)
|
||||
return media_id
|
||||
else:
|
||||
print("No change in media. Skipping update.")
|
||||
return last_media_id
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
last_media_id = None
|
||||
print("Starting Jellyfin Discord Rich Presence...")
|
||||
while True:
|
||||
last_media_id = main_loop(last_media_id)
|
||||
time.sleep(15)
|
||||
print(jellyfinApiClient.get_current_playback())
|
||||
|
||||
Reference in New Issue
Block a user