mirror of
https://github.com/AynaLivePlayer/miaosic.git
synced 2025-12-06 13:02:48 +08:00
add new bili video collection url format
This commit is contained in:
@@ -25,6 +25,7 @@ func fetchParsedResult[P dphttp.ParserResultType](requester dphttp.IRequester, r
|
||||
}
|
||||
|
||||
var playlistCollectionRegex = regexp.MustCompile(`space.bilibili.com/(\d+)/channel/collectiondetail\?sid=(\d+)`)
|
||||
var playlistCollection1Regex = regexp.MustCompile(`space\.bilibili\.com/(\d+)/lists/(\d+)`)
|
||||
var playlistFavRegex = regexp.MustCompile(`space.bilibili.com/(\d+)/favlist\?fid=(\d+)`)
|
||||
|
||||
func makePlaylistId(ptype string, id string) string {
|
||||
@@ -50,6 +51,13 @@ func (n *BilibiliVideo) MatchPlaylist(uri string) (miaosic.MetaData, bool) {
|
||||
Identifier: makePlaylistId(playlistCollection, matches[2]),
|
||||
}, true
|
||||
}
|
||||
if playlistCollection1Regex.MatchString(uri) {
|
||||
matches := playlistCollection1Regex.FindStringSubmatch(uri)
|
||||
return miaosic.MetaData{
|
||||
Provider: n.GetName(),
|
||||
Identifier: makePlaylistId(playlistCollection, matches[2]),
|
||||
}, true
|
||||
}
|
||||
if playlistFavRegex.MatchString(uri) {
|
||||
matches := playlistFavRegex.FindStringSubmatch(uri)
|
||||
return miaosic.MetaData{
|
||||
|
||||
@@ -14,6 +14,10 @@ func TestBilibiliVideo_MatchPlaylist_Ok(t *testing.T) {
|
||||
require.True(t, ok)
|
||||
require.Equal(t, api.GetName(), meta.Provider)
|
||||
require.Equal(t, playlistCollection+"_1889103", meta.Identifier)
|
||||
meta, ok = api.MatchPlaylist("https://space.bilibili.com/346563107/lists/262019?type=season")
|
||||
require.True(t, ok)
|
||||
require.Equal(t, api.GetName(), meta.Provider)
|
||||
require.Equal(t, playlistCollection+"_262019", meta.Identifier)
|
||||
}
|
||||
|
||||
func TestBilibiliVideo_MatchPlaylist_Fail(t *testing.T) {
|
||||
@@ -47,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, len(playlist.Medias), 12)
|
||||
require.GreaterOrEqual(t, 12, len(playlist.Medias))
|
||||
}
|
||||
|
||||
func TestBilibiliVideo_GetPlaylist_Fav2(t *testing.T) {
|
||||
@@ -58,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, len(playlist.Medias), 26)
|
||||
require.GreaterOrEqual(t, 26, len(playlist.Medias))
|
||||
}
|
||||
|
||||
func TestBilibiliVideo_GetPlaylist_Fav3(t *testing.T) {
|
||||
@@ -69,5 +73,16 @@ func TestBilibiliVideo_GetPlaylist_Fav3(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, meta, playlist.Meta)
|
||||
require.Equal(t, "Vocaloid Music", playlist.Title)
|
||||
require.Equal(t, len(playlist.Medias), 881)
|
||||
require.Equal(t, 876, len(playlist.Medias))
|
||||
}
|
||||
|
||||
func TestBilibiliVideo_GetPlaylist_Coll1(t *testing.T) {
|
||||
uri := "https://space.bilibili.com/346563107/channel/collectiondetail?sid=1889103&ctype=0"
|
||||
meta, ok := api.MatchPlaylist(uri)
|
||||
require.True(t, ok)
|
||||
playlist, err := api.GetPlaylist(meta)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, meta, playlist.Meta)
|
||||
require.Equal(t, "合集·巴以冲突-世界在关注什么?", playlist.Title)
|
||||
require.Equal(t, 876, 95)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user