Do not load any providers by default (except builtin) (#1252)
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Wed, 24 Apr 2024 21:14:57 +0000 (23:14 +0200)
committerGitHub <noreply@github.com>
Wed, 24 Apr 2024 21:14:57 +0000 (23:14 +0200)
music_assistant/server/controllers/config.py
music_assistant/server/providers/airplay/manifest.json
music_assistant/server/providers/builtin/manifest.json
music_assistant/server/providers/chromecast/manifest.json
music_assistant/server/providers/dlna/manifest.json
music_assistant/server/providers/fanarttv/manifest.json
music_assistant/server/providers/musicbrainz/manifest.json
music_assistant/server/providers/sonos/manifest.json
music_assistant/server/providers/theaudiodb/manifest.json
music_assistant/server/providers/ugp/manifest.json
music_assistant/server/server.py

index 678611061ea705566e62208b4839aa7b47cc2e93..4a0ae762ce49f1e276ce4b65f66f91e3f5668dee 100644 (file)
@@ -468,15 +468,15 @@ class ConfigController:
             default_conf_raw,
         )
 
-    async def create_default_provider_config(self, provider_domain: str) -> None:
+    async def create_builtin_provider_config(self, provider_domain: str) -> None:
         """
-        Create default ProviderConfig.
+        Create builtin ProviderConfig.
 
-        This is meant as helper to create default configs for default enabled providers.
+        This is meant as helper to create default configs for builtin providers.
         Called by the server initialization code which load all providers at startup.
         """
-        for _conf in await self.get_provider_configs(provider_domain=provider_domain):
-            # return if there is already a config
+        for _ in await self.get_provider_configs(provider_domain=provider_domain):
+            # return if there is already any config
             return
         for prov in self.mass.get_provider_manifests():
             if prov.domain == provider_domain:
index 7e9032d8313f9530ea6238992fe5defd800ec1b3..3dbbbbb6f7cfd494891eb4df470609e578fc3f97 100644 (file)
@@ -10,7 +10,6 @@
   "documentation": "https://music-assistant.io/player-support/airplay/",
   "multi_instance": false,
   "builtin": false,
-  "load_by_default": true,
   "icon": "cast-variant",
   "mdns_discovery": [
     "_raop._tcp.local."
index d256def56443c71880f1443ba6d01ff73eba8ad1..cde8ee3eb19d031a35dffea70064d96f2bae2ec9 100644 (file)
@@ -10,6 +10,5 @@
   "documentation": "https://music-assistant.io/music-providers/builtin/",
   "multi_instance": false,
   "builtin": true,
-  "hidden": true,
-  "load_by_default": true
+  "hidden": true
 }
index 2555ef2f3cd14dc6a9e68f7765570a0c2fedfb53..f1b73a03c5a4b2b063f65f5d54d13e188b2bd446 100644 (file)
@@ -12,7 +12,6 @@
   "documentation": "https://music-assistant.io/player-support/google-cast/",
   "multi_instance": false,
   "builtin": false,
-  "load_by_default": true,
   "icon": "cast",
   "mdns_discovery": [
     "_googlecast._tcp.local."
index da6a0e6968fef9256efde5ff087358623f4b76dd..367e88f6206404e85cf8ddb6e3c4a0415d369015 100644 (file)
@@ -3,11 +3,14 @@
   "domain": "dlna",
   "name": "UPnP/DLNA Player provider",
   "description": "Support for players that are compatible with the UPnP/DLNA (DMR) standard.",
-  "codeowners": ["@music-assistant"],
-  "requirements": ["async-upnp-client==0.38.3"],
+  "codeowners": [
+    "@music-assistant"
+  ],
+  "requirements": [
+    "async-upnp-client==0.38.3"
+  ],
   "documentation": "https://music-assistant.io/player-support/dlna/",
   "multi_instance": false,
   "builtin": false,
-  "load_by_default": true,
   "icon": "dlna"
 }
index fcac306e1bbfed40694549c9994c7458365d1934..083e76069dac8d54c3a47244234caedbc6140e14 100644 (file)
@@ -3,11 +3,12 @@
   "domain": "fanarttv",
   "name": "fanart.tv Metadata provider",
   "description": "fanart.tv is a community database of artwork for movies, tv series and music.",
-  "codeowners": ["@music-assistant"],
+  "codeowners": [
+    "@music-assistant"
+  ],
   "requirements": [],
   "documentation": "",
   "multi_instance": false,
   "builtin": true,
-  "load_by_default": true,
   "icon": "folder-information"
 }
index 28dd9cd1db0787627631d2819d3e2fec3170ba89..5fbdd54dd1cd0e89c256571111df91d9eb179423 100644 (file)
@@ -3,11 +3,12 @@
   "domain": "musicbrainz",
   "name": "MusicBrainz Metadata provider",
   "description": "MusicBrainz is an open music encyclopedia that collects music metadata and makes it available to the public.",
-  "codeowners": ["@music-assistant"],
+  "codeowners": [
+    "@music-assistant"
+  ],
   "requirements": [],
   "documentation": "",
   "multi_instance": false,
   "builtin": true,
-  "load_by_default": true,
   "icon": "mdi-folder-information"
 }
index 83cd11d5f65b25a80ba649300627a0629fd1e730..f2b082e6becdb9ef04042c55ca9a3e0a066d4e04 100644 (file)
@@ -13,6 +13,5 @@
   ],
   "documentation": "https://music-assistant.io/player-support/sonos/",
   "multi_instance": false,
-  "builtin": false,
-  "load_by_default": true
+  "builtin": false
 }
index 43e7cf2227650f40f4fd11b9ad9b209127e67e4f..d7133ce77b4527e8d92852bbc47a32aeccc72928 100644 (file)
@@ -3,11 +3,12 @@
   "domain": "theaudiodb",
   "name": "TheAudioDB Metadata provider",
   "description": "TheAudioDB is a community Database of audio artwork and metadata with a JSON API.",
-  "codeowners": ["@music-assistant"],
+  "codeowners": [
+    "@music-assistant"
+  ],
   "requirements": [],
   "documentation": "",
   "multi_instance": false,
   "builtin": true,
-  "load_by_default": true,
   "icon": "folder-information"
 }
index 59e42686b56eea56f8a493570823cf893f2e21d3..f465b11ce0da8b8bf7f7ae9ad0d9c48d38d5bcab 100644 (file)
@@ -3,11 +3,12 @@
   "domain": "ugp",
   "name": "Universal Group Player",
   "description": "Create Player Groups with your favorite players, regardless of type and model.",
-  "codeowners": ["@music-assistant"],
+  "codeowners": [
+    "@music-assistant"
+  ],
   "requirements": [],
   "documentation": "https://music-assistant.io/player-support/universal/",
   "multi_instance": false,
   "builtin": false,
-  "load_by_default": true,
   "icon": "speaker-multiple"
 }
index 08ec19e707c051c61770c45b1cecc4f1c47854cd..2be5531c1c2ac418874280f742c5d103916ccc0b 100644 (file)
@@ -530,11 +530,11 @@ class MusicAssistant:
 
     async def _load_providers(self) -> None:
         """Load providers from config."""
-        # create default config for any 'load_by_default' providers (e.g. URL provider)
+        # create default config for any 'builtin' providers (e.g. URL provider)
         for prov_manifest in self._provider_manifests.values():
-            if not prov_manifest.load_by_default:
+            if not prov_manifest.builtin:
                 continue
-            await self.config.create_default_provider_config(prov_manifest.domain)
+            await self.config.create_builtin_provider_config(prov_manifest.domain)
 
         async def load_provider(prov_conf: ProviderConfig) -> None:
             """Try to load a provider and catch errors."""