From f8c20b6a69564534bb710b6c0f0afa7e5f6a19e5 Mon Sep 17 00:00:00 2001 From: perillamint Date: Fri, 9 Feb 2024 17:45:32 +0900 Subject: [PATCH] Subsonic: Implement features required by Nextcloud Music support (#1056) --- .../server/providers/opensubsonic/__init__.py | 15 ++++++++++++++- .../providers/opensubsonic/sonic_provider.py | 2 ++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/music_assistant/server/providers/opensubsonic/__init__.py b/music_assistant/server/providers/opensubsonic/__init__.py index b0349f13..89226a19 100644 --- a/music_assistant/server/providers/opensubsonic/__init__.py +++ b/music_assistant/server/providers/opensubsonic/__init__.py @@ -12,7 +12,12 @@ from music_assistant.common.models.config_entries import ( from music_assistant.common.models.enums import ConfigEntryType from music_assistant.constants import CONF_PASSWORD, CONF_PATH, CONF_PORT, CONF_USERNAME -from .sonic_provider import CONF_BASE_URL, CONF_ENABLE_PODCASTS, OpenSonicProvider +from .sonic_provider import ( + CONF_BASE_URL, + CONF_ENABLE_LEGACY_AUTH, + CONF_ENABLE_PODCASTS, + OpenSonicProvider, +) if TYPE_CHECKING: from music_assistant.common.models.provider import ProviderManifest @@ -81,4 +86,12 @@ async def get_config_entries( description="Should the provider query for podcasts as well as music?", default_value=True, ), + ConfigEntry( + key=CONF_ENABLE_LEGACY_AUTH, + type=ConfigEntryType.BOOLEAN, + label="Enable legacy auth", + required=True, + description='Enable OpenSubsonic "legacy" auth support', + default_value=False, + ), ) diff --git a/music_assistant/server/providers/opensubsonic/sonic_provider.py b/music_assistant/server/providers/opensubsonic/sonic_provider.py index c40d1920..05dfa34c 100644 --- a/music_assistant/server/providers/opensubsonic/sonic_provider.py +++ b/music_assistant/server/providers/opensubsonic/sonic_provider.py @@ -54,6 +54,7 @@ if TYPE_CHECKING: CONF_BASE_URL = "baseURL" CONF_ENABLE_PODCASTS = "enable_podcasts" +CONF_ENABLE_LEGACY_AUTH = "enable_legacy_auth" UNKNOWN_ARTIST_ID = "fake_artist_unknown" @@ -76,6 +77,7 @@ class OpenSonicProvider(MusicProvider): self.config.get_value(CONF_BASE_URL), username=self.config.get_value(CONF_USERNAME), password=self.config.get_value(CONF_PASSWORD), + legacyAuth=self.config.get_value(CONF_ENABLE_LEGACY_AUTH), port=port, serverPath=path, appName="Music Assistant", -- 2.34.1