better caching
This commit is contained in:
parent
76dca2f045
commit
7f1b8cf3a8
1 changed files with 25 additions and 15 deletions
|
|
@ -14477,23 +14477,33 @@ def get_discover_release_radar():
|
||||||
curated_track_ids = database.get_curated_playlist('release_radar')
|
curated_track_ids = database.get_curated_playlist('release_radar')
|
||||||
|
|
||||||
if curated_track_ids:
|
if curated_track_ids:
|
||||||
# Use curated selection - fetch track data from discovery pool
|
# Fetch track data directly from Spotify (release radar tracks may not be in discovery pool)
|
||||||
discovery_tracks = database.get_discovery_pool_tracks(limit=5000, new_releases_only=False)
|
|
||||||
tracks_by_id = {track.spotify_track_id: track for track in discovery_tracks}
|
|
||||||
|
|
||||||
selected_tracks = []
|
selected_tracks = []
|
||||||
|
|
||||||
for track_id in curated_track_ids:
|
for track_id in curated_track_ids:
|
||||||
if track_id in tracks_by_id:
|
try:
|
||||||
track = tracks_by_id[track_id]
|
# Get track data from Spotify
|
||||||
selected_tracks.append({
|
track_data = spotify_client.get_track_details(track_id)
|
||||||
"spotify_track_id": track.spotify_track_id,
|
|
||||||
"track_name": track.track_name,
|
if track_data:
|
||||||
"artist_name": track.artist_name,
|
# Get album cover from raw_data (enhanced data doesn't include images)
|
||||||
"album_name": track.album_name,
|
album_cover = None
|
||||||
"album_cover_url": track.album_cover_url,
|
if track_data.get('raw_data') and track_data['raw_data'].get('album', {}).get('images'):
|
||||||
"duration_ms": track.duration_ms,
|
album_cover = track_data['raw_data']['album']['images'][0]['url']
|
||||||
"track_data_json": track.track_data_json
|
|
||||||
})
|
selected_tracks.append({
|
||||||
|
"spotify_track_id": track_data['id'],
|
||||||
|
"track_name": track_data['name'],
|
||||||
|
"artist_name": track_data.get('primary_artist', 'Unknown'),
|
||||||
|
"album_name": track_data['album']['name'] if track_data.get('album') else 'Unknown',
|
||||||
|
"album_cover_url": album_cover,
|
||||||
|
"duration_ms": track_data.get('duration_ms', 0),
|
||||||
|
"track_data_json": track_data.get('raw_data', track_data)
|
||||||
|
})
|
||||||
|
except Exception as track_error:
|
||||||
|
# Skip tracks that fail to fetch
|
||||||
|
print(f"Error fetching track {track_id}: {track_error}")
|
||||||
|
continue
|
||||||
|
|
||||||
return jsonify({"success": True, "tracks": selected_tracks})
|
return jsonify({"success": True, "tracks": selected_tracks})
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue