From: Jonathan Bangert Date: Fri, 21 Jul 2023 13:40:55 +0000 (+0200) Subject: Merge from upstream X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=a13567b4adaa6bd96e9d190b3fc54edbd6dc0d8b;p=music-assistant-server.git Merge from upstream --- a13567b4adaa6bd96e9d190b3fc54edbd6dc0d8b diff --cc music_assistant/server/providers/deezer/__init__.py index 6241f09d,e74bb338..d9b57ca2 --- a/music_assistant/server/providers/deezer/__init__.py +++ b/music_assistant/server/providers/deezer/__init__.py @@@ -2,8 -2,8 +2,9 @@@ 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 @@@ -521,12 -520,23 +535,23 @@@ class DeezerProvider(MusicProvider): 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,