client

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 4, 2025 License: AGPL-3.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AddPlaylistOpt

type AddPlaylistOpt struct {
	Title       string `json:"Title" validate:"required,min=2"`
	Description string `json:"Description"`
}

type AddStreamingOpt

type AddStreamingOpt struct {
	ID string `json:"ID" validate:"required"`
}

type AddTrackOpt

type AddTrackOpt typedID

type Album

type Album struct {
	ID

	Title    string
	Release  *time.Time
	Added    time.Time
	ImageURL string
	Artists  []Artist
}

type AlbumDisc

type AlbumDisc struct {
	Tracks []Track
}

type AlbumFull

type AlbumFull struct {
	Album Album
	Discs []AlbumDisc
}

type AlbumSource

type AlbumSource struct {
	AlbumRef LookupOpt `json:"AlbumRef" validate:"required"`
	Disc     int       `json:"Disc" validate:"gte=0"`
	From     int       `json:"From" validate:"gte=0"`
	Limit    int       `json:"Limit" validate:"gte=0"`
}

type Artist

type Artist struct {
	ID

	Title    string
	ImageURL *string
	Added    time.Time
}

type ArtistFull

type ArtistFull struct {
	Artist        Artist
	PopularTracks []Track
	InLibrary     []Album
	Albums        []Album
	SingleAndEPs  []Album
	Appearances   []Album
}

type EnqueueOpt

type EnqueueOpt struct {
	Clear    bool            `json:"Clear" validate:"required"`
	Position InsertPosition  `json:"Position" validate:"required"`
	Source   Source          `json:"Source" validate:"required"`
	Album    AlbumSource     `json:"Album" validate:"required_if=Source album,omitempty"`
	Playlist PlaylistSource  `json:"Playlist" validate:"required_if=Source playlist,omitempty"`
	Popular  PopularSource   `json:"Popular" validate:"required_if=Source top,omitempty"`
	Row      PageEntrySource `json:"Row" validate:"required_if=Source row,omitempty"`
}

type Entry

type Entry struct {
	Title     string
	Type      EntryType
	Albums    []Album
	Playlists []Playlist
	Tracks    []Track
}

type EntryType

type EntryType string
const (
	AlbumsEntry    EntryType = "albums"
	PlaylistsEntry EntryType = "playlists"
	TracksEntry    EntryType = "tracks"
)

type GetStreamOpt

type GetStreamOpt typedID

type ID

type ID struct {
	InLibrary   bool
	LibID       uuid.UUID
	StreamingID string
}

type IDType

type IDType string
var (
	Library   IDType = "library"
	Streaming IDType = "streaming"
)

type InsertPosition

type InsertPosition string
const (
	Next InsertPosition = "next"
	End  InsertPosition = "end"
)

type LookupOpt

type LookupOpt typedID

type PageEntrySource

type PageEntrySource struct {
	Title string `json:"Title" validate:"required"`
	From  int    `json:"From" validate:"gte=0"`
	Limit int    `json:"Limit" validate:"gte=0"`
}

type Playlist

type Playlist struct {
	ID
	Title       string
	Description *string
	ImageURL    string
}

type PlaylistFull

type PlaylistFull struct {
	Playlist Playlist
	Tracks   []Track
}

type PlaylistSource

type PlaylistSource struct {
	PlaylistRef LookupOpt `json:"PlaylistRef" validate:"required"`
	From        int       `json:"From" validate:"gte=0"`
	Limit       int       `json:"Limit" validate:"gte=0"`
}

type PopularSource

type PopularSource struct {
	ArtistID string `json:"ArtistID" validate:"required"`
	From     int    `json:"From" validate:"gte=0"`
	Limit    int    `json:"Limit" validate:"gte=0"`
}

type SearchOpt

type SearchOpt struct {
	Query string `json:"Query" validate:"required"`
}

type SearchRes

type SearchRes struct {
	Library   SourceRes
	Streaming SourceRes
}

type SeekOpt

type SeekOpt struct {
	Position *int `json:"Position" validate:"required"`
}

type SetVolOpt

type SetVolOpt struct {
	Volume int `json:"Volume" validate:"required"`
}

type SlimSearchEntry

type SlimSearchEntry struct {
	ID
	Title    string
	SubTitle string
	ImageURL *string
}

type SlimSearchRes

type SlimSearchRes struct {
	Results int
	Albums  []SlimSearchEntry
	Tracks  []SlimSearchEntry
	Artists []SlimSearchEntry
}

type Source

type Source string
const (
	FromAlbum     Source = "album"
	FromPlaylist  Source = "playlist"
	FromPopular   Source = "popular"
	FromPageEntry Source = "pageEntry"
)

type SourceRes

type SourceRes struct {
	Artists []Artist
	Albums  []Album
	Tracks  []Track
}

type Track

type Track struct {
	ID
	Title            string
	ImageURL         string
	Duration         int
	DurationReadable string
	Num              int
	Album            Album
	Artists          []Artist
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL