diff --git a/web_server.py b/web_server.py index cad9f2b0..54141a02 100644 --- a/web_server.py +++ b/web_server.py @@ -36572,6 +36572,7 @@ def get_watchlist_artists(): "image_url": artist.image_url, # Cached during watchlist scans "itunes_artist_id": artist.itunes_artist_id, # For iTunes-only artists "deezer_artist_id": getattr(artist, 'deezer_artist_id', None), + "discogs_artist_id": getattr(artist, 'discogs_artist_id', None), "include_albums": artist.include_albums, "include_eps": artist.include_eps, "include_singles": artist.include_singles, @@ -37531,10 +37532,10 @@ def watchlist_artist_config(artist_id): include_live, include_remixes, include_acoustic, include_compilations, artist_name, image_url, spotify_artist_id, itunes_artist_id, last_scan_timestamp, date_added, include_instrumentals, deezer_artist_id, - lookback_days + lookback_days, discogs_artist_id FROM watchlist_artists - WHERE spotify_artist_id = ? OR itunes_artist_id = ? OR deezer_artist_id = ? - """, (artist_id, artist_id, artist_id)) + WHERE spotify_artist_id = ? OR itunes_artist_id = ? OR deezer_artist_id = ? OR discogs_artist_id = ? + """, (artist_id, artist_id, artist_id, artist_id)) result = cursor.fetchone() conn.close() @@ -37546,6 +37547,7 @@ def watchlist_artist_config(artist_id): spotify_id = result[9] # spotify_artist_id from query itunes_id = result[10] # itunes_artist_id from query deezer_id = result[14] # deezer_artist_id from query + discogs_id = result[16] # discogs_artist_id from query # Get artist info from Spotify (only for Spotify artists) artist_info = None @@ -37644,6 +37646,7 @@ def watchlist_artist_config(artist_id): "spotify_artist_id": spotify_id, "itunes_artist_id": itunes_id, "deezer_artist_id": deezer_id, + "discogs_artist_id": discogs_id, "watchlist_name": result[7], # Original stored watchlist artist name }) diff --git a/webui/static/script.js b/webui/static/script.js index a6324a41..024d4f53 100644 --- a/webui/static/script.js +++ b/webui/static/script.js @@ -38781,6 +38781,7 @@ async function showWatchlistModal() { if (artist.spotify_artist_id) sourceBadges.push('Spotify'); if (artist.itunes_artist_id) sourceBadges.push('iTunes'); if (artist.deezer_artist_id) sourceBadges.push('Deezer'); + if (artist.discogs_artist_id) sourceBadges.push('Discogs'); const artistPrimaryId = artist.spotify_artist_id || artist.itunes_artist_id || artist.deezer_artist_id; return `
Deezer`; } + if (hasDiscogs) { + html += `Discogs`; + } html += `
`; // Show mismatch warning if linked name differs from watchlist name @@ -39135,10 +39140,10 @@ async function openWatchlistArtistConfigModal(artistId, artistName) { return; } - const { config, artist, spotify_artist_id, itunes_artist_id, deezer_artist_id, watchlist_name } = data; + const { config, artist, spotify_artist_id, itunes_artist_id, deezer_artist_id, discogs_artist_id, watchlist_name } = data; // Populate linked provider section (use DB watchlist_name for mismatch comparison) - _populateLinkedProviderSection(artistId, watchlist_name || artistName, spotify_artist_id, itunes_artist_id, artist, deezer_artist_id); + _populateLinkedProviderSection(artistId, watchlist_name || artistName, spotify_artist_id, itunes_artist_id, artist, deezer_artist_id, discogs_artist_id); // Check if global override is active let globalOverrideActive = false; diff --git a/webui/static/style.css b/webui/static/style.css index 0dd2f0f6..4a56bbf7 100644 --- a/webui/static/style.css +++ b/webui/static/style.css @@ -15244,6 +15244,11 @@ body.helper-mode-active #dashboard-activity-feed:hover { color: #a265e6; } +.watchlist-source-discogs { + background: rgba(212, 165, 116, 0.15); + color: #D4A574; +} + .watchlist-card-pills { position: relative; z-index: 2; @@ -17040,6 +17045,12 @@ body.helper-mode-active #dashboard-activity-feed:hover { border: 1px solid rgba(162, 56, 255, 0.3); } +.watchlist-provider-badge.discogs { + background: rgba(212, 165, 116, 0.15); + color: #D4A574; + border: 1px solid rgba(212, 165, 116, 0.3); +} + .watchlist-linked-mismatch-warning { margin-top: 6px; font-size: 12px;