Fix: playergroups not correctly migrated
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Wed, 26 Feb 2025 20:17:39 +0000 (21:17 +0100)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Wed, 26 Feb 2025 20:17:39 +0000 (21:17 +0100)
music_assistant/controllers/config.py
music_assistant/providers/player_group/__init__.py

index 9edac8962a2c4bc49247c60a92c1f96c9e161eeb..d07331546c1c03a0e373c4dc717f30bcd67a05fc 100644 (file)
@@ -323,7 +323,7 @@ class ConfigController:
     async def get_player_configs(
         self, provider: str | None = None, include_values: bool = False
     ) -> list[PlayerConfig]:
-        """Return all known player configurations, optionally filtered by provider domain."""
+        """Return all known player configurations, optionally filtered by provider id."""
         return [
             await self.get_player_config(raw_conf["player_id"])
             if include_values
index 5238897728ebe40a51dff212486fe451e8a4bb26..5022718db25825a3edb3177008bef9475410c4e9 100644 (file)
@@ -182,10 +182,16 @@ class PlayerGroupProvider(PlayerProvider):
         # temp: migrate old config entries
         # remove this after MA 2.4 release
         for player_config in await self.mass.config.get_player_configs(include_values=True):
+            # migrate provider set to domain to instance_id
+            if player_config.provider == self.manifest.domain:
+                self.mass.config.set_raw_player_config_value(
+                    player_config.player_id, "provider", self.instance_id
+                )
+                player_config.provider = self.instance_id
+            # migrate old syncgroup/UGP players to this provider
             if player_config.values.get(CONF_GROUP_TYPE) is not None:
                 # already migrated
                 continue
-            # migrate old syncgroup players to this provider
             if player_config.player_id.startswith(SYNCGROUP_PREFIX):
                 self.mass.config.set_raw_player_config_value(
                     player_config.player_id, CONF_GROUP_TYPE, player_config.provider
@@ -194,7 +200,6 @@ class PlayerGroupProvider(PlayerProvider):
                 self.mass.config.set_raw_player_config_value(
                     player_config.player_id, "provider", self.instance_id
                 )
-            # migrate old UGP players to this provider
             elif player_config.player_id.startswith(UNIVERSAL_PREFIX):
                 self.mass.config.set_raw_player_config_value(
                     player_config.player_id, CONF_GROUP_TYPE, "universal"