97 lines
3.5 KiB
Go
97 lines
3.5 KiB
Go
package subsonic
|
|
|
|
// --- Jukebox ---
|
|
|
|
type JukeboxStatus struct {
|
|
CurrentIndex int `xml:"currentIndex,attr" json:"currentIndex"`
|
|
Playing bool `xml:"playing,attr" json:"playing"`
|
|
Gain float64 `xml:"gain,attr" json:"gain"`
|
|
Position int `xml:"position,attr,omitempty" json:"position,omitempty"`
|
|
}
|
|
|
|
type JukeboxPlaylist struct {
|
|
JukeboxStatus
|
|
Entry []Child `xml:"entry,omitempty" json:"entry,omitempty"`
|
|
}
|
|
|
|
// --- Internet radio ---
|
|
|
|
type InternetRadioStations struct {
|
|
InternetRadioStation []InternetRadioStation `xml:"internetRadioStation,omitempty" json:"internetRadioStation,omitempty"`
|
|
}
|
|
|
|
type InternetRadioStation struct {
|
|
ID string `xml:"id,attr" json:"id"`
|
|
Name string `xml:"name,attr" json:"name"`
|
|
StreamURL string `xml:"streamUrl,attr" json:"streamUrl"`
|
|
HomepageURL string `xml:"homepageUrl,attr,omitempty" json:"homepageUrl,omitempty"`
|
|
}
|
|
|
|
// --- Chat ---
|
|
|
|
type ChatMessages struct {
|
|
ChatMessage []ChatMessage `xml:"chatMessage,omitempty" json:"chatMessage,omitempty"`
|
|
}
|
|
|
|
type ChatMessage struct {
|
|
Username string `xml:"username,attr" json:"username"`
|
|
Time int64 `xml:"time,attr" json:"time"` // millis since epoch
|
|
Message string `xml:"message,attr" json:"message"`
|
|
}
|
|
|
|
// --- Scan status ---
|
|
|
|
type ScanStatus struct {
|
|
Scanning bool `xml:"scanning,attr" json:"scanning"`
|
|
Count int64 `xml:"count,attr,omitempty" json:"count,omitempty"`
|
|
}
|
|
|
|
// --- Shares ---
|
|
|
|
type Shares struct {
|
|
Share []Share `xml:"share,omitempty" json:"share,omitempty"`
|
|
}
|
|
|
|
type Share struct {
|
|
ID string `xml:"id,attr" json:"id"`
|
|
URL string `xml:"url,attr" json:"url"`
|
|
Description string `xml:"description,attr,omitempty" json:"description,omitempty"`
|
|
Username string `xml:"username,attr" json:"username"`
|
|
Created string `xml:"created,attr" json:"created"`
|
|
Expires string `xml:"expires,attr,omitempty" json:"expires,omitempty"`
|
|
LastVisited string `xml:"lastVisited,attr,omitempty" json:"lastVisited,omitempty"`
|
|
VisitCount int64 `xml:"visitCount,attr" json:"visitCount"`
|
|
Entry []Child `xml:"entry,omitempty" json:"entry,omitempty"`
|
|
}
|
|
|
|
// --- Podcasts ---
|
|
|
|
type Podcasts struct {
|
|
Channel []PodcastChannel `xml:"channel,omitempty" json:"channel,omitempty"`
|
|
}
|
|
|
|
type NewestPodcasts struct {
|
|
Episode []PodcastEpisode `xml:"episode,omitempty" json:"episode,omitempty"`
|
|
}
|
|
|
|
type PodcastChannel struct {
|
|
ID string `xml:"id,attr" json:"id"`
|
|
URL string `xml:"url,attr" json:"url"`
|
|
Title string `xml:"title,attr,omitempty" json:"title,omitempty"`
|
|
Description string `xml:"description,attr,omitempty" json:"description,omitempty"`
|
|
CoverArt string `xml:"coverArt,attr,omitempty" json:"coverArt,omitempty"`
|
|
OriginalImageURL string `xml:"originalImageUrl,attr,omitempty" json:"originalImageUrl,omitempty"`
|
|
Status string `xml:"status,attr" json:"status"`
|
|
ErrorMessage string `xml:"errorMessage,attr,omitempty" json:"errorMessage,omitempty"`
|
|
Episode []PodcastEpisode `xml:"episode,omitempty" json:"episode,omitempty"`
|
|
}
|
|
|
|
type PodcastEpisode struct {
|
|
Child
|
|
StreamID string `xml:"streamId,attr,omitempty" json:"streamId,omitempty"`
|
|
ChannelID string `xml:"channelId,attr" json:"channelId"`
|
|
Description string `xml:"description,attr,omitempty" json:"description,omitempty"`
|
|
Status string `xml:"status,attr" json:"status"`
|
|
PublishDate string `xml:"publishDate,attr,omitempty" json:"publishDate,omitempty"`
|
|
}
|