Fix for Tidal tracks listings (#814)
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Wed, 2 Aug 2023 10:38:15 +0000 (12:38 +0200)
committerGitHub <noreply@github.com>
Wed, 2 Aug 2023 10:38:15 +0000 (12:38 +0200)
* Guard for unavailable sonos player

* Fix Tidal tracks listing

music_assistant/server/controllers/player_queues.py
music_assistant/server/providers/sonos/__init__.py
music_assistant/server/providers/tidal/__init__.py

index 71bbb504937e5f4ebadc9685a53b339c158c10a8..ac3703b63862cd8cdb738c81ed7027c3292d7b66 100755 (executable)
@@ -16,7 +16,12 @@ from music_assistant.common.models.enums import (
     QueueOption,
     RepeatMode,
 )
-from music_assistant.common.models.errors import MediaNotFoundError, MusicAssistantError, QueueEmpty
+from music_assistant.common.models.errors import (
+    MediaNotFoundError,
+    MusicAssistantError,
+    PlayerUnavailableError,
+    QueueEmpty,
+)
 from music_assistant.common.models.media_items import MediaItemType, media_from_dict
 from music_assistant.common.models.player_queue import PlayerQueue
 from music_assistant.common.models.queue_item import QueueItem
@@ -688,6 +693,8 @@ class PlayerQueuesController(CoreController):
         Raises QueueEmpty if there are no more tracks left.
         """
         queue = self.get(queue_id)
+        if not queue:
+            raise PlayerUnavailableError(f"PlayerQueue {queue_id} is not available")
         if current_item_id:
             cur_index = self.index_by_id(queue_id, current_item_id) or 0
         else:
index 4a998f58098fa0e0086a97de267b386c47a867fc..d164d1e08a633c7b573460a86fe51df87f4fd1b5 100644 (file)
@@ -155,6 +155,7 @@ class SonosPlayer:
         """Update attributes of the MA Player from soco.SoCo state."""
         now = time.time()
         # generic attributes (speaker_info)
+        self.player.available = True
         self.player.name = self.speaker_info["zone_name"]
         self.player.volume_level = int(self.rendering_control_info["volume"])
         self.player.volume_muted = self.rendering_control_info["mute"]
index 945a732aa8bdf0c42196cb4a3df23a2793ece525..96f0899b245f26a93ba34e04dfc3ba168d250bea 100644 (file)
@@ -594,8 +594,8 @@ class TidalProvider(MusicProvider):
                     url=f"http://www.tidal.com/tracks/{track_id}",
                     available=track_obj.available,
                 )
-            }
-            ** extra_init_kwargs,
+            },
+            **extra_init_kwargs,
         )
         track.album = self.get_item_mapping(
             media_type=MediaType.ALBUM,