/
/
/
1"""Phish.in Music Provider for Music Assistant."""
2
3from __future__ import annotations
4
5from typing import TYPE_CHECKING
6
7from music_assistant_models.enums import ProviderFeature
8
9from .provider import PhishInProvider
10
11if TYPE_CHECKING:
12 from music_assistant_models.config_entries import ConfigEntry, ConfigValueType, ProviderConfig
13 from music_assistant_models.provider import ProviderManifest
14
15 from music_assistant.mass import MusicAssistant
16 from music_assistant.models import ProviderInstanceType
17
18SUPPORTED_FEATURES = {
19 ProviderFeature.BROWSE,
20 ProviderFeature.SEARCH,
21 ProviderFeature.LIBRARY_ARTISTS,
22 ProviderFeature.LIBRARY_PLAYLISTS,
23 ProviderFeature.ARTIST_ALBUMS,
24 ProviderFeature.ARTIST_TOPTRACKS,
25}
26
27
28async def setup(
29 mass: MusicAssistant, manifest: ProviderManifest, config: ProviderConfig
30) -> ProviderInstanceType:
31 """Initialize provider(instance) with given configuration."""
32 return PhishInProvider(mass, manifest, config, SUPPORTED_FEATURES)
33
34
35async def get_config_entries(
36 mass: MusicAssistant, # noqa: ARG001
37 instance_id: str | None = None, # noqa: ARG001
38 action: str | None = None, # noqa: ARG001
39 values: dict[str, ConfigValueType] | None = None, # noqa: ARG001
40) -> tuple[ConfigEntry, ...]:
41 """Return Config entries to setup this provider."""
42 return ()
43