Compare commits

...

2 Commits

Author SHA1 Message Date
aynakeya
4c16b17d06 update bili-video playlist 2025-10-08 21:13:01 +08:00
aynakeya
f27d4084c9 update lyric parsing 2025-10-06 23:45:52 +08:00
5 changed files with 80 additions and 5 deletions

View File

@@ -8,7 +8,7 @@ import (
"strings"
)
var timeTagRegex = regexp.MustCompile("\\[[0-9]+:[0-9]+(\\.[0-9]+)?\\]")
var timeTagRegex = regexp.MustCompile("\\[[0-9]+(\\.[0-9]+)?:[0-9]+(\\.[0-9]+)?\\]")
type LyricLine struct {
Time float64 `json:"time"` // in seconds

73
lyric_test.go Normal file
View File

@@ -0,0 +1,73 @@
package miaosic
import (
"github.com/stretchr/testify/require"
"testing"
)
var lrc1 = `[0:0]没有你陪伴我真的好孤单 - 冷漠 (MoMo Leng)
[0.17300000000000001:0.3800000000000008]词:桑爱
[0.3461666666666667:0.7699999999999996]曲:路勇
[0.5193333333333333:0.16000000000000014]城市的夜晚霓虹灯璀璨
[0.5850000000000001:0.10000000000000142]
[0.6136666666666667:0.8200000000000003]点亮了黑暗赶不走孤单
[0.6895:0.36999999999999744]
[0.7108333333333333:0.6499999999999986]午夜和白天不停的交换
[0.7953333333333333:0.7199999999999989]
[0.8071666666666667:0.4299999999999997]游走在街头一个人落单
[0.8935:0.6099999999999994]
[0.9041666666666667:0.25]节日的狂欢情人的浪漫
[0.9756666666666667:0.5399999999999991]
[0.999:0.9399999999999977]所有的快乐都和我无关
[1.0753333333333333:0.519999999999996]
[1.095:0.7000000000000028]无聊的工作让人很心烦
[1.18:0.7999999999999972]
[1.1916666666666667:0.5]我又想你了你人在哪端
[1.3021666666666667:0.12999999999999545]
[1.3371666666666668:0.23000000000000398]没有你陪伴 我真的好孤单
[1.4273333333333333:0.6400000000000006]我的心好慌乱 被恐惧填满
[1.5246666666666668:0.480000000000004]没有你的日子 我真的好茫然
[1.6201666666666668:0.21000000000000796]整天就像丢了灵魂一般
[1.7111666666666667:0.6700000000000017]
[1.7235:0.4099999999999966]没有你陪伴 我真的好孤单
[1.8133333333333332:0.7999999999999972]我的心好慌乱 不知怎么办
[1.91:0.5999999999999943]没有你在身边 真的好不习惯
[2.0046666666666666:0.28000000000000114]如果现在回头会不会太晚
[2.097:0.8199999999999932]
[2.495833333333333:0.75]节日的狂欢情人的浪漫
[2.568833333333333:0.12999999999999545]
[2.5896666666666666:0.37999999999999545]所有的快乐都和我无关
[2.6751666666666667:0.5099999999999909]
[2.686166666666667:0.17000000000001592]无聊的工作让人很心烦
[2.7703333333333333:0.21999999999999886]
[2.782166666666667:0.9300000000000068]我又想你了你人在哪端
[2.895166666666667:0.710000000000008]
[2.9268333333333336:0.6100000000000136]没有你陪伴 我真的好孤单
[3.0188333333333333:0.12999999999999545]我的心好慌乱 被恐惧填满
[3.1028333333333333:0.1699999999999875]
[3.1146666666666665:0.8799999999999955]没有你的日子 我真的好茫然
[3.2093333333333334:0.5600000000000023]整天就像丢了灵魂一般
[3.3005:0.030000000000001137]
[3.312:0.7199999999999989]没有你陪伴 我真的好孤单
[3.4035:0.21000000000000796]我的心好慌乱 不知怎么办
[3.5:0]没有你在身边 真的好不习惯
[3.594666666666667:0.6800000000000068]如果现在回头会不会太晚
[3.6875:0.25]
[3.6991666666666663:0.9499999999999886]没有你陪伴 我真的好孤单
[3.7901666666666665:0.4099999999999966]我的心好慌乱 被恐惧填满
[3.873666666666667:0.4200000000000159]
[3.8848333333333334:0.09000000000000341]没有你的日子 我真的好茫然
[3.9814999999999996:0.8899999999999864]整天就像丢了灵魂一般
[4.072:0.3199999999999932]
[4.083333333333333:0]没有你陪伴 我真的好孤单
[4.174333333333333:0.46000000000000796]我的心好慌乱 不知怎么办
[4.270666666666667:0.2400000000000091]没有你在身边 真的好不习惯
[4.365333333333334:0.9200000000000159]如果现在回头会不会太晚
[4.463166666666667:0.7900000000000205]如果现在回头会不会太晚
[4.5465:0.7900000000000205]
[1666666666.65:0]`
func TestParseLyrics(t *testing.T) {
lrc := ParseLyrics("a", lrc1)
require.Greater(t, 3, len(lrc.Content))
}

View File

@@ -16,7 +16,7 @@ import (
var _ = (miaosic.MediaProvider)(&BilibiliVideo{})
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/141.0.0.0 Safari/537.36",
"Referer": "https://www.bilibili.com/",
"Origin": "https://www.bilibili.com",
"Cookie": "buvid4=86D528BE-0AAA-CF7C-563F-48F8E3F133C140694-023050121-%2FNOyo2MbSyMEJ2aIs%2BzIdw%3D%3D",

View File

@@ -87,6 +87,8 @@ func (n *BilibiliVideo) getCollectionPlaylist(id string) (*miaosic.Playlist, err
return nil, miaosic.ErrorExternalApi
}
result := gjson.ParseBytes(resp.Body())
//pp.Println(page, fmt.Sprintf(collApi, id, page))
//pp.Println(resp.String())
if result.Get("code").Int() != 0 {
return nil, errors.New("bilivideo: " + result.Get("message").String())
}

View File

@@ -51,7 +51,7 @@ func TestBilibiliVideo_GetPlaylist_Fav(t *testing.T) {
require.NoError(t, err)
require.Equal(t, meta, playlist.Meta)
require.Equal(t, "AMV", playlist.Title)
require.GreaterOrEqual(t, 12, len(playlist.Medias))
require.LessOrEqual(t, 12, len(playlist.Medias))
}
func TestBilibiliVideo_GetPlaylist_Fav2(t *testing.T) {
@@ -62,7 +62,7 @@ func TestBilibiliVideo_GetPlaylist_Fav2(t *testing.T) {
require.NoError(t, err)
require.Equal(t, meta, playlist.Meta)
require.Equal(t, "歌", playlist.Title)
require.GreaterOrEqual(t, 26, len(playlist.Medias))
require.LessOrEqual(t, 26, len(playlist.Medias))
}
func TestBilibiliVideo_GetPlaylist_Fav3(t *testing.T) {
@@ -84,5 +84,5 @@ func TestBilibiliVideo_GetPlaylist_Coll1(t *testing.T) {
require.NoError(t, err)
require.Equal(t, meta, playlist.Meta)
require.Equal(t, "合集·巴以冲突-世界在关注什么?", playlist.Title)
require.Equal(t, 876, 95)
//require.Equal(t, 876, 95)
}