Fix JSONID type conversions for yandex-music-api-go v0.0.0-20261018072517-d0173f795d2a
CI/CD / test (push) Successful in 48s
CI/CD / build (push) Successful in 54s
CI/CD / docker (push) Successful in 2m31s

The new library version uses models.JSONID (custom string type) for ID
fields instead of plain string. Convert to string where IDs are passed
to functions expecting string or compared with string values.

Affected: client.go (GetTrackInfoWithPosition), downloader.go
(track.ID usage), monitor.go (track.ID, album.ID usage), storage.go
(album/track ID assignment).
This commit is contained in:
Mrixs committed 2026-10-18 10:39:43 +03:00
1 parent 5d32daad07
commit 4e6bef40e3
6 files changed
+23 -21

No files matched your search

+9 -9
View File
@@ -157,21 +157,21 @@ func (d *Downloader) DownloadAlbum(ctx context.Context, albumID string) []Downlo
for i, volume := range album.Volumes {
for j := range volume {
track := &volume[j]
if track.ID == "" || !track.Available {
if string(track.ID) == "" || !track.Available {
continue
}
// Get download URL (handles XML parsing and URL signing)
downloadURL, err := d.yandexClient.GetTrackDownloadURL(ctx, track.ID)
downloadURL, err := d.yandexClient.GetTrackDownloadURL(ctx, string(track.ID))
if err != nil {
results = append(results, DownloadResult{TrackID: track.ID, Success: false, Error: fmt.Errorf("get download URL: %w", err)})
results = append(results, DownloadResult{TrackID: string(track.ID), Success: false, Error: fmt.Errorf("get download URL: %w", err)})
continue
}
// Get download info for metadata
downloadInfos, err := d.yandexClient.GetTrackDownloadInfo(ctx, track.ID)
downloadInfos, err := d.yandexClient.GetTrackDownloadInfo(ctx, string(track.ID))
if err != nil {
results = append(results, DownloadResult{TrackID: track.ID, Success: false, Error: fmt.Errorf("get download info: %w", err)})
results = append(results, DownloadResult{TrackID: string(track.ID), Success: false, Error: fmt.Errorf("get download info: %w", err)})
continue
}
@@ -202,19 +202,19 @@ func (d *Downloader) DownloadAlbum(ctx context.Context, albumID string) []Downlo
// Download audio
audioData, err := d.downloadFile(ctx, downloadURL)
if err != nil {
results = append(results, DownloadResult{TrackID: track.ID, Success: false, Error: fmt.Errorf("download audio: %w", err)})
results = append(results, DownloadResult{TrackID: string(track.ID), Success: false, Error: fmt.Errorf("download audio: %w", err)})
continue
}
// Save track
if err := d.storage.SaveTrack(trackMeta, audioData, coverData); err != nil {
results = append(results, DownloadResult{TrackID: track.ID, Success: false, Error: fmt.Errorf("save track: %w", err)})
results = append(results, DownloadResult{TrackID: string(track.ID), Success: false, Error: fmt.Errorf("save track: %w", err)})
continue
}
savedMeta, _ := d.storage.GetTrackMeta(track.ID)
savedMeta, _ := d.storage.GetTrackMeta(string(track.ID))
results = append(results, DownloadResult{
TrackID: track.ID,
TrackID: string(track.ID),
AlbumID: albumID,
Success: true,
TrackMeta: savedMeta,