From a508206264c2c1a7ab3864340f32c2a3e9c7524f Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Wed, 8 Feb 2023 17:18:14 -0800 Subject: [PATCH] refactor album iterator + add fn to get user owned playlsits --- backend/albumiterator.go | 16 ---------------- backend/librarymanager.go | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 16 deletions(-) create mode 100644 backend/librarymanager.go diff --git a/backend/albumiterator.go b/backend/albumiterator.go index 9b163f3..9f3d2bf 100644 --- a/backend/albumiterator.go +++ b/backend/albumiterator.go @@ -7,22 +7,6 @@ import ( subsonic "github.com/dweymouth/go-subsonic" ) -type AlbumIterator interface { - Next() *subsonic.AlbumID3 -} - -type LibraryManager struct { - PreCacheCoverFn func(string) - - s *ServerManager -} - -func NewLibraryManager(s *ServerManager) *LibraryManager { - return &LibraryManager{ - s: s, - } -} - type AlbumSortOrder string const ( diff --git a/backend/librarymanager.go b/backend/librarymanager.go new file mode 100644 index 0000000..e02e6ed --- /dev/null +++ b/backend/librarymanager.go @@ -0,0 +1,35 @@ +package backend + +import ( + subsonic "github.com/dweymouth/go-subsonic" +) + +type AlbumIterator interface { + Next() *subsonic.AlbumID3 +} + +type LibraryManager struct { + PreCacheCoverFn func(string) + + s *ServerManager +} + +func NewLibraryManager(s *ServerManager) *LibraryManager { + return &LibraryManager{ + s: s, + } +} + +func (l *LibraryManager) GetUserOwnedPlaylists() ([]*subsonic.Playlist, error) { + pl, err := l.s.Server.GetPlaylists(nil) + userPl := make([]*subsonic.Playlist, 0) + if err != nil { + return nil, err + } + for _, p := range pl { + if p.Owner == l.s.Server.User { + userPl = append(userPl, p) + } + } + return userPl, nil +}