From aa35f60fad9633b99148a81f9dc6b836614ff8a0 Mon Sep 17 00:00:00 2001 From: zarzet Date: Wed, 21 Jan 2026 16:33:30 +0700 Subject: [PATCH] fix: fallback to index+1 for Deezer track position when API returns 0 --- go_backend/deezer.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/go_backend/deezer.go b/go_backend/deezer.go index eee179cd..311080cd 100644 --- a/go_backend/deezer.go +++ b/go_backend/deezer.go @@ -340,10 +340,16 @@ func (c *DeezerClient) GetAlbum(ctx context.Context, albumID string) (*AlbumResp albumType = "compilation" } - for _, track := range album.Tracks.Data { + for i, track := range album.Tracks.Data { trackIDStr := fmt.Sprintf("%d", track.ID) isrc := isrcMap[trackIDStr] + // Use track position from API, fallback to index+1 if not provided + trackNum := track.TrackPosition + if trackNum == 0 { + trackNum = i + 1 + } + tracks = append(tracks, AlbumTrackMetadata{ SpotifyID: fmt.Sprintf("deezer:%d", track.ID), Artists: track.Artist.Name, @@ -353,7 +359,7 @@ func (c *DeezerClient) GetAlbum(ctx context.Context, albumID string) (*AlbumResp DurationMS: track.Duration * 1000, Images: albumImage, ReleaseDate: album.ReleaseDate, - TrackNumber: track.TrackPosition, + TrackNumber: trackNum, TotalTracks: album.NbTracks, DiscNumber: track.DiskNumber, ExternalURL: track.Link,