From 5f4d177544ae901a445cba7213431ec366d8e074 Mon Sep 17 00:00:00 2001 From: Marcel van der Veldt Date: Tue, 18 Feb 2025 16:17:13 +0100 Subject: [PATCH] Fix library tracks images --- music_assistant/controllers/media/albums.py | 8 ++++---- music_assistant/controllers/media/base.py | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/music_assistant/controllers/media/albums.py b/music_assistant/controllers/media/albums.py index 5566439f..678c7d7d 100644 --- a/music_assistant/controllers/media/albums.py +++ b/music_assistant/controllers/media/albums.py @@ -215,10 +215,6 @@ class AlbumsController(MediaControllerBase[Album, Album]): if not library_album: return await self._get_provider_album_tracks(item_id, provider_instance_id_or_domain) db_items = await self.get_library_album_tracks(library_album.item_id) - # override embedded images with album thumb - if library_album.image: - for db_item in db_items: - db_item.metadata.images = library_album.metadata.images result: UniqueList[Track] = UniqueList(db_items) if in_library_only: # return in-library items only @@ -246,6 +242,10 @@ class AlbumsController(MediaControllerBase[Album, Album]): continue unique_ids.add(unique_id) provider_track.album = library_album + # always prefer album image + album_images = [library_album.image] if library_album.image else [] + track_images = provider_track.metadata.images or [] + provider_track.metadata.images = album_images + track_images result.append(provider_track) # NOTE: we need to return the results sorted on disc/track here # to ensure the correct order at playback diff --git a/music_assistant/controllers/media/base.py b/music_assistant/controllers/media/base.py index 0f6ecec8..cbfa95db 100644 --- a/music_assistant/controllers/media/base.py +++ b/music_assistant/controllers/media/base.py @@ -811,9 +811,11 @@ class MediaControllerBase(Generic[ItemCls, LibraryUpdate], metaclass=ABCMeta): if album_thumb: # copy album image to itemmapping single image db_row_dict["image"] = album_thumb - if db_row_dict.get("metadata") and db_row_dict["metadata"].get("images"): + if db_row_dict["metadata"].get("images"): db_row_dict["metadata"]["images"] = [ album_thumb, *db_row_dict["metadata"]["images"], ] + else: + db_row_dict["metadata"]["images"] = [album_thumb] return db_row_dict -- 2.34.1