# forward command to the player provider after all (base) sanity checks
player_provider = self.get_player_provider(target_player)
async with self._player_throttlers[target_player]:
- await player_provider.cmd_sync_many(target_player, child_player_ids)
+ await player_provider.cmd_sync_many(target_player, final_player_ids)
@api_command("players/cmd/unsync_many")
async def cmd_unsync_many(self, player_ids: list[str]) -> None:
async def cmd_sync_many(self, target_player: str, child_player_ids: list[str]) -> None:
"""Create temporary sync group by joining given players to target player."""
sonos_player = self.sonos_players[target_player]
- # ensure we only send valid (and unique) player ids
- child_player_ids = list({x for x in child_player_ids if x in self.sonos_players})
await sonos_player.client.player.group.modify_group_members(
player_ids_to_add=child_player_ids, player_ids_to_remove=[]
)