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
)
{
**track.to_db_row(),
"artists": json_serializer(track_artists),
+ "album": json_serializer(track_album),
},
db=_db,
)
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."""