From: Marcel van der Veldt Date: Mon, 2 May 2022 06:14:30 +0000 (+0200) Subject: Fix KeyError when restoring queue from cache (#276) X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=d6cd9f0a09d26ebad2a275af0491c55d080e6d19;p=music-assistant-server.git Fix KeyError when restoring queue from cache (#276) --- diff --git a/music_assistant/controllers/music/tracks.py b/music_assistant/controllers/music/tracks.py index 493a51c8..e06aae69 100644 --- a/music_assistant/controllers/music/tracks.py +++ b/music_assistant/controllers/music/tracks.py @@ -136,8 +136,9 @@ class TracksController(MediaControllerBase[Track]): track.sort_name = create_sort_name(track.name) cur_item = None async with self.mass.database.get_db() as _db: - if track.album and not isinstance(track.album, ItemMapping): - track.album = ItemMapping.from_item( + track_album = track.album + if track_album and not isinstance(track.album, ItemMapping): + track_album = ItemMapping.from_item( await self.get_db_item_by_prov_id( track.album.provider, track.album.item_id, db=_db ) @@ -175,6 +176,7 @@ class TracksController(MediaControllerBase[Track]): { **track.to_db_row(), "artists": json_serializer(track_artists), + "album": json_serializer(track_album), }, db=_db, ) diff --git a/music_assistant/models/player_queue.py b/music_assistant/models/player_queue.py index 00ca6380..44680414 100644 --- a/music_assistant/models/player_queue.py +++ b/music_assistant/models/player_queue.py @@ -52,6 +52,13 @@ class QueueItem(DataClassDictMixin): if not self.name: self.name = self.uri + @classmethod + def __pre_deserialize__(cls, d: Dict[Any, Any]) -> Dict[Any, Any]: + """Run actions before serialization.""" + # pylint: disable=invalid-name + d.pop("streamdetails", None) + return d + @classmethod def from_media_item(cls, media_item: "Track" | "Radio"): """Construct QueueItem from track/radio item."""