From 34e1b74c12baf0f9d214a29f8b37b569b982bfe3 Mon Sep 17 00:00:00 2001 From: Marcel van der Veldt Date: Sun, 9 Mar 2025 15:18:39 +0100 Subject: [PATCH] Rename the slimproto provider to squeezelite (#2015) --- music_assistant/controllers/config.py | 11 ++++++++++- music_assistant/providers/slimproto/manifest.json | 11 ----------- .../providers/{slimproto => squeezelite}/__init__.py | 0 .../providers/{slimproto => squeezelite}/icon.svg | 0 .../{slimproto => squeezelite}/icon_monochrome.svg | 0 music_assistant/providers/squeezelite/manifest.json | 11 +++++++++++ .../{slimproto => squeezelite}/multi_client_stream.py | 0 pyproject.toml | 2 +- 8 files changed, 22 insertions(+), 13 deletions(-) delete mode 100644 music_assistant/providers/slimproto/manifest.json rename music_assistant/providers/{slimproto => squeezelite}/__init__.py (100%) rename music_assistant/providers/{slimproto => squeezelite}/icon.svg (100%) rename music_assistant/providers/{slimproto => squeezelite}/icon_monochrome.svg (100%) create mode 100644 music_assistant/providers/squeezelite/manifest.json rename music_assistant/providers/{slimproto => squeezelite}/multi_client_stream.py (100%) diff --git a/music_assistant/controllers/config.py b/music_assistant/controllers/config.py index 18a1a07c..47449a3a 100644 --- a/music_assistant/controllers/config.py +++ b/music_assistant/controllers/config.py @@ -852,13 +852,22 @@ class ConfigController: changed = True # set 'onboard_done' flag if we have any (non default) provider configs - if not self._data.get(CONF_ONBOARD_DONE): + if self._data.get(CONF_ONBOARD_DONE) is None: default_providers = {x.domain for x in self.mass.get_provider_manifests() if x.builtin} for provider_config in self._data.get(CONF_PROVIDERS, {}).values(): if provider_config["domain"] not in default_providers: self._data[CONF_ONBOARD_DONE] = True changed = True break + # migrate slimproto --> squeezelite + for instance_id, provider_config in list(self._data.get(CONF_PROVIDERS, {}).items()): + if provider_config.get("domain") == "slimproto": + del self._data[CONF_PROVIDERS][instance_id] + new_instance_id = instance_id.replace("slimproto", "squeezelite") + provider_config["instance_id"] = new_instance_id + provider_config["domain"] = "squeezelite" + self._data[CONF_PROVIDERS][new_instance_id] = provider_config + changed = True if changed: await self._async_save() diff --git a/music_assistant/providers/slimproto/manifest.json b/music_assistant/providers/slimproto/manifest.json deleted file mode 100644 index 86bda8f4..00000000 --- a/music_assistant/providers/slimproto/manifest.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "player", - "domain": "slimproto", - "name": "Slimproto (Squeezebox players)", - "description": "Support for slimproto based players (e.g. squeezebox, squeezelite).", - "codeowners": ["@music-assistant"], - "requirements": ["aioslimproto==3.1.0"], - "documentation": "https://music-assistant.io/player-support/slimproto/", - "multi_instance": false, - "builtin": false -} diff --git a/music_assistant/providers/slimproto/__init__.py b/music_assistant/providers/squeezelite/__init__.py similarity index 100% rename from music_assistant/providers/slimproto/__init__.py rename to music_assistant/providers/squeezelite/__init__.py diff --git a/music_assistant/providers/slimproto/icon.svg b/music_assistant/providers/squeezelite/icon.svg similarity index 100% rename from music_assistant/providers/slimproto/icon.svg rename to music_assistant/providers/squeezelite/icon.svg diff --git a/music_assistant/providers/slimproto/icon_monochrome.svg b/music_assistant/providers/squeezelite/icon_monochrome.svg similarity index 100% rename from music_assistant/providers/slimproto/icon_monochrome.svg rename to music_assistant/providers/squeezelite/icon_monochrome.svg diff --git a/music_assistant/providers/squeezelite/manifest.json b/music_assistant/providers/squeezelite/manifest.json new file mode 100644 index 00000000..ad7cb55f --- /dev/null +++ b/music_assistant/providers/squeezelite/manifest.json @@ -0,0 +1,11 @@ +{ + "type": "player", + "domain": "squeezelite", + "name": "Squeezelite (slimproto players)", + "description": "Support for Squeezelite, a software-based player implementing the slimproto protocol, which was originally designed for the Squeezebox hardware players. Other players and/or original Squeezebox hardware might also work with this provider, but without any guarantees/support.", + "codeowners": ["@music-assistant"], + "requirements": ["aioslimproto==3.1.0"], + "documentation": "https://music-assistant.io/player-support/squeezelite/", + "multi_instance": false, + "builtin": false +} diff --git a/music_assistant/providers/slimproto/multi_client_stream.py b/music_assistant/providers/squeezelite/multi_client_stream.py similarity index 100% rename from music_assistant/providers/slimproto/multi_client_stream.py rename to music_assistant/providers/squeezelite/multi_client_stream.py diff --git a/pyproject.toml b/pyproject.toml index 97878d72..aafc3325 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -134,7 +134,7 @@ exclude = [ '^music_assistant/providers/podcastfeed/.*$', '^music_assistant/providers/qobuz/.*$', '^music_assistant/providers/siriusxm/.*$', - '^music_assistant/providers/slimproto/.*$', + '^music_assistant/providers/squeezelite/.*$', '^music_assistant/providers/sonos/.*$', '^music_assistant/providers/soundcloud/.*$', '^music_assistant/providers/snapcast/.*$', -- 2.34.1