Documentation
¶
Index ¶
- Constants
- Variables
- func IsLoginByProvider(provider string) (bool, error)
- func ListAvailableProviders() []string
- func LoginByProvider(provider, username, password string) error
- func LogoutByProvider(provider string) error
- func RefreshLoginByProvider(provider string) error
- func RegisterProvider(provider MediaProvider)
- func RestoreSessionByProvider(provider, session string) error
- func SaveSessionByProvider(provider string) (string, error)
- func UnregisterAllProvider()
- func UnregisterProvider(name string)
- type Loginable
- type LyricContext
- type LyricLine
- type Lyrics
- type MediaInfo
- type MediaProvider
- type MediaUrl
- type MetaData
- type Picture
- type Playlist
- type QrLoginResult
- type QrLoginSession
- type Quality
- type Registry
- func (r *Registry) GetMediaInfo(meta MetaData) (MediaInfo, error)
- func (r *Registry) GetMediaLyric(meta MetaData) ([]Lyrics, error)
- func (r *Registry) GetMediaUrl(meta MetaData, quality Quality) ([]MediaUrl, error)
- func (r *Registry) GetPlaylist(meta MetaData) (*Playlist, error)
- func (r *Registry) GetProvider(name string) (MediaProvider, bool)
- func (r *Registry) IsLoginByProvider(provider string) (bool, error)
- func (r *Registry) ListAvailableProviders() []string
- func (r *Registry) LoginByProvider(provider, username, password string) error
- func (r *Registry) LogoutByProvider(provider string) error
- func (r *Registry) MatchMedia(keyword string) (MetaData, bool)
- func (r *Registry) MatchMediaByProvider(provider string, uri string) (MetaData, bool)
- func (r *Registry) MatchPlaylistByProvider(provider string, uri string) (MetaData, bool)
- func (r *Registry) QrLoginByProvider(provider string) (*QrLoginSession, error)
- func (r *Registry) QrLoginVerifyByProvider(provider string, qrlogin *QrLoginSession) (*QrLoginResult, error)
- func (r *Registry) RefreshLoginByProvider(provider string) error
- func (r *Registry) RegisterProvider(provider MediaProvider)
- func (r *Registry) RestoreSessionByProvider(provider, session string) error
- func (r *Registry) SaveSessionByProvider(provider string) (string, error)
- func (r *Registry) SearchByProvider(provider string, keyword string, page, size int) ([]MediaInfo, error)
- func (r *Registry) UnregisterAllProvider()
- func (r *Registry) UnregisterProvider(name string)
Constants ¶
View Source
const VERSION = "0.2.6"
Variables ¶
View Source
var ( ErrorExternalApi = errors.New("miaosic: external api error") ErrorNoSuchProvider = errors.New("miaosic: no such provider") ErrorProviderNotLoginable = errors.New("miaosic: provider not loginable") ErrorDifferentProvider = errors.New("miaosic: different provider") ErrorInvalidPageSetting = errors.New("miaosic: invalid page setting") ErrorInvalidMediaMeta = errors.New("miaosic: invalid media meta") )
View Source
var DefaultRegistry = NewRegistry()
View Source
var ErrNotImplemented = errors.New("miaosic: not implemented")
Functions ¶
func IsLoginByProvider ¶ added in v0.2.6
func ListAvailableProviders ¶
func ListAvailableProviders() []string
func LoginByProvider ¶ added in v0.2.6
func LogoutByProvider ¶ added in v0.2.6
func RefreshLoginByProvider ¶ added in v0.2.6
func RegisterProvider ¶
func RegisterProvider(provider MediaProvider)
func RestoreSessionByProvider ¶ added in v0.2.6
func SaveSessionByProvider ¶ added in v0.2.6
func UnregisterAllProvider ¶ added in v0.2.5
func UnregisterAllProvider()
func UnregisterProvider ¶ added in v0.2.5
func UnregisterProvider(name string)
Types ¶
type Loginable ¶
type Loginable interface {
Login(username string, password string) error
Logout() error
IsLogin() bool
RefreshLogin() error
QrLogin() (*QrLoginSession, error)
QrLoginVerify(qrlogin *QrLoginSession) (*QrLoginResult, error)
RestoreSession(session string) error
SaveSession() string
}
type LyricContext ¶ added in v0.1.6
type Lyrics ¶
type Lyrics struct {
// Lang will is ISO 639-3 string
Lang string `json:"lang"`
Content []LyricLine `json:"content"`
}
func GetMediaLyric ¶ added in v0.1.6
func ParseLyrics ¶
func (*Lyrics) FindContext ¶ added in v0.1.6
func (l *Lyrics) FindContext(time float64, prev int, next int) *LyricContext
type MediaInfo ¶
type MediaInfo struct {
Title string `json:"title"`
// Artist is artist in string will be deprecated in the future, use Artists instead
Artist string `json:"artist"`
Artists []string `json:"artists"`
Cover Picture `json:"cover"`
Album string `json:"album"`
Meta MetaData `json:"meta"`
}
func GetMediaInfo ¶ added in v0.1.6
type MediaProvider ¶
type MediaProvider interface {
// GetName returns the name of the provider.
GetName() string
// Qualities return supported quality by this provider
Qualities() []Quality
// MapQuality will map input quality into provider specific quality.
MapQuality(quality Quality) Quality
// Search returns a list of MetaData.
Search(keyword string, page, size int) ([]MediaInfo, error)
// MatchMedia returns a MetaData if the uri is matched, otherwise nil.
MatchMedia(uri string) (MetaData, bool)
GetMediaInfo(meta MetaData) (MediaInfo, error)
GetMediaUrl(meta MetaData, quality Quality) ([]MediaUrl, error)
GetMediaLyric(meta MetaData) ([]Lyrics, error)
// MatchPlaylist returns a MetaData if the uri is matched, otherwise nil.
MatchPlaylist(uri string) (MetaData, bool)
// GetPlaylist returns a Playlist, it fetches all data, so it might be slow.
GetPlaylist(meta MetaData) (*Playlist, error)
}
func GetProvider ¶
func GetProvider(name string) (MediaProvider, bool)
type MediaUrl ¶
type MediaUrl struct {
Url string `json:"url"`
Quality Quality `json:"quality"`
Header map[string]string `json:"header"`
}
func GetMediaUrl ¶ added in v0.1.6
func NewMediaUrl ¶
type MetaData ¶ added in v0.1.5
func MatchMedia ¶ added in v0.1.7
func MatchMediaByProvider ¶ added in v0.1.7
func MatchPlaylistByProvider ¶ added in v0.1.6
func NewMetaData ¶ added in v0.1.5
type Playlist ¶ added in v0.1.5
type Playlist struct {
Title string `json:"title"`
Medias []MediaInfo `json:"medias"`
Meta MetaData `json:"meta"`
}
func GetPlaylist ¶ added in v0.1.6
func (*Playlist) DisplayName ¶ added in v0.1.6
type QrLoginResult ¶ added in v0.1.5
func QrLoginVerifyByProvider ¶ added in v0.2.6
func QrLoginVerifyByProvider(provider string, qrlogin *QrLoginSession) (*QrLoginResult, error)
type QrLoginSession ¶ added in v0.1.5
func QrLoginByProvider ¶ added in v0.2.6
func QrLoginByProvider(provider string) (*QrLoginSession, error)
type Quality ¶
type Quality string
const ( QualityAny Quality = "" // any quality only used when requesting an url, the returned quality should not have this quality QualityStandard Quality = "standard" // standard quality or any unknown quality Quality128k Quality = "128k" Quality192k Quality = "192k" Quality256k Quality = "256k" Quality320k Quality = "320k" QualityHQ Quality = "hq" QualitySQ Quality = "sq" )
type Registry ¶ added in v0.2.9
type Registry struct {
// contains filtered or unexported fields
}
func NewRegistry ¶ added in v0.2.9
func NewRegistry() *Registry
func (*Registry) GetMediaInfo ¶ added in v0.2.9
func (*Registry) GetMediaLyric ¶ added in v0.2.9
func (*Registry) GetMediaUrl ¶ added in v0.2.9
func (*Registry) GetPlaylist ¶ added in v0.2.9
func (*Registry) GetProvider ¶ added in v0.2.9
func (r *Registry) GetProvider(name string) (MediaProvider, bool)
func (*Registry) IsLoginByProvider ¶ added in v0.2.9
func (*Registry) ListAvailableProviders ¶ added in v0.2.9
func (*Registry) LoginByProvider ¶ added in v0.2.9
func (*Registry) LogoutByProvider ¶ added in v0.2.9
func (*Registry) MatchMedia ¶ added in v0.2.9
func (*Registry) MatchMediaByProvider ¶ added in v0.2.9
func (*Registry) MatchPlaylistByProvider ¶ added in v0.2.9
func (*Registry) QrLoginByProvider ¶ added in v0.2.9
func (r *Registry) QrLoginByProvider(provider string) (*QrLoginSession, error)
func (*Registry) QrLoginVerifyByProvider ¶ added in v0.2.9
func (r *Registry) QrLoginVerifyByProvider(provider string, qrlogin *QrLoginSession) (*QrLoginResult, error)
func (*Registry) RefreshLoginByProvider ¶ added in v0.2.9
func (*Registry) RegisterProvider ¶ added in v0.2.9
func (r *Registry) RegisterProvider(provider MediaProvider)
func (*Registry) RestoreSessionByProvider ¶ added in v0.2.9
func (*Registry) SaveSessionByProvider ¶ added in v0.2.9
func (*Registry) SearchByProvider ¶ added in v0.2.9
func (*Registry) UnregisterAllProvider ¶ added in v0.2.9
func (r *Registry) UnregisterAllProvider()
func (*Registry) UnregisterProvider ¶ added in v0.2.9
Click to show internal directories.
Click to hide internal directories.