From: Jonathan Bangert Date: Tue, 15 Aug 2023 15:04:42 +0000 (+0200) Subject: Implement radio mode X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=8f9f532d9649fd92c163476b0f26f6539448976d;p=music-assistant-server.git Implement radio mode --- diff --git a/music_assistant/server/providers/deezer/__init__.py b/music_assistant/server/providers/deezer/__init__.py index a72b357b..9928e985 100644 --- a/music_assistant/server/providers/deezer/__init__.py +++ b/music_assistant/server/providers/deezer/__init__.py @@ -70,6 +70,7 @@ SUPPORTED_FEATURES = ( ProviderFeature.PLAYLIST_TRACKS_EDIT, ProviderFeature.PLAYLIST_CREATE, ProviderFeature.RECOMMENDATIONS, + ProviderFeature.SIMILAR_TRACKS, ) @@ -408,6 +409,14 @@ class DeezerProvider(MusicProvider): # pylint: disable=W0223 playlist = await self.client.get_playlist(playlist_id) return self.parse_playlist(playlist=playlist) + async def get_similar_tracks(self, prov_track_id, limit=25) -> list[Track]: + """Retrieve a dynamic list of tracks based on the provided item.""" + endpoint = "song.getSearchTrackMix" + tracks = (await self.gw_client._gw_api_call(endpoint, args={"SNG_ID": prov_track_id}))[ + "results" + ]["data"][:limit] + return [await self.get_track(track["SNG_ID"]) for track in tracks] + async def get_stream_details(self, item_id: str) -> StreamDetails | None: """Return the content details for the given track when it will be streamed.""" url_details, song_data = await self.gw_client.get_deezer_track_urls(item_id)