diff --git a/core/watchlist_scanner.py b/core/watchlist_scanner.py index 6f9cbfb5..9fdb967b 100644 --- a/core/watchlist_scanner.py +++ b/core/watchlist_scanner.py @@ -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 [] diff --git a/webui/static/pages-extra.js b/webui/static/pages-extra.js index 2329fc3b..b794ddef 100644 --- a/webui/static/pages-extra.js +++ b/webui/static/pages-extra.js @@ -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() { diff --git a/webui/static/style.css b/webui/static/style.css index b062f60f..a17d2abd 100644 --- a/webui/static/style.css +++ b/webui/static/style.css @@ -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; }