mirror of
https://github.com/AynaLivePlayer/miaosic.git
synced 2025-12-16 17:58:13 +08:00
update interface
This commit is contained in:
@@ -27,7 +27,7 @@ func NewBilibili() *Bilibili {
|
||||
},
|
||||
}
|
||||
bili.InfoApi = deepcolor.CreateApiResultFunc(
|
||||
func(meta miaosic.MediaMeta) (*dphttp.Request, error) {
|
||||
func(meta miaosic.MetaData) (*dphttp.Request, error) {
|
||||
return deepcolor.NewGetRequestWithSingleQuery(
|
||||
"https://www.bilibili.com/audio/music-service-c/web/song/info",
|
||||
"sid", meta.Identifier,
|
||||
@@ -81,7 +81,7 @@ func NewBilibili() *Bilibili {
|
||||
Title: r.Get("title").String(),
|
||||
Cover: miaosic.Picture{Url: r.Get("cover").String()},
|
||||
Artist: r.Get("author").String(),
|
||||
Meta: miaosic.MediaMeta{
|
||||
Meta: miaosic.MetaData{
|
||||
Provider: bili.GetName(),
|
||||
Identifier: r.Get("id").String(),
|
||||
},
|
||||
@@ -97,18 +97,18 @@ func (b *Bilibili) GetName() string {
|
||||
return "bilibili"
|
||||
}
|
||||
|
||||
func (b *Bilibili) MatchMedia(keyword string) (miaosic.MediaMeta, bool) {
|
||||
func (b *Bilibili) MatchMedia(keyword string) (miaosic.MetaData, bool) {
|
||||
if id := b.IdRegex0.FindString(keyword); id != "" {
|
||||
return miaosic.MediaMeta{
|
||||
return miaosic.MetaData{
|
||||
Provider: b.GetName(),
|
||||
Identifier: id,
|
||||
}, true
|
||||
}
|
||||
if id := b.IdRegex1.FindString(keyword); id != "" {
|
||||
return miaosic.MediaMeta{
|
||||
return miaosic.MetaData{
|
||||
Provider: b.GetName(),
|
||||
Identifier: id[2:],
|
||||
}, true
|
||||
}
|
||||
return miaosic.MediaMeta{}, false
|
||||
return miaosic.MetaData{}, false
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ func TestBilibili_Search(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestBilibili_GetMusic(t *testing.T) {
|
||||
meta := miaosic.MediaMeta{
|
||||
meta := miaosic.MetaData{
|
||||
Provider: api.GetName(),
|
||||
Identifier: "1560601",
|
||||
}
|
||||
|
||||
11
providers/bilibili/playlist.go
Normal file
11
providers/bilibili/playlist.go
Normal file
@@ -0,0 +1,11 @@
|
||||
package bilibili
|
||||
|
||||
import "github.com/AynaLivePlayer/miaosic"
|
||||
|
||||
func (n *Bilibili) MatchPlaylist(uri string) (miaosic.MetaData, bool) {
|
||||
return miaosic.MetaData{}, false
|
||||
}
|
||||
|
||||
func (n *Bilibili) GetPlaylist(meta miaosic.MetaData) (*miaosic.Playlist, error) {
|
||||
return nil, miaosic.ErrNotImplemented
|
||||
}
|
||||
@@ -38,7 +38,7 @@ func NewBilibiliViedo() *BilibiliVideo {
|
||||
header: headers,
|
||||
}
|
||||
pvdr.InfoApi = deepcolor.CreateApiResultFunc(
|
||||
func(meta miaosic.MediaMeta) (*dphttp.Request, error) {
|
||||
func(meta miaosic.MetaData) (*dphttp.Request, error) {
|
||||
return deepcolor.NewGetRequestWithQuery(
|
||||
"https://api.bilibili.com/x/web-interface/view/detail?&aid=&jsonp=jsonp",
|
||||
map[string]any{
|
||||
@@ -93,7 +93,7 @@ func NewBilibiliViedo() *BilibiliVideo {
|
||||
Title: r.ReplaceAllString(value.Get("title").String(), ""),
|
||||
Cover: miaosic.Picture{Url: "https:" + value.Get("pic").String()},
|
||||
Artist: value.Get("author").String(),
|
||||
Meta: miaosic.MediaMeta{
|
||||
Meta: miaosic.MetaData{
|
||||
Provider: pvdr.GetName(),
|
||||
Identifier: value.Get("bvid").String(),
|
||||
},
|
||||
@@ -120,17 +120,17 @@ func (b *BilibiliVideo) GetName() string {
|
||||
return "bilibili-video"
|
||||
}
|
||||
|
||||
func (b *BilibiliVideo) MatchMedia(keyword string) (miaosic.MediaMeta, bool) {
|
||||
func (b *BilibiliVideo) MatchMedia(keyword string) (miaosic.MetaData, bool) {
|
||||
if id := b.IdRegex.FindString(keyword); id != "" {
|
||||
return miaosic.MediaMeta{
|
||||
return miaosic.MetaData{
|
||||
Provider: b.GetName(),
|
||||
Identifier: id,
|
||||
}, true
|
||||
}
|
||||
return miaosic.MediaMeta{}, false
|
||||
return miaosic.MetaData{}, false
|
||||
}
|
||||
|
||||
func (b *BilibiliVideo) GetMediaUrl(meta miaosic.MediaMeta, quality miaosic.Quality) ([]miaosic.MediaUrl, error) {
|
||||
func (b *BilibiliVideo) GetMediaUrl(meta miaosic.MetaData, quality miaosic.Quality) ([]miaosic.MediaUrl, error) {
|
||||
page := b.getPage(meta.Identifier) - 1
|
||||
cids, err := b.cidApi(b.getBv(meta.Identifier))
|
||||
if err != nil {
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
package bilivideo
|
||||
|
||||
import "github.com/AynaLivePlayer/miaosic"
|
||||
|
||||
func init() {
|
||||
miaosic.RegisterProvider(NewBilibiliViedo())
|
||||
}
|
||||
11
providers/bilivideo/playlist.go
Normal file
11
providers/bilivideo/playlist.go
Normal file
@@ -0,0 +1,11 @@
|
||||
package bilivideo
|
||||
|
||||
import "github.com/AynaLivePlayer/miaosic"
|
||||
|
||||
func (n *BilibiliVideo) MatchPlaylist(uri string) (miaosic.MetaData, bool) {
|
||||
return miaosic.MetaData{}, false
|
||||
}
|
||||
|
||||
func (n *BilibiliVideo) GetPlaylist(meta miaosic.MetaData) (*miaosic.Playlist, error) {
|
||||
return nil, miaosic.ErrNotImplemented
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
package kuwo
|
||||
|
||||
import "github.com/AynaLivePlayer/miaosic"
|
||||
|
||||
func init() {
|
||||
miaosic.RegisterProvider(NewKuwo())
|
||||
}
|
||||
@@ -34,7 +34,7 @@ func NewKuwo() *Kuwo {
|
||||
}
|
||||
kw.initToken()
|
||||
kw.InfoApi = deepcolor.CreateApiResultFunc(
|
||||
func(meta miaosic.MediaMeta) (*dphttp.Request, error) {
|
||||
func(meta miaosic.MetaData) (*dphttp.Request, error) {
|
||||
return deepcolor.NewGetRequestWithSingleQuery(
|
||||
"http://www.kuwo.cn/api/www/music/musicInfo?httpsStatus=1",
|
||||
"mid", meta.Identifier, kw.header)
|
||||
@@ -62,7 +62,7 @@ func NewKuwo() *Kuwo {
|
||||
return nil
|
||||
})
|
||||
kw.LyricApi = deepcolor.CreateApiResultFunc(
|
||||
func(meta miaosic.MediaMeta) (*dphttp.Request, error) {
|
||||
func(meta miaosic.MetaData) (*dphttp.Request, error) {
|
||||
return deepcolor.NewGetRequestWithSingleQuery(
|
||||
"http://m.kuwo.cn/newh5/singles/songinfoandlrc",
|
||||
"musicId", meta.Identifier, kw.header)
|
||||
@@ -98,7 +98,7 @@ func NewKuwo() *Kuwo {
|
||||
Cover: miaosic.Picture{Url: "https://img2.kuwo.cn/star/albumcover/" + value.Get("web_albumpic_short").String()},
|
||||
Artist: value.Get("ARTIST").String(),
|
||||
Album: value.Get("ALBUM").String(),
|
||||
Meta: miaosic.MediaMeta{
|
||||
Meta: miaosic.MetaData{
|
||||
Provider: kw.GetName(),
|
||||
Identifier: value.Get("DC_TARGETID").String(),
|
||||
},
|
||||
@@ -125,20 +125,20 @@ func (k *Kuwo) GetName() string {
|
||||
return "kuwo"
|
||||
}
|
||||
|
||||
func (k *Kuwo) MatchMedia(keyword string) (miaosic.MediaMeta, bool) {
|
||||
func (k *Kuwo) MatchMedia(keyword string) (miaosic.MetaData, bool) {
|
||||
if id := k.IdRegex0.FindString(keyword); id != "" {
|
||||
return miaosic.MediaMeta{
|
||||
return miaosic.MetaData{
|
||||
Provider: k.GetName(),
|
||||
Identifier: id,
|
||||
}, true
|
||||
}
|
||||
if id := k.IdRegex1.FindString(keyword); id != "" {
|
||||
return miaosic.MediaMeta{
|
||||
return miaosic.MetaData{
|
||||
Provider: k.GetName(),
|
||||
Identifier: id[2:],
|
||||
}, true
|
||||
}
|
||||
return miaosic.MediaMeta{}, false
|
||||
return miaosic.MetaData{}, false
|
||||
}
|
||||
|
||||
//func (k *Kuwo) MatchPlaylist(uri string) *miaosic.Playlist {
|
||||
@@ -146,13 +146,13 @@ func (k *Kuwo) MatchMedia(keyword string) (miaosic.MediaMeta, bool) {
|
||||
// id = k.PlaylistRegex0.FindString(uri)
|
||||
// if id != "" {
|
||||
// return &miaosic.Playlist{
|
||||
// Meta: miaosic.MediaMeta{k.GetName(), id},
|
||||
// Meta: miaosic.MetaData{k.GetName(), id},
|
||||
// }
|
||||
// }
|
||||
// id = k.PlaylistRegex1.FindString(uri)
|
||||
// if id != "" {
|
||||
// return &miaosic.Playlist{
|
||||
// Meta: miaosic.MediaMeta{k.GetName(), id[9:]},
|
||||
// Meta: miaosic.MetaData{k.GetName(), id[9:]},
|
||||
// }
|
||||
// }
|
||||
// return nil
|
||||
@@ -250,7 +250,7 @@ func (k *Kuwo) generateSecret(t, e string) string {
|
||||
// Artist: value.Get("artist").String(),
|
||||
// Cover: miaosic.Picture{Url: value.Get("pic").String()},
|
||||
// Album: value.Get("album").String(),
|
||||
// Meta: miaosic.MediaMeta{
|
||||
// Meta: miaosic.MetaData{
|
||||
// Provider: k.GetName(),
|
||||
// Identifier: value.Get("rid").String(),
|
||||
// },
|
||||
|
||||
@@ -34,7 +34,7 @@ func TestKuwo_Search(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestKuwo_GetMusicMeta(t *testing.T) {
|
||||
meta := miaosic.MediaMeta{
|
||||
meta := miaosic.MetaData{
|
||||
Provider: api.GetName(),
|
||||
Identifier: "22804772",
|
||||
}
|
||||
@@ -44,7 +44,7 @@ func TestKuwo_GetMusicMeta(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestKuwo_GetMusic(t *testing.T) {
|
||||
meta := miaosic.MediaMeta{
|
||||
meta := miaosic.MetaData{
|
||||
Provider: api.GetName(),
|
||||
Identifier: "22804772",
|
||||
}
|
||||
@@ -54,7 +54,7 @@ func TestKuwo_GetMusic(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestKuwo_UpdateMediaLyric(t *testing.T) {
|
||||
meta := miaosic.MediaMeta{
|
||||
meta := miaosic.MetaData{
|
||||
Provider: api.GetName(),
|
||||
Identifier: "22804772",
|
||||
}
|
||||
@@ -66,7 +66,7 @@ func TestKuwo_UpdateMediaLyric(t *testing.T) {
|
||||
|
||||
//func TestKuwo_GetPlaylist(t *testing.T) {
|
||||
// playlist := miaosic.Playlist{
|
||||
// Meta: miaosic.MediaMeta{
|
||||
// Meta: miaosic.MetaData{
|
||||
// Provider: api.GetName(),
|
||||
// Identifier: "2959147566",
|
||||
// },
|
||||
|
||||
11
providers/kuwo/playlist.go
Normal file
11
providers/kuwo/playlist.go
Normal file
@@ -0,0 +1,11 @@
|
||||
package kuwo
|
||||
|
||||
import "github.com/AynaLivePlayer/miaosic"
|
||||
|
||||
func (n *Kuwo) MatchPlaylist(uri string) (miaosic.MetaData, bool) {
|
||||
return miaosic.MetaData{}, false
|
||||
}
|
||||
|
||||
func (n *Kuwo) GetPlaylist(meta miaosic.MetaData) (*miaosic.Playlist, error) {
|
||||
return nil, miaosic.ErrNotImplemented
|
||||
}
|
||||
@@ -18,7 +18,7 @@ type localMedia struct {
|
||||
lyrics []miaosic.Lyrics
|
||||
}
|
||||
|
||||
func (l *localPlaylist) GetMediaInfo(meta miaosic.MediaMeta) (miaosic.MediaInfo, error) {
|
||||
func (l *localPlaylist) GetMediaInfo(meta miaosic.MetaData) (miaosic.MediaInfo, error) {
|
||||
for _, m := range l.medias {
|
||||
if m.info.Meta.Identifier == meta.Identifier {
|
||||
return m.info, nil
|
||||
@@ -46,7 +46,7 @@ func NewLocal(localdir string) *Local {
|
||||
return l
|
||||
}
|
||||
|
||||
func (l *Local) metaToId(meta miaosic.MediaMeta) (playlist string) {
|
||||
func (l *Local) metaToId(meta miaosic.MetaData) (playlist string) {
|
||||
return strings.Split(meta.Identifier, "/")[0]
|
||||
}
|
||||
|
||||
@@ -54,11 +54,11 @@ func (l *Local) GetName() string {
|
||||
return "local"
|
||||
}
|
||||
|
||||
func (l *Local) MatchMedia(uri string) (miaosic.MediaMeta, bool) {
|
||||
return miaosic.MediaMeta{}, false
|
||||
func (l *Local) MatchMedia(uri string) (miaosic.MetaData, bool) {
|
||||
return miaosic.MetaData{}, false
|
||||
}
|
||||
|
||||
func (l *Local) GetMediaInfo(meta miaosic.MediaMeta) (miaosic.MediaInfo, error) {
|
||||
func (l *Local) GetMediaInfo(meta miaosic.MetaData) (miaosic.MediaInfo, error) {
|
||||
if meta.Provider != l.GetName() {
|
||||
return miaosic.MediaInfo{}, miaosic.ErrorDifferentProvider
|
||||
}
|
||||
@@ -69,7 +69,7 @@ func (l *Local) GetMediaInfo(meta miaosic.MediaMeta) (miaosic.MediaInfo, error)
|
||||
return playlist.GetMediaInfo(meta)
|
||||
}
|
||||
|
||||
func (l *Local) GetMediaUrl(meta miaosic.MediaMeta, quality miaosic.Quality) ([]miaosic.MediaUrl, error) {
|
||||
func (l *Local) GetMediaUrl(meta miaosic.MetaData, quality miaosic.Quality) ([]miaosic.MediaUrl, error) {
|
||||
info, err := l.GetMediaInfo(meta)
|
||||
if err != nil {
|
||||
return []miaosic.MediaUrl{}, err
|
||||
@@ -80,7 +80,7 @@ func (l *Local) GetMediaUrl(meta miaosic.MediaMeta, quality miaosic.Quality) ([]
|
||||
}}, nil
|
||||
}
|
||||
|
||||
func (l *Local) GetMediaLyric(meta miaosic.MediaMeta) ([]miaosic.Lyrics, error) {
|
||||
func (l *Local) GetMediaLyric(meta miaosic.MetaData) ([]miaosic.Lyrics, error) {
|
||||
return []miaosic.Lyrics{}, miaosic.ErrNotImplemented
|
||||
}
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ func readLocalPlaylist(localdir string, playlist *localPlaylist) error {
|
||||
fn := item.Name()
|
||||
media := localMedia{
|
||||
info: miaosic.MediaInfo{
|
||||
Meta: miaosic.MediaMeta{
|
||||
Meta: miaosic.MetaData{
|
||||
Provider: "local",
|
||||
Identifier: path.Join(playlist.name, fn),
|
||||
},
|
||||
|
||||
94
providers/netease/login.go
Normal file
94
providers/netease/login.go
Normal file
@@ -0,0 +1,94 @@
|
||||
package netease
|
||||
|
||||
import (
|
||||
"encoding/base64"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/AynaLivePlayer/miaosic"
|
||||
neteaseApi "github.com/XiaoMengXinX/Music163Api-Go/api"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
func (n *Netease) Login(username string, password string) error {
|
||||
return miaosic.ErrNotImplemented
|
||||
}
|
||||
|
||||
func (n *Netease) QrLogin() (*miaosic.QrLoginSession, error) {
|
||||
unikey, err := neteaseApi.GetQrUnikey(n.ReqData)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &miaosic.QrLoginSession{
|
||||
Key: unikey.Unikey,
|
||||
Url: fmt.Sprintf("https://music.163.com/login?codekey=%s", unikey.Unikey),
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (n *Netease) QrLoginVerify(qrlogin *miaosic.QrLoginSession) (*miaosic.QrLoginResult, error) {
|
||||
login, h, err := neteaseApi.CheckQrLogin(n.ReqData, qrlogin.Key)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
// if login.Code == 800 || login.Code == 803. login success
|
||||
if login.Code != 800 && login.Code != 803 {
|
||||
return &miaosic.QrLoginResult{
|
||||
Success: false,
|
||||
Message: login.Message,
|
||||
}, nil
|
||||
}
|
||||
cookies := make([]*http.Cookie, 0)
|
||||
for _, c := range (&http.Response{Header: h}).Cookies() {
|
||||
if c.Name == "MUSIC_U" || c.Name == "__csrf" {
|
||||
cookies = append(cookies, c)
|
||||
}
|
||||
}
|
||||
n.ReqData.Cookies = cookies
|
||||
return &miaosic.QrLoginResult{
|
||||
Success: true,
|
||||
Message: login.Message,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (n *Netease) Logout() {
|
||||
n.ReqData.Cookies = []*http.Cookie{
|
||||
{Name: "MUSIC_U", Value: ""},
|
||||
{Name: "__csrf", Value: ""},
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (n *Netease) SaveSession() string {
|
||||
// save session to string MUSIC_U and __csrf
|
||||
data := make(map[string]string)
|
||||
data["MUSIC_U"] = ""
|
||||
data["__csrf"] = ""
|
||||
for _, c := range n.ReqData.Cookies {
|
||||
if c.Name == "MUSIC_U" || c.Name == "__csrf" {
|
||||
data[c.Name] = c.Value
|
||||
}
|
||||
}
|
||||
b, _ := json.Marshal(data)
|
||||
return base64.StdEncoding.EncodeToString(b)
|
||||
}
|
||||
|
||||
func (n *Netease) RestoreSession(session string) error {
|
||||
// restore session from string MUSIC_U and __csrf
|
||||
b, err := base64.StdEncoding.DecodeString(session)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
data := make(map[string]string)
|
||||
err = json.Unmarshal(b, &data)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
cookies := make([]*http.Cookie, 0)
|
||||
for name, value := range data {
|
||||
cookies = append(cookies, &http.Cookie{
|
||||
Name: name,
|
||||
Value: value,
|
||||
})
|
||||
}
|
||||
n.ReqData.Cookies = cookies
|
||||
return nil
|
||||
}
|
||||
@@ -31,27 +31,27 @@ func NewNetease() *Netease {
|
||||
}
|
||||
}
|
||||
|
||||
func (n Netease) GetName() string {
|
||||
func (n *Netease) GetName() string {
|
||||
return "netease"
|
||||
}
|
||||
|
||||
func (n Netease) MatchMedia(uri string) (miaosic.MediaMeta, bool) {
|
||||
func (n *Netease) MatchMedia(uri string) (miaosic.MetaData, bool) {
|
||||
if id := n.IdRegex0.FindString(uri); id != "" {
|
||||
return miaosic.MediaMeta{
|
||||
return miaosic.MetaData{
|
||||
Provider: n.GetName(),
|
||||
Identifier: id,
|
||||
}, true
|
||||
}
|
||||
if id := n.IdRegex1.FindString(uri); id != "" {
|
||||
return miaosic.MediaMeta{
|
||||
return miaosic.MetaData{
|
||||
Provider: n.GetName(),
|
||||
Identifier: id[2:],
|
||||
}, true
|
||||
}
|
||||
return miaosic.MediaMeta{}, false
|
||||
return miaosic.MetaData{}, false
|
||||
}
|
||||
|
||||
func (n Netease) Search(keyword string, page, size int) ([]miaosic.MediaInfo, error) {
|
||||
func (n *Netease) Search(keyword string, page, size int) ([]miaosic.MediaInfo, error) {
|
||||
rawResult, err := neteaseApi.SearchSong(
|
||||
n.ReqData,
|
||||
neteaseApi.SearchSongConfig{
|
||||
@@ -73,7 +73,7 @@ func (n Netease) Search(keyword string, page, size int) ([]miaosic.MediaInfo, er
|
||||
Artist: strings.Join(artists, ","),
|
||||
Cover: miaosic.Picture{},
|
||||
Album: song.Album.Name,
|
||||
Meta: miaosic.MediaMeta{
|
||||
Meta: miaosic.MetaData{
|
||||
Provider: n.GetName(),
|
||||
Identifier: strconv.Itoa(song.Id),
|
||||
},
|
||||
@@ -90,7 +90,7 @@ func _neteaseGetArtistNames(data neteaseTypes.SongDetailData) string {
|
||||
return strings.Join(artists, ",")
|
||||
}
|
||||
|
||||
func (n Netease) GetMediaInfo(meta miaosic.MediaMeta) (media miaosic.MediaInfo, err error) {
|
||||
func (n *Netease) GetMediaInfo(meta miaosic.MetaData) (media miaosic.MediaInfo, err error) {
|
||||
result, err := neteaseApi.GetSongDetail(
|
||||
n.ReqData,
|
||||
[]int{cast.ToInt(meta.Identifier)})
|
||||
@@ -107,7 +107,7 @@ func (n Netease) GetMediaInfo(meta miaosic.MediaMeta) (media miaosic.MediaInfo,
|
||||
return media, nil
|
||||
}
|
||||
|
||||
func (n Netease) GetMediaUrl(meta miaosic.MediaMeta, quality miaosic.Quality) ([]miaosic.MediaUrl, error) {
|
||||
func (n *Netease) GetMediaUrl(meta miaosic.MetaData, quality miaosic.Quality) ([]miaosic.MediaUrl, error) {
|
||||
result, err := neteaseApi.GetSongURL(
|
||||
n.ReqData,
|
||||
neteaseApi.SongURLConfig{Ids: []int{cast.ToInt(meta.Identifier)}})
|
||||
@@ -130,7 +130,7 @@ func (n Netease) GetMediaUrl(meta miaosic.MediaMeta, quality miaosic.Quality) ([
|
||||
return urls, nil
|
||||
}
|
||||
|
||||
func (n Netease) GetMediaLyric(meta miaosic.MediaMeta) ([]miaosic.Lyrics, error) {
|
||||
func (n *Netease) GetMediaLyric(meta miaosic.MetaData) ([]miaosic.Lyrics, error) {
|
||||
result, err := neteaseApi.GetSongLyric(n.ReqData, cast.ToInt(meta.Identifier))
|
||||
if err != nil || result.Code != 200 {
|
||||
return nil, miaosic.ErrorExternalApi
|
||||
@@ -25,10 +25,11 @@ func TestNetease_Search2(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
require.NotEmpty(t, urls)
|
||||
require.True(t, strings.Contains(urls[0].Url, "http"))
|
||||
t.Log(urls[0].Url)
|
||||
}
|
||||
|
||||
func TestNetease_GetMusicMeta(t *testing.T) {
|
||||
meta := miaosic.MediaMeta{
|
||||
meta := miaosic.MetaData{
|
||||
Provider: api.GetName(),
|
||||
Identifier: "33516503",
|
||||
}
|
||||
@@ -39,7 +40,7 @@ func TestNetease_GetMusicMeta(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestNetease_UpdateMediaLyric(t *testing.T) {
|
||||
meta := miaosic.MediaMeta{
|
||||
meta := miaosic.MetaData{
|
||||
Provider: api.GetName(),
|
||||
Identifier: "33516503",
|
||||
}
|
||||
11
providers/netease/playlist.go
Normal file
11
providers/netease/playlist.go
Normal file
@@ -0,0 +1,11 @@
|
||||
package netease
|
||||
|
||||
import "github.com/AynaLivePlayer/miaosic"
|
||||
|
||||
func (n *Netease) MatchPlaylist(uri string) (miaosic.MetaData, bool) {
|
||||
return miaosic.MetaData{}, false
|
||||
}
|
||||
|
||||
func (n *Netease) GetPlaylist(meta miaosic.MetaData) (*miaosic.Playlist, error) {
|
||||
return nil, miaosic.ErrNotImplemented
|
||||
}
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
)
|
||||
|
||||
type FileApiParam struct {
|
||||
Meta miaosic.MediaMeta
|
||||
Meta miaosic.MetaData
|
||||
Quality miaosic.Quality
|
||||
}
|
||||
|
||||
@@ -17,9 +17,9 @@ type MediaSearchParam struct {
|
||||
}
|
||||
|
||||
type DeepcolorProvider struct {
|
||||
InfoApi dphttp.ApiResultFunc[miaosic.MediaMeta, miaosic.MediaInfo]
|
||||
InfoApi dphttp.ApiResultFunc[miaosic.MetaData, miaosic.MediaInfo]
|
||||
FileApi dphttp.ApiResultFunc[FileApiParam, []miaosic.MediaUrl]
|
||||
LyricApi dphttp.ApiResultFunc[miaosic.MediaMeta, []miaosic.Lyrics]
|
||||
LyricApi dphttp.ApiResultFunc[miaosic.MetaData, []miaosic.Lyrics]
|
||||
//PlaylistFunc dphttp.ApiFunc[*miaosic.Playlist, *miaosic.Playlist]
|
||||
SearchApi dphttp.ApiResultFunc[MediaSearchParam, []miaosic.MediaInfo]
|
||||
}
|
||||
@@ -31,7 +31,7 @@ func (p *DeepcolorProvider) Search(keyword string, page, size int) ([]miaosic.Me
|
||||
return p.SearchApi(MediaSearchParam{Keyword: keyword, Page: page, PageSize: size})
|
||||
}
|
||||
|
||||
func (p *DeepcolorProvider) GetMediaInfo(meta miaosic.MediaMeta) (miaosic.MediaInfo, error) {
|
||||
func (p *DeepcolorProvider) GetMediaInfo(meta miaosic.MetaData) (miaosic.MediaInfo, error) {
|
||||
if p.InfoApi == nil {
|
||||
return miaosic.MediaInfo{}, miaosic.ErrNotImplemented
|
||||
}
|
||||
@@ -42,14 +42,14 @@ func (p *DeepcolorProvider) GetMediaInfo(meta miaosic.MediaMeta) (miaosic.MediaI
|
||||
return val, err
|
||||
}
|
||||
|
||||
func (p *DeepcolorProvider) GetMediaUrl(meta miaosic.MediaMeta, quality miaosic.Quality) ([]miaosic.MediaUrl, error) {
|
||||
func (p *DeepcolorProvider) GetMediaUrl(meta miaosic.MetaData, quality miaosic.Quality) ([]miaosic.MediaUrl, error) {
|
||||
if p.FileApi == nil {
|
||||
return nil, miaosic.ErrNotImplemented
|
||||
}
|
||||
return p.FileApi(FileApiParam{Meta: meta, Quality: quality})
|
||||
}
|
||||
|
||||
func (p *DeepcolorProvider) GetMediaLyric(meta miaosic.MediaMeta) ([]miaosic.Lyrics, error) {
|
||||
func (p *DeepcolorProvider) GetMediaLyric(meta miaosic.MetaData) ([]miaosic.Lyrics, error) {
|
||||
if p.LyricApi == nil {
|
||||
return nil, miaosic.ErrNotImplemented
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user