get first media

This commit is contained in:
2025-12-09 21:12:33 +01:00
parent be33090bd2
commit 5052c40f68
2 changed files with 13 additions and 8 deletions

View File

@@ -20,22 +20,26 @@ def get_client():
def get_active_media(client): def get_active_media(client):
server_address = os.getenv('JELLYFIN_ADDRESS') server_address = os.getenv('JELLYFIN_ADDRESS')
sessions = client.jellyfin.get_sessions() sessions = client.jellyfin.get_sessions()
active_media = []
for session in sessions: for session in sessions:
# Check if there is a NowPlayingItem
media = session.get('NowPlayingItem') media = session.get('NowPlayingItem')
if not media: if not media:
continue continue
# Skip non-audio media
media_type = media.get('Type')
if media_type != 'Audio':
continue
media_id = media.get('Id') media_id = media.get('Id')
image = f"{server_address}/Items/{media_id}/Images/Primary?maxWidth=300&maxHeight=300" image = f"{server_address}/Items/{media_id}/Images/Primary?maxWidth=300&maxHeight=300"
media_info = { return {
'id': media_id,
'artist': media.get('AlbumArtist', 'Unknown Artist'), 'artist': media.get('AlbumArtist', 'Unknown Artist'),
'title': media.get('Name', 'Unknown Title'), 'title': media.get('Name', 'Unknown Title'),
'image': image, 'image': image,
} }
active_media.append(media_info) return None
return active_media

View File

@@ -1,6 +1,7 @@
from dotenv import load_dotenv from dotenv import load_dotenv
from jellyfin import get_client, get_active_media from jellyfin import get_client, get_active_media
from discord import get_rpc from discord import get_rpc
from pypresence.types import ActivityType
import time import time
load_dotenv() load_dotenv()
@@ -12,20 +13,20 @@ def generate_media_id(media):
return f"{media['artist']}-{media['title']}" return f"{media['artist']}-{media['title']}"
def main_loop(last_media_id): def main_loop(last_media_id):
media_list = get_active_media(client) media = get_active_media(client)
if len(media_list) == 0: if media is None:
print("No active media found.") print("No active media found.")
rpc.clear() rpc.clear()
return return
media = media_list[0]
media_id = generate_media_id(media) media_id = generate_media_id(media)
if media_id != last_media_id: if media_id != last_media_id:
print(f"Updating Discord RPC: Listening to {media['title']} by {media['artist']}") print(f"Updating Discord RPC: Listening to {media['title']} by {media['artist']}")
rpc.update( rpc.update(
activity_type=ActivityType.LISTENING,
state=f"by {media['artist']}", state=f"by {media['artist']}",
details=f"Listening to {media['title']}", details=f"Listening to {media['title']}",
large_image=media['image'], large_image=media['image'],