From 1076cb816f97c2af2c8f9a43f9aee0b0a58ac119 Mon Sep 17 00:00:00 2001 From: aditya-K2 Date: Sun, 17 Dec 2023 15:10:36 +0530 Subject: [PATCH] Refactor QueueSongsVisual --- ui/utils.go | 11 +++++++++++ ui/view_album.go | 17 ++++------------- ui/view_liked.go | 15 ++++----------- ui/view_playlist.go | 15 ++++----------- ui/view_recent.go | 15 ++++----------- 5 files changed, 27 insertions(+), 46 deletions(-) diff --git a/ui/utils.go b/ui/utils.go index e0952c6..44d9c22 100644 --- a/ui/utils.go +++ b/ui/utils.go @@ -71,6 +71,17 @@ func addToPlaylist(tracks []spotify.ID) { }) } +func queueSongs(tracks []spotify.ID) { + msg := SendNotificationWithChan(fmt.Sprintf("Queueing %d tracks...", len(tracks))) + go func() { + err := spt.QueueTracks(tracks...) + if err != nil { + msg <- err.Error() + } + msg <- fmt.Sprintf("Queued %d tracks!", len(tracks)) + }() +} + func fileName(a spotify.SimpleAlbum) string { return fmt.Sprintf(filepath.Join(cfg.CacheDir, "%s.jpg"), a.ID) } diff --git a/ui/view_album.go b/ui/view_album.go index 7a5ca67..d02f3fe 100644 --- a/ui/view_album.go +++ b/ui/view_album.go @@ -1,8 +1,6 @@ package ui import ( - "fmt" - "github.com/aditya-K2/gspt/spt" "github.com/gdamore/tcell/v2" "github.com/zmb3/spotify/v2" @@ -76,17 +74,10 @@ func (a *AlbumView) AddToPlaylistVisual(start, end int, e *tcell.EventKey) *tcel func (a *AlbumView) QueueSongsVisual(start, end int, e *tcell.EventKey) *tcell.EventKey { tracks := (*(*a.currentFullAlbum).Tracks)[start : end+1] - msg := SendNotificationWithChan(fmt.Sprintf("Queueing %d tracks...", len(tracks))) - go func() { - err := spt.QueueTracks(Map(tracks, - func(s spotify.SimpleTrack) spotify.ID { - return s.ID - })...) - if err != nil { - msg <- err.Error() - } - msg <- fmt.Sprintf("Queued %d tracks!", len(tracks)) - }() + queueSongs(Map(tracks, + func(s spotify.SimpleTrack) spotify.ID { + return s.ID + })) return nil } diff --git a/ui/view_liked.go b/ui/view_liked.go index d7ceaf0..5af64d8 100644 --- a/ui/view_liked.go +++ b/ui/view_liked.go @@ -62,17 +62,10 @@ func (l *LikedSongsView) AddToPlaylistVisual(start, end int, e *tcell.EventKey) func (l *LikedSongsView) QueueSongsVisual(start, end int, e *tcell.EventKey) *tcell.EventKey { tracks := (*l.likedSongs)[start : end+1] - msg := SendNotificationWithChan(fmt.Sprintf("Queueing %d tracks...", len(tracks))) - go func() { - err := spt.QueueTracks(Map(tracks, - func(s spotify.SavedTrack) spotify.ID { - return s.ID - })...) - if err != nil { - msg <- err.Error() - } - msg <- fmt.Sprintf("Queued %d tracks!", len(tracks)) - }() + queueSongs(Map(tracks, + func(s spotify.SavedTrack) spotify.ID { + return s.ID + })) return nil } diff --git a/ui/view_playlist.go b/ui/view_playlist.go index dc40a95..c2b8f6d 100644 --- a/ui/view_playlist.go +++ b/ui/view_playlist.go @@ -74,17 +74,10 @@ func (p *PlaylistView) AddToPlaylistVisual(start, end int, e *tcell.EventKey) *t func (p *PlaylistView) QueueSongsVisual(start, end int, e *tcell.EventKey) *tcell.EventKey { tracks := (*(*p.currentUserFullPlaylist).Tracks)[start : end+1] - msg := SendNotificationWithChan(fmt.Sprintf("Queueing %d tracks...", len(tracks))) - go func() { - err := spt.QueueTracks(Map(tracks, - func(s spotify.PlaylistTrack) spotify.ID { - return s.Track.ID - })...) - if err != nil { - msg <- err.Error() - } - msg <- fmt.Sprintf("Queued %d tracks!", len(tracks)) - }() + queueSongs(Map(tracks, + func(s spotify.PlaylistTrack) spotify.ID { + return s.Track.ID + })) return nil } diff --git a/ui/view_recent.go b/ui/view_recent.go index 92c2d7a..ab191ba 100644 --- a/ui/view_recent.go +++ b/ui/view_recent.go @@ -51,17 +51,10 @@ func (r *RecentlyPlayedView) AddToPlaylistVisual(start, end int, e *tcell.EventK func (r *RecentlyPlayedView) QueueSongsVisual(start, end int, e *tcell.EventKey) *tcell.EventKey { tracks := r.recentlyPlayed[start : end+1] - msg := SendNotificationWithChan(fmt.Sprintf("Queueing %d tracks...", len(tracks))) - go func() { - err := spt.QueueTracks(Map(tracks, - func(s spotify.RecentlyPlayedItem) spotify.ID { - return s.Track.ID - })...) - if err != nil { - msg <- err.Error() - } - msg <- fmt.Sprintf("Queued %d tracks!", len(tracks)) - }() + queueSongs(Map(tracks, + func(s spotify.RecentlyPlayedItem) spotify.ID { + return s.Track.ID + })) return nil }