Fix missing album art for non-Spotify sources + animate Downloads nav icon

- watchlist_scanner: fall back to album.image_url when album object has no
  images list (affects MusicBrainz CAA URLs, iTunes, Deezer — all use
  image_url on the Album dataclass, not the Spotify-style images array)
- Pulse Downloads nav icon while active downloads are in progress, same
  pattern as watchlist scan animation
This commit is contained in:
Broque Thomas 2026-05-18 20:24:13 -07:00
parent 8dd39dee65
commit 19307630d1
3 changed files with 19 additions and 0 deletions

View file

@ -2233,6 +2233,8 @@ class WatchlistScanner:
album_id = album.id
album_release_date = album.release_date
album_images = album.images if hasattr(album, 'images') else []
if not album_images and hasattr(album, 'image_url') and album.image_url:
album_images = [{'url': album.image_url}]
album_type = album.album_type if hasattr(album, 'album_type') else 'album'
total_tracks = album.total_tracks if hasattr(album, 'total_tracks') else 0
album_artists = album.artists if hasattr(album, 'artists') else []

View file

@ -2248,6 +2248,10 @@ function _updateDlNavBadge(count) {
badge.classList.add('hidden');
}
}
const dlBtn = document.querySelector('.nav-button[data-page="active-downloads"]');
if (dlBtn) {
dlBtn.classList.toggle('nav-downloads-active', count > 0);
}
}
function _adlRender() {

View file

@ -449,6 +449,19 @@ body {
color: rgba(var(--accent-rgb), 0.7);
}
.nav-button.nav-downloads-active .nav-icon {
animation: watchlist-scan-glow 1.2s ease-in-out infinite;
}
.nav-button.nav-downloads-active .nav-svg {
animation: nav-downloads-svg 1.2s ease-in-out infinite;
}
@keyframes nav-downloads-svg {
0%, 100% { opacity: 0.7; transform: translateY(0); }
50% { opacity: 1; transform: translateY(1px); filter: drop-shadow(0 0 3px rgba(var(--accent-rgb), 0.8)); }
}
.nav-button.nav-watchlist-scanning .nav-icon {
animation: watchlist-scan-glow 1.6s ease-in-out infinite;
}