from music_assistant.models.plugin import PluginProvider
CONF_USER_TOKEN = "_user_token"
+CONF_API_BASE_URL = "api_base_url"
+LISTENBRAINZ_API_URL = "https://api.listenbrainz.org"
SUPPORTED_FEATURES: set[ProviderFeature] = (
set()
) # we don't have any special supported features (yet)
) -> ProviderInstanceType:
"""Initialize provider(instance) with given configuration."""
token = config.get_value(CONF_USER_TOKEN)
+ api_base_url = config.get_value(CONF_API_BASE_URL, LISTENBRAINZ_API_URL)
+
if not token:
raise SetupFailedError("User token needs to be set")
assert token != SECURE_STRING_SUBSTITUTE
- client = ListenBrainz()
+ client = ListenBrainz(api_base_url=api_base_url)
client.set_auth_token(token)
return ListenBrainzScrobbleProvider(mass, manifest, config, client)
required=True,
value=values.get(CONF_USER_TOKEN) if values else None,
),
+ ConfigEntry(
+ key=CONF_API_BASE_URL,
+ type=ConfigEntryType.STRING,
+ label="Base URL",
+ required=False,
+ value=values.get(CONF_API_BASE_URL) if values else None,
+ description="URL for listenbrainz endpoint. Leave blank to default"
+ "to the public listenbrainz API.",
+ advanced=True,
+ ),
# add user selection entry
await create_scrobble_users_config_entry(mass),
)