init: git clone https://github.com/iuroc/bilidown.git
This commit is contained in:
@@ -0,0 +1,146 @@
|
||||
package bilibili_test
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"bilidown/bilibili"
|
||||
"bilidown/util"
|
||||
|
||||
"github.com/skip2/go-qrcode"
|
||||
_ "modernc.org/sqlite"
|
||||
)
|
||||
|
||||
const TEST_SESSDATA = ""
|
||||
const TEST_BVID = "BV1KX4y1V7sA" // 普通合集
|
||||
const TEST_CID = 305542578 // 普通分集
|
||||
const TEST_BVID_HDR = "BV1rp4y1e745" // HDR 合集
|
||||
const TEST_CID_HDR = 244954665 // HDR 分集
|
||||
const TEST_EPID = 835909 // 剧集
|
||||
const TEST_SSID = 48744 // 番剧
|
||||
|
||||
func TestBiliClient(t *testing.T) {
|
||||
client := bilibili.BiliClient{SESSDATA: TEST_SESSDATA}
|
||||
check, err := client.CheckLogin()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if check {
|
||||
fmt.Println("SESSDATA 有效")
|
||||
} else {
|
||||
fmt.Println("SESSDATA 无效")
|
||||
}
|
||||
}
|
||||
|
||||
func TestNewQRInfo(t *testing.T) {
|
||||
client := bilibili.BiliClient{}
|
||||
info, err := client.NewQRInfo()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
fmt.Printf("二维码信息:%+v", info)
|
||||
}
|
||||
|
||||
func TestGetQRStatus(t *testing.T) {
|
||||
client := bilibili.BiliClient{}
|
||||
qrInfo, err := client.NewQRInfo()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
qr, err := qrcode.New(qrInfo.URL, qrcode.Low)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
fmt.Println(qr.ToSmallString(false))
|
||||
|
||||
for {
|
||||
qrStatus, sessdata, err := client.GetQRStatus(qrInfo.QrcodeKey)
|
||||
fmt.Println(qrStatus.Message)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if qrStatus.Code == bilibili.QR_SUCCESS {
|
||||
fmt.Println("登录成功")
|
||||
fmt.Println(sessdata)
|
||||
break
|
||||
} else if qrStatus.Code == bilibili.QR_EXPIRES {
|
||||
break
|
||||
}
|
||||
time.Sleep(time.Second)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetBVInfo(t *testing.T) {
|
||||
client := bilibili.BiliClient{SESSDATA: TEST_SESSDATA}
|
||||
videoInfo, err := client.GetVideoInfo(TEST_BVID)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
fmt.Printf("%+v", videoInfo)
|
||||
}
|
||||
|
||||
func TestGetSeasonInfo(t *testing.T) {
|
||||
client := bilibili.BiliClient{SESSDATA: TEST_SESSDATA}
|
||||
seasonInfo, err := client.GetSeasonInfo(TEST_EPID, TEST_SSID)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
fmt.Printf("%+v", seasonInfo)
|
||||
}
|
||||
|
||||
func TestGetPlayInfo(t *testing.T) {
|
||||
client := bilibili.BiliClient{SESSDATA: TEST_SESSDATA}
|
||||
playInfo, err := client.GetPlayInfo(TEST_BVID_HDR, TEST_CID_HDR)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
a, _ := json.Marshal(playInfo.AcceptQuality)
|
||||
b, _ := json.Marshal(playInfo.AcceptDescription)
|
||||
c, _ := json.Marshal(playInfo.SupportFormats)
|
||||
|
||||
fmt.Println(string(a))
|
||||
fmt.Println(string(b))
|
||||
fmt.Println(string(c))
|
||||
}
|
||||
|
||||
func TestSaveSessdata(t *testing.T) {
|
||||
db := util.MustGetDB("../data.db")
|
||||
defer db.Close()
|
||||
err := bilibili.SaveSessdata(db, TEST_SESSDATA)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
} else {
|
||||
fmt.Println("SESSDATA 保存成功")
|
||||
}
|
||||
sessdata, err := bilibili.GetSessdata(db)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if sessdata != TEST_SESSDATA {
|
||||
t.Error("SESSDATA 读写不一致")
|
||||
} else {
|
||||
fmt.Println("SESSDATA 读取成功")
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetSessdata(t *testing.T) {
|
||||
db := util.MustGetDB("../data.db")
|
||||
defer db.Close()
|
||||
sessdata, err := bilibili.GetSessdata(db)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
fmt.Println(sessdata)
|
||||
}
|
||||
|
||||
func TestGetPopularVideos(t *testing.T) {
|
||||
client := bilibili.BiliClient{SESSDATA: TEST_SESSDATA}
|
||||
videos, err := client.GetPopularVideos()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
fmt.Printf("%+v", videos)
|
||||
}
|
||||
Reference in New Issue
Block a user