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 +}