/
/
/
1"""
2Manager class for nicovideo converters.
3
4Converters Layer: Data transformation
5- Converts niconico.py objects to Music Assistant models
6- Handles metadata mapping and normalization
7- Manages item relationships and cross-references
8- Provides consistent data format for provider mixins
9"""
10
11from __future__ import annotations
12
13from logging import Logger
14from typing import TYPE_CHECKING
15
16from music_assistant.providers.nicovideo.converters.album import NicovideoAlbumConverter
17from music_assistant.providers.nicovideo.converters.artist import NicovideoArtistConverter
18from music_assistant.providers.nicovideo.converters.helper import NicovideoConverterHelper
19from music_assistant.providers.nicovideo.converters.playlist import (
20 NicovideoPlaylistConverter,
21)
22from music_assistant.providers.nicovideo.converters.stream import NicovideoStreamConverter
23from music_assistant.providers.nicovideo.converters.track import NicovideoTrackConverter
24
25if TYPE_CHECKING:
26 from music_assistant.models.music_provider import MusicProvider
27
28
29class NicovideoConverterManager:
30 """Central manager for all nicovideo converters to Music Assistant media items."""
31
32 def __init__(self, provider: MusicProvider, logger: Logger) -> None:
33 """Initialize with provider and create specialized converters."""
34 self.provider = provider
35 self.logger = logger
36 self.helper = NicovideoConverterHelper(self)
37
38 # Initialize specialized converters
39 self.track = NicovideoTrackConverter(self)
40 self.album = NicovideoAlbumConverter(self)
41 self.playlist = NicovideoPlaylistConverter(self)
42 self.artist = NicovideoArtistConverter(self)
43 self.stream = NicovideoStreamConverter(self)
44