From d31bba89995d683ba4e2bcc4204d2652462dad1d Mon Sep 17 00:00:00 2001 From: Broque Thomas <26755000+Nezreka@users.noreply.github.com> Date: Tue, 17 Mar 2026 13:14:08 -0700 Subject: [PATCH] Fix Deezer metadata cache returning incomplete data for track details Deezer search results (cached without release_date, track_position, isrc) were being served by get_track_details as cache hits, preventing the actual /track/{id} API call that returns complete data. This caused $year template variable to remain empty even with the discovery worker fix in place. --- core/deezer_client.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/deezer_client.py b/core/deezer_client.py index 65bf47f2..1e73fc9b 100644 --- a/core/deezer_client.py +++ b/core/deezer_client.py @@ -354,7 +354,11 @@ class DeezerClient: cache = get_metadata_cache() cached = cache.get_entity('deezer', 'track', str(track_id)) if cached and cached.get('title'): - return self._build_enhanced_track(cached) + # Search results are cached with minimal data (no release_date, track_position). + # Only use cache if it has fields that the /track/{id} endpoint provides. + if 'release_date' in cached or 'track_position' in cached or 'isrc' in cached: + return self._build_enhanced_track(cached) + # Otherwise fall through to fetch full data from API data = self._api_get(f'track/{track_id}') if not data: