Fix JSONID type conversions for yandex-music-api-go v0.0.0-20261018072517-d0173f795d2a
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:
1 parent
5d32daad07
commit
4e6bef40e3
6 files changed
+23
-21
No files matched your search
@@ -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,
|
||||
|
||||
Reference in new issue
Block a user