/
/
/
1"""nicovideo support for Music Assistant."""
2
3from __future__ import annotations
4
5from typing import TYPE_CHECKING
6
7from music_assistant_models.enums import ProviderFeature
8
9from music_assistant.mass import MusicAssistant
10from music_assistant.models import ProviderInstanceType
11from music_assistant.providers.nicovideo.provider import NicovideoMusicProvider
12
13if TYPE_CHECKING:
14 from music_assistant_models.config_entries import ProviderConfig
15 from music_assistant_models.provider import ProviderManifest
16
17# Supported features collected from all mixins
18SUPPORTED_FEATURES = {
19 # Artist mixin
20 ProviderFeature.ARTIST_TOPTRACKS,
21 ProviderFeature.ARTIST_ALBUMS,
22 ProviderFeature.LIBRARY_ARTISTS,
23 # Playlist mixin
24 ProviderFeature.LIBRARY_PLAYLISTS,
25 ProviderFeature.PLAYLIST_TRACKS_EDIT,
26 ProviderFeature.PLAYLIST_CREATE,
27 # Explorer mixin
28 ProviderFeature.SEARCH,
29 ProviderFeature.RECOMMENDATIONS,
30 ProviderFeature.SIMILAR_TRACKS,
31}
32
33
34async def setup(
35 mass: MusicAssistant, manifest: ProviderManifest, config: ProviderConfig
36) -> ProviderInstanceType:
37 """Initialize provider(instance) with given configuration."""
38 return NicovideoMusicProvider(mass, manifest, config, SUPPORTED_FEATURES)
39