diff --git a/core/seasonal_discovery.py b/core/seasonal_discovery.py index 16ede399..c14ee8e2 100644 --- a/core/seasonal_discovery.py +++ b/core/seasonal_discovery.py @@ -371,10 +371,13 @@ class SeasonalDiscoveryService: config = SEASONAL_CONFIG[season_key] keywords = config['keywords'] - # itunes stores IDs in itunes_track_id; all other sources - # (spotify, deezer, discogs, hydrabase, etc.) use spotify_track_id - # as the generic ID column. - track_id_col = 'itunes_track_id' if source == 'itunes' else 'spotify_track_id' + # Each source stores IDs in its own column + if source == 'itunes': + track_id_col = 'itunes_track_id' + elif source == 'deezer': + track_id_col = 'deezer_track_id' + else: + track_id_col = 'spotify_track_id' seasonal_tracks = [] diff --git a/web_server.py b/web_server.py index e8497605..c835e2be 100644 --- a/web_server.py +++ b/web_server.py @@ -44263,7 +44263,7 @@ def get_discover_synced_playlists(): try: with database._get_connection() as conn: pool_count = conn.execute( - "SELECT COUNT(*) FROM discovery_pool WHERE source = ?", (active_source,) + "SELECT COUNT(*) FROM discovery_pool WHERE source = ? AND profile_id = ?", (active_source, pid) ).fetchone()[0] except Exception: pool_count = 0 diff --git a/webui/static/init.js b/webui/static/init.js index d46ac6d8..ef0f05d6 100644 --- a/webui/static/init.js +++ b/webui/static/init.js @@ -2250,6 +2250,8 @@ async function loadPageData(pageId) { delete discoverSyncPollers[key]; } } + // Reset so discover tab refetches on next visit + discoverSyncPlaylistsLoaded = false; } switch (pageId) { case 'dashboard': diff --git a/webui/static/style.css b/webui/static/style.css index 6323de6f..250f54af 100644 --- a/webui/static/style.css +++ b/webui/static/style.css @@ -59664,7 +59664,6 @@ body[data-artist-source="source"] #artist-detail-page #library-artist-enhance-bt .discover-sync-card-meta { display: none; -} color: rgba(255, 255, 255, 0.4); }