Documentation
¶
Index ¶
- Constants
- func IsSubsonicStreamURL(path string) bool
- type Album
- type Artist
- type NavidromeClient
- func (c *NavidromeClient) AlbumList(sortType string, offset, size int) ([]Album, error)
- func (c *NavidromeClient) AlbumSortTypes() []provider.SortType
- func (c *NavidromeClient) AlbumTracks(albumID string) ([]playlist.Track, error)
- func (c *NavidromeClient) ArtistAlbums(artistID string) ([]Album, error)
- func (c *NavidromeClient) Artists() ([]Artist, error)
- func (c *NavidromeClient) CanReportPlayback(track playlist.Track) bool
- func (c *NavidromeClient) DefaultAlbumSort() string
- func (c *NavidromeClient) Name() string
- func (c *NavidromeClient) Ping() error
- func (c *NavidromeClient) Playlists() ([]playlist.PlaylistInfo, error)
- func (c *NavidromeClient) Refresh()
- func (c *NavidromeClient) ReportNowPlaying(track playlist.Track, _ time.Duration, _ bool)
- func (c *NavidromeClient) ReportScrobble(track playlist.Track, _, _ time.Duration, _ bool)
- func (c *NavidromeClient) SaveAlbumSort(sortType string) error
- func (c *NavidromeClient) SearchTracks(_ context.Context, query string, limit int) ([]playlist.Track, error)
- func (c *NavidromeClient) Tracks(id string) ([]playlist.Track, error)
Constants ¶
const ( SortAlphabeticalByName = "alphabeticalByName" SortAlphabeticalByArtist = "alphabeticalByArtist" SortNewest = "newest" SortRecent = "recent" SortFrequent = "frequent" SortStarred = "starred" SortByYear = "byYear" SortByGenre = "byGenre" )
Sort type constants for album browsing (Subsonic getAlbumList2 "type" parameter).
Variables ¶
This section is empty.
Functions ¶
func IsSubsonicStreamURL ¶
IsSubsonicStreamURL reports whether path is a Subsonic stream or download endpoint. Used by the player to select the buffered download pipeline.
Types ¶
type Artist ¶
type Artist = provider.ArtistInfo
Artist is a Navidrome/Subsonic artist — aliased to the provider type.
type NavidromeClient ¶
type NavidromeClient struct {
// contains filtered or unexported fields
}
NavidromeClient implements playlist.Provider for a Navidrome/Subsonic server.
func New ¶
func New(serverURL, user, password string) *NavidromeClient
New creates a NavidromeClient with the given server credentials.
func NewFromConfig ¶
func NewFromConfig(cfg config.NavidromeConfig) *NavidromeClient
NewFromConfig creates a NavidromeClient from a config.NavidromeConfig value. Returns nil if any of the required fields (URL, User, Password) are empty.
func NewFromEnv ¶
func NewFromEnv() *NavidromeClient
NewFromEnv creates a NavidromeClient from NAVIDROME_URL, NAVIDROME_USER, and NAVIDROME_PASS environment variables. Returns nil if any are unset.
func (*NavidromeClient) AlbumList ¶
func (c *NavidromeClient) AlbumList(sortType string, offset, size int) ([]Album, error)
AlbumList returns a page of albums sorted by sortType. offset and size control pagination; size should be ≤ 500.
func (*NavidromeClient) AlbumSortTypes ¶
func (c *NavidromeClient) AlbumSortTypes() []provider.SortType
func (*NavidromeClient) AlbumTracks ¶
func (c *NavidromeClient) AlbumTracks(albumID string) ([]playlist.Track, error)
AlbumTracks returns all tracks for the given album ID with full metadata.
func (*NavidromeClient) ArtistAlbums ¶
func (c *NavidromeClient) ArtistAlbums(artistID string) ([]Album, error)
ArtistAlbums returns all albums for the given artist ID.
func (*NavidromeClient) Artists ¶
func (c *NavidromeClient) Artists() ([]Artist, error)
Artists returns all artists from the server, flattening the index structure.
func (*NavidromeClient) CanReportPlayback ¶
func (c *NavidromeClient) CanReportPlayback(track playlist.Track) bool
func (*NavidromeClient) DefaultAlbumSort ¶
func (c *NavidromeClient) DefaultAlbumSort() string
func (*NavidromeClient) Name ¶
func (c *NavidromeClient) Name() string
func (*NavidromeClient) Ping ¶
func (c *NavidromeClient) Ping() error
Ping verifies connectivity and credentials via the Subsonic ping.view endpoint. Returns a descriptive error on auth or network failure.
func (*NavidromeClient) Playlists ¶
func (c *NavidromeClient) Playlists() ([]playlist.PlaylistInfo, error)
func (*NavidromeClient) Refresh ¶
func (c *NavidromeClient) Refresh()
Refresh clears cached playlist and track data so the next Playlists/Tracks call re-fetches from the server. Implements playlist.Refresher.
func (*NavidromeClient) ReportNowPlaying ¶
func (*NavidromeClient) ReportScrobble ¶
func (*NavidromeClient) SaveAlbumSort ¶
func (c *NavidromeClient) SaveAlbumSort(sortType string) error
func (*NavidromeClient) SearchTracks ¶
func (c *NavidromeClient) SearchTracks(_ context.Context, query string, limit int) ([]playlist.Track, error)
SearchTracks searches the Subsonic library for songs matching query using the search3.view endpoint. Implements provider.Searcher.