diff --git a/main.go b/main.go index 982d3a3..0979126 100644 --- a/main.go +++ b/main.go @@ -146,6 +146,11 @@ func Verbose(msg string) { } } +func isNil(a interface{}) bool { + defer func() { recover() }() + return a == nil || reflect.ValueOf(a).IsNil() +} + // dj variable declaration. This is done outside of main() to allow global use. var dj = mumbledj{ keepAlive: make(chan bool), diff --git a/service_youtube.go b/service_youtube.go index 5f53800..0303488 100644 --- a/service_youtube.go +++ b/service_youtube.go @@ -110,7 +110,7 @@ type YouTubeSong struct { // NewYouTubeSong gathers the metadata for a song extracted from a YouTube video, and returns // the song. -func NewYouTubeSong(user, id, offset string, list *YouTubePlaylist) (*YouTubeSong, error) { +func NewYouTubeSong(user, id, offset string, playlist *YouTubePlaylist) (*YouTubeSong, error) { var apiResponse *jsonq.JsonQuery var err error url := fmt.Sprintf("https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails&id=%s&key=%s", @@ -193,7 +193,7 @@ func NewYouTubeSong(user, id, offset string, list *YouTubePlaylist) (*YouTubeSon duration: durationString, thumbnail: thumbnail, skippers: make([]string, 0), - playlist: &list, + playlist: playlist, dontSkip: false, } dj.queue.AddSong(song) @@ -236,7 +236,7 @@ func (s *YouTubeSong) Play() { if err := dj.audioStream.Play(); err != nil { panic(err) } else { - if s.Playlist() == nil { + if s.Playlist() == &nil { message := `