From 9ddb70bd6645ea56a560c6ae8d88611048305e74 Mon Sep 17 00:00:00 2001 From: Marcel van der Veldt Date: Tue, 16 Dec 2025 09:01:39 +0100 Subject: [PATCH] Fix random album playlist --- music_assistant/providers/builtin/__init__.py | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/music_assistant/providers/builtin/__init__.py b/music_assistant/providers/builtin/__init__.py index 6e98e4cb..82f3324c 100644 --- a/music_assistant/providers/builtin/__init__.py +++ b/music_assistant/providers/builtin/__init__.py @@ -554,19 +554,15 @@ class BuiltinProvider(MusicProvider): @use_cache(expiration=3600, category=CACHE_CATEGORY_PLAYLISTS) async def _get_builtin_playlist_random_album(self) -> list[Track]: - for in_library_only in (True, False): - for min_tracks_required in (10, 5, 1): - for random_album in await self.mass.music.albums.library_items( - limit=25, order_by="random" - ): - tracks = await self.mass.music.albums.tracks( - random_album.item_id, random_album.provider, in_library_only=in_library_only - ) - if len(tracks) < min_tracks_required: - continue - for idx, track in enumerate(tracks, 1): - track.position = idx - return tracks + for random_album in await self.mass.music.albums.library_items( + limit=1, order_by="random", extra_query="album_type != 'single'" + ): + tracks = await self.mass.music.albums.tracks( + random_album.item_id, random_album.provider + ) + for idx, track in enumerate(tracks, 1): + track.position = idx + return tracks return [] @use_cache(expiration=3600, category=CACHE_CATEGORY_PLAYLISTS) -- 2.34.1