From 5489af26471e081f71098e1b8ba04d8faf289d28 Mon Sep 17 00:00:00 2001 From: Broque Thomas <26755000+Nezreka@users.noreply.github.com> Date: Wed, 18 Mar 2026 17:57:33 -0700 Subject: [PATCH] Add defensive album data repair in wishlist add_to_wishlist If album info is missing, not a dict, or named "Unknown Album", it gets repaired using the track name as fallback instead of storing junk display data. --- database/music_database.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/database/music_database.py b/database/music_database.py index d7627287..f1393a29 100644 --- a/database/music_database.py +++ b/database/music_database.py @@ -5272,6 +5272,15 @@ class MusicDatabase: else: artist_name = 'Unknown Artist' + # Ensure album is a proper dict — repair if needed so display doesn't break + album = spotify_track_data.get('album') + if not album or not isinstance(album, dict): + spotify_track_data['album'] = {'name': track_name, 'images': []} + logger.info(f"Wishlist add: no album info for '{track_name}', using track name as fallback") + elif not album.get('name') or album.get('name') in ('Unknown Album', ''): + album['name'] = track_name + logger.info(f"Wishlist add: missing album name for '{track_name}', using track name as fallback") + # Check for duplicates by track name + artist (not just Spotify ID) # This prevents adding the same track multiple times with different IDs or edge cases cursor.execute("""