fix bili-video search, update kugou playlist test

This commit is contained in:
aynakeya
2025-02-26 15:51:36 +08:00
parent ab07ab0300
commit bdaf150fdf
3 changed files with 19 additions and 2 deletions

View File

@@ -19,7 +19,7 @@ var biliHeaders = map[string]string{
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
"Referer": "https://www.bilibili.com/", "Referer": "https://www.bilibili.com/",
"Origin": "https://www.bilibili.com", "Origin": "https://www.bilibili.com",
"Cookie": "buvid3=40BA0253-7F5C-06C1-12CE-871EC008DB2096426infoc;", "Cookie": "buvid4=86D528BE-0AAA-CF7C-563F-48F8E3F133C140694-023050121-%2FNOyo2MbSyMEJ2aIs%2BzIdw%3D%3D",
} }
type BilibiliVideo struct { type BilibiliVideo struct {
@@ -88,6 +88,7 @@ func NewBilibiliViedo() *BilibiliVideo {
if resp.Get("code").String() != "0" { if resp.Get("code").String() != "0" {
return errors.New("failed to find required data") return errors.New("failed to find required data")
} }
fmt.Println(resp.String())
r := regexp.MustCompile("</?em[^>]*>") r := regexp.MustCompile("</?em[^>]*>")
resp.Get("data.result").ForEach(func(key, value gjson.Result) bool { resp.Get("data.result").ForEach(func(key, value gjson.Result) bool {
*result = append(*result, miaosic.MediaInfo{ *result = append(*result, miaosic.MediaInfo{

View File

@@ -19,7 +19,7 @@ func (k *Kugou) MatchPlaylist(uri string) (miaosic.MetaData, bool) {
matches := playlistIdRegex.FindStringSubmatch(uri) matches := playlistIdRegex.FindStringSubmatch(uri)
return miaosic.MetaData{ return miaosic.MetaData{
Provider: k.GetName(), Provider: k.GetName(),
Identifier: matches[1], Identifier: "gcid_" + matches[1],
}, true }, true
} }
return miaosic.MetaData{}, false return miaosic.MetaData{}, false
@@ -98,6 +98,7 @@ func (k *Kugou) GetPlaylist(meta miaosic.MetaData) (*miaosic.Playlist, error) {
"pagesize": 100, "pagesize": 100,
"plat": 1, "plat": 1,
"type": 1, "type": 1,
"mode": 1,
"area_code": 1, "area_code": 1,
"begin_idx": 0, "begin_idx": 0,
} }
@@ -121,6 +122,7 @@ func (k *Kugou) GetPlaylist(meta miaosic.MetaData) (*miaosic.Playlist, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
//fmt.Println(resp.String())
result := gjson.ParseBytes(resp.Body()) result := gjson.ParseBytes(resp.Body())
if result.Get("error_code").Int() != 0 { if result.Get("error_code").Int() != 0 {
return nil, errors.New("kugou: get playlist error") return nil, errors.New("kugou: get playlist error")

View File

@@ -8,17 +8,31 @@ import (
) )
func TestKugou_GetPlaylist(t *testing.T) { func TestKugou_GetPlaylist(t *testing.T) {
// less than 100 song
playlist, err := testApi.GetPlaylist(miaosic.MetaData{Identifier: "gcid_3zfcfgjcz31z06d"}) playlist, err := testApi.GetPlaylist(miaosic.MetaData{Identifier: "gcid_3zfcfgjcz31z06d"})
require.NoError(t, err) require.NoError(t, err)
fmt.Println(playlist.Medias) fmt.Println(playlist.Medias)
} }
func TestKugou_GetPlaylist_2(t *testing.T) {
// more than 100 song
playlist, err := testApi.GetPlaylist(miaosic.MetaData{Identifier: "gcid_3ztimg53zoz09e"})
require.NoError(t, err)
fmt.Println(playlist.Medias)
}
func TestKugou_getCollectionId(t *testing.T) { func TestKugou_getCollectionId(t *testing.T) {
val, err := testApi.getCollectionId("gcid_3zfcfgjcz31z06d") val, err := testApi.getCollectionId("gcid_3zfcfgjcz31z06d")
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, "collection_3_806499027_106_0", val) require.Equal(t, "collection_3_806499027_106_0", val)
} }
func TestKugou_getCollectionId_2(t *testing.T) {
val, err := testApi.getCollectionId("gcid_3ztimg53zoz09e")
require.NoError(t, err)
require.Equal(t, "collection_3_1551108653_24_0", val)
}
func TestKugou_getPlaylistTitle(t *testing.T) { func TestKugou_getPlaylistTitle(t *testing.T) {
val, err := testApi.getPlaylistTitle("collection_3_806499027_106_0") val, err := testApi.getPlaylistTitle("collection_3_806499027_106_0")
require.NoError(t, err) require.NoError(t, err)