import hashlib
from asyncio import TaskGroup
from collections.abc import AsyncGenerator
+from dataclasses import dataclass
from math import ceil
+ from typing import Any
import deezer
from aiohttp import ClientTimeout
metadata=MediaItemMetadata(
images=[MediaItemImage(type=ImageType.THUMB, path=playlist.picture_big)],
),
- is_editable=playlist.creator.id == self.client.user.id,
+ is_editable=playlist.creator.id == self.user.id,
)
- def parse_track(self, track: deezer.Track, user_country: str) -> Track:
+ def parse_track(
+ self,
+ track: deezer.Track,
+ user_country: str,
+ extra_init_kwargs: dict[str, Any] | None = None,
+ ) -> Track | PlaylistTrack:
"""Parse the deezer-python track to a MASS track."""
- return Track(
+ if "position" in extra_init_kwargs:
+ track_class = PlaylistTrack
+ elif "disc_number" in extra_init_kwargs and "track_number" in extra_init_kwargs:
+ track_class = AlbumTrack
+ else:
+ track_class = Track
+ return track_class(
item_id=str(track.id),
provider=self.domain,
name=track.title,