Snapcast add guard for sync_many on cmd_sync (#1363)
authorSantiago Soto <santiago@soto.uy>
Fri, 14 Jun 2024 19:58:33 +0000 (16:58 -0300)
committerGitHub <noreply@github.com>
Fri, 14 Jun 2024 19:58:33 +0000 (21:58 +0200)
refactor cmd_sync

music_assistant/server/providers/snapcast/__init__.py

index ae45bf5e248166ca78a1baf5bef6a9a3f9c09a7f..2c307a169464fbe07d22e257f5c333b9a3cb5cdc 100644 (file)
@@ -341,8 +341,9 @@ class SnapCastProvider(PlayerProvider):
     async def cmd_sync(self, player_id: str, target_player: str) -> None:
         """Sync Snapcast player."""
         group = self._get_snapgroup(target_player)
-        await group.add_client(self._get_snapclient_id(player_id))
-        self._handle_update()
+        if self._get_snapclient_id(player_id) not in group.clients:
+            await group.add_client(self._get_snapclient_id(player_id))
+            self._handle_update()
 
     async def cmd_unsync(self, player_id: str) -> None:
         """Unsync Snapcast player."""