diff --git a/go.mod b/go.mod index 6b890e3..a7a2840 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module ym-dl go 1.27.2 require ( - gitea.mrixs.me/Mrixs/yandex-music-api-go v0.0.0-20261014200451-02a6dabcfbea + gitea.mrixs.me/Mrixs/yandex-music-api-go v0.0.0-20261018055743-0456ca0665a6 github.com/bogem/id3v2 v1.2.0 gopkg.in/yaml.v3 v3.0.1 modernc.org/sqlite v1.60.1 diff --git a/go.sum b/go.sum index 7ef2ae6..301d9f9 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ gitea.mrixs.me/Mrixs/yandex-music-api-go v0.0.0-20261014200451-02a6dabcfbea h1:JOsFlBq/AdrAeyus0+KNSiISXodjyejRb6z5VOgk+n8= gitea.mrixs.me/Mrixs/yandex-music-api-go v0.0.0-20261014200451-02a6dabcfbea/go.mod h1:L+GcqPRZiu0Srq6+YxfdLztltXV8DcxKjNUOXWJvR9o= +gitea.mrixs.me/Mrixs/yandex-music-api-go v0.0.0-20261018055743-0456ca0665a6 h1:3LRfiTAVWsFG6lzkQV7VhUx+uOie/AYk8uPJQISotaQ= +gitea.mrixs.me/Mrixs/yandex-music-api-go v0.0.0-20261018055743-0456ca0665a6/go.mod h1:L+GcqPRZiu0Srq6+YxfdLztltXV8DcxKjNUOXWJvR9o= github.com/bogem/id3v2 v1.2.0 h1:hKDF+F1gOgQ5r1QmBCEZUk4MveJbKxCeIDSBU7CQ4oI= github.com/bogem/id3v2 v1.2.0/go.mod h1:t78PK5AQ56Q47kizpYiV6gtjj3jfxlz87oFpty8DYs8= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= diff --git a/internal/monitor/monitor.go b/internal/monitor/monitor.go index 102e39c..b9b283d 100644 --- a/internal/monitor/monitor.go +++ b/internal/monitor/monitor.go @@ -136,7 +136,7 @@ func (m *Monitor) checkArtist(ctx context.Context, artistID int) { // checkArtistTracks checks for new tracks from an artist func (m *Monitor) checkArtistTracks(ctx context.Context, artistID int, artistName string) { - page := 1 + page := 0 pageSize := 50 for { @@ -174,7 +174,7 @@ func (m *Monitor) checkArtistTracks(ctx context.Context, artistID int, artistNam // checkArtistAlbums checks for new albums from an artist func (m *Monitor) checkArtistAlbums(ctx context.Context, artistID int, artistName string) { - page := 1 + page := 0 pageSize := 50 for { diff --git a/internal/yandex/client.go b/internal/yandex/client.go index 5a7a672..d2cbfb8 100644 --- a/internal/yandex/client.go +++ b/internal/yandex/client.go @@ -72,12 +72,28 @@ func NewYandexClient(cfg *config.YandexConfig, debug bool) (*YandexClient, error // GetArtistTracks fetches tracks for an artist func (c *YandexClient) GetArtistTracks(ctx context.Context, artistID int, page, pageSize int) ([]*yandexmusic.Track, error) { - return c.client.GetArtistTracks(ctx, fmt.Sprintf("%d", artistID), page, pageSize) + result, err := c.client.GetArtistTracks(ctx, fmt.Sprintf("%d", artistID), page, pageSize) + if err != nil { + return nil, err + } + tracks := make([]*yandexmusic.Track, 0, len(result.Tracks)) + for i := range result.Tracks { + tracks = append(tracks, &result.Tracks[i]) + } + return tracks, nil } // GetArtistAlbums fetches albums for an artist func (c *YandexClient) GetArtistAlbums(ctx context.Context, artistID int, page, pageSize int) ([]*yandexmusic.Album, error) { - return c.client.GetArtistAlbums(ctx, fmt.Sprintf("%d", artistID), page, pageSize) + result, err := c.client.GetArtistAlbums(ctx, fmt.Sprintf("%d", artistID), page, pageSize) + if err != nil { + return nil, err + } + albums := make([]*yandexmusic.Album, 0, len(result.Albums)) + for i := range result.Albums { + albums = append(albums, &result.Albums[i]) + } + return albums, nil } // GetAlbumWithTracks fetches an album with its tracks