From: Marcel van der Veldt Date: Wed, 25 Feb 2026 10:25:08 +0000 (+0100) Subject: Add active_playlist to queue extra attributes X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=22541afe4c91c1c9088175a94d413815fe711ded;p=music-assistant-server.git Add active_playlist to queue extra attributes --- diff --git a/music_assistant/constants.py b/music_assistant/constants.py index ee908258..dcad1942 100644 --- a/music_assistant/constants.py +++ b/music_assistant/constants.py @@ -985,6 +985,7 @@ ATTR_ENABLED: Final[str] = "enabled" ATTR_AVAILABLE: Final[str] = "available" ATTR_MUTE_LOCK: Final[str] = "mute_lock" ATTR_ACTIVE_SOURCE: Final[str] = "active_source" +ATTR_ACTIVE_PLAYLIST: Final[str] = "active_playlist" # Album type detection patterns LIVE_INDICATORS = [ diff --git a/music_assistant/controllers/player_queues.py b/music_assistant/controllers/player_queues.py index f911664c..c5d00a02 100644 --- a/music_assistant/controllers/player_queues.py +++ b/music_assistant/controllers/player_queues.py @@ -63,6 +63,7 @@ from music_assistant_models.player_queue import PlayerQueue from music_assistant_models.queue_item import QueueItem from music_assistant.constants import ( + ATTR_ACTIVE_PLAYLIST, ATTR_ANNOUNCEMENT_IN_PROGRESS, MASS_LOGO_ONLINE, PLAYBACK_REPORT_INTERVAL_SECONDS, @@ -1510,6 +1511,11 @@ class PlayerQueuesController(CoreController): def signal_update(self, queue_id: str, items_changed: bool = False) -> None: """Signal state changed of given queue.""" queue = self._queues[queue_id] + # set 'active_playlist' in extra attributes as a human readable list + # of the enqueued media items for API clients to display if they want to + queue.extra_attributes[ATTR_ACTIVE_PLAYLIST] = " / ".join( + [x.name for x in queue.enqueued_media_items] + ) if items_changed: self.mass.signal_event(EventType.QUEUE_ITEMS_UPDATED, object_id=queue_id, data=queue) # save items in cache - only cache items with valid media_item