fix listenbrainz wishlist comp
This commit is contained in:
parent
e8f9803bd5
commit
28d8dbf5e0
2 changed files with 31 additions and 10 deletions
|
|
@ -9373,22 +9373,33 @@ def _ensure_spotify_track_format(track_info):
|
|||
else:
|
||||
artists_list.append({'name': 'Unknown Artist'})
|
||||
|
||||
# Build album object with images if available
|
||||
album_data = track_info.get('album', {})
|
||||
if isinstance(album_data, dict):
|
||||
album = {
|
||||
'name': album_data.get('name', 'Unknown Album')
|
||||
}
|
||||
# Preserve album images if present (important for ListenBrainz tracks)
|
||||
if 'images' in album_data:
|
||||
album['images'] = album_data['images']
|
||||
else:
|
||||
album = {
|
||||
'name': str(album_data) if album_data else 'Unknown Album'
|
||||
}
|
||||
|
||||
# Build proper Spotify track structure
|
||||
spotify_track = {
|
||||
'id': track_info.get('id', f"webui_{hash(str(track_info))}"),
|
||||
'name': track_info.get('name', 'Unknown Track'),
|
||||
'artists': artists_list, # Proper Spotify format
|
||||
'album': {
|
||||
'name': track_info.get('album', {}).get('name') if isinstance(track_info.get('album'), dict)
|
||||
else track_info.get('album', 'Unknown Album')
|
||||
},
|
||||
'album': album,
|
||||
'duration_ms': track_info.get('duration_ms', 0),
|
||||
'preview_url': track_info.get('preview_url'),
|
||||
'external_urls': track_info.get('external_urls', {}),
|
||||
'popularity': track_info.get('popularity', 0),
|
||||
'source': 'webui_modal' # Mark as coming from webui
|
||||
}
|
||||
|
||||
|
||||
return spotify_track
|
||||
|
||||
def _process_failed_tracks_to_wishlist_exact(batch_id):
|
||||
|
|
@ -9672,7 +9683,17 @@ def _on_download_completed(batch_id, task_id, success=True):
|
|||
|
||||
# Add activity for successful download
|
||||
track_name = track_info.get('name', 'Unknown Track')
|
||||
artist_name = track_info.get('artists', [{}])[0].get('name', 'Unknown Artist') if track_info.get('artists') else 'Unknown Artist'
|
||||
|
||||
# Safely extract artist name (handle both list and string formats)
|
||||
artists = track_info.get('artists', [])
|
||||
if isinstance(artists, list) and len(artists) > 0:
|
||||
first_artist = artists[0]
|
||||
artist_name = first_artist.get('name', 'Unknown Artist') if isinstance(first_artist, dict) else str(first_artist)
|
||||
elif isinstance(artists, str):
|
||||
artist_name = artists
|
||||
else:
|
||||
artist_name = 'Unknown Artist'
|
||||
|
||||
add_activity_item("📥", "Download Complete", f"'{track_name}' by {artist_name}", "Now")
|
||||
|
||||
# Try to remove from wishlist using track info
|
||||
|
|
|
|||
|
|
@ -28663,12 +28663,12 @@ async function openListenBrainzPlaylist(playlistMbid, playlistName) {
|
|||
|
||||
// Convert to Spotify-like format for compatibility with download modal
|
||||
const spotifyTracks = tracks.map(track => ({
|
||||
id: track.recording_mbid || '',
|
||||
id: track.recording_mbid || `listenbrainz_${track.title}_${track.creator}`.replace(/[^a-z0-9]/gi, '_'), // Generate ID if missing
|
||||
name: track.title || 'Unknown',
|
||||
artists: [{name: cleanArtistName(track.creator || 'Unknown')}], // Proper Spotify format
|
||||
album: {
|
||||
name: track.album || 'Unknown Album',
|
||||
images: []
|
||||
images: track.album_cover_url ? [{url: track.album_cover_url}] : []
|
||||
},
|
||||
duration_ms: track.duration_ms || 0,
|
||||
listenbrainz_metadata: track.additional_metadata
|
||||
|
|
@ -30272,7 +30272,7 @@ async function rehydrateDiscoverDownloadModal(playlistId) {
|
|||
|
||||
// Convert to Spotify format
|
||||
const spotifyTracks = tracks.map(track => ({
|
||||
id: null,
|
||||
id: track.mbid || `listenbrainz_${track.track_name}_${track.artist_name}`.replace(/[^a-z0-9]/gi, '_'), // Generate ID if missing
|
||||
name: track.track_name,
|
||||
artists: [{name: cleanArtistName(track.artist_name)}], // Proper Spotify format
|
||||
album: {
|
||||
|
|
@ -30345,7 +30345,7 @@ async function rehydrateDiscoverDownloadModal(playlistId) {
|
|||
id: track.id,
|
||||
name: track.name,
|
||||
artists: artistsArray,
|
||||
album: track.album || 'Unknown Album',
|
||||
album: track.album || {name: 'Unknown Album', images: []},
|
||||
duration_ms: track.duration_ms || 0,
|
||||
external_urls: track.external_urls || {}
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in a new issue