music-assistant-server

1.7 KBPY
manager.py
1.7 KB44 lines • python
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