get first media
This commit is contained in:
14
jellyfin.py
14
jellyfin.py
@@ -20,22 +20,26 @@ def get_client():
|
||||
def get_active_media(client):
|
||||
server_address = os.getenv('JELLYFIN_ADDRESS')
|
||||
sessions = client.jellyfin.get_sessions()
|
||||
active_media = []
|
||||
|
||||
for session in sessions:
|
||||
# Check if there is a NowPlayingItem
|
||||
media = session.get('NowPlayingItem')
|
||||
if not media:
|
||||
continue
|
||||
|
||||
# Skip non-audio media
|
||||
media_type = media.get('Type')
|
||||
if media_type != 'Audio':
|
||||
continue
|
||||
|
||||
media_id = media.get('Id')
|
||||
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'),
|
||||
'title': media.get('Name', 'Unknown Title'),
|
||||
'image': image,
|
||||
}
|
||||
|
||||
active_media.append(media_info)
|
||||
|
||||
return active_media
|
||||
return None
|
||||
|
||||
7
main.py
7
main.py
@@ -1,6 +1,7 @@
|
||||
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
|
||||
|
||||
load_dotenv()
|
||||
@@ -12,20 +13,20 @@ def generate_media_id(media):
|
||||
return f"{media['artist']}-{media['title']}"
|
||||
|
||||
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.")
|
||||
rpc.clear()
|
||||
return
|
||||
|
||||
media = media_list[0]
|
||||
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'],
|
||||
|
||||
Reference in New Issue
Block a user