From e025af62d1bc906f694a565955423ad3aa8d8da1 Mon Sep 17 00:00:00 2001 From: aditya-K2 Date: Fri, 19 May 2023 00:46:55 +0530 Subject: [PATCH] Add QueuePlaylist wrapper --- spt/add.go | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/spt/add.go b/spt/add.go index 437a9d5..c9669d4 100644 --- a/spt/add.go +++ b/spt/add.go @@ -12,11 +12,11 @@ func AddTracksToPlaylist(playlistId spotify.ID, t ...spotify.ID) error { return err } -func QueueTracks(ids ...spotify.SimpleTrack) error { +func QueueTracks(ids ...spotify.ID) error { count := 0 _ctx := ctx() - for _, v := range ids { - if err := Client.QueueSong(_ctx, v.ID); err != nil { + for _, id := range ids { + if err := Client.QueueSong(_ctx, id); err != nil { return errors.New(fmt.Sprintf("%s | Tracks Queued: %d", err.Error(), count)) } } @@ -32,7 +32,34 @@ func QueueAlbum(id spotify.ID) error { if err != nil { return err } - if err := QueueTracks(*album.Tracks...); err != nil { + + ids := []spotify.ID{} + for _, v := range *album.Tracks { + ids = append(ids, v.ID) + } + + if err := QueueTracks(ids...); err != nil { + return err + } + return nil +} + +func QueuePlaylist(id spotify.ID) error { + playlist, c := GetPlaylist(id) + if c == nil { + return (errors.New("hi!")) + } + err := <-c + if err != nil { + return err + } + + ids := []spotify.ID{} + for _, v := range *playlist.Tracks { + ids = append(ids, v.Track.ID) + } + + if err := QueueTracks(ids...); err != nil { return err } return nil