forked from Ink-33/BiliAu2Card
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRequestBiliApi.go
38 lines (31 loc) · 1.08 KB
/
RequestBiliApi.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package main
import (
"log"
"regexp"
"strings"
"github.com/tidwall/gjson"
)
const biliAuAPIAddr string = "https://www.bilibili.com/audio/music-service-c/web/song/info/h5?sid="
const biliAudioPlayURL string = "https://api.bilibili.com/audio/music-service-c/shareUrl/redirectHttp?songid="
const biliAudioJumpURL string = "https://www.bilibili.com/audio/au"
func getAuInfo(au string) (Auinfo Auinfo) {
reg, err := regexp.Compile("[0-9]+")
if err != nil {
log.Fatalln(err)
}
Auinfo.AuNumber = strings.Join(reg.FindAllString(au, 1), "")
Auinfo.AuURL = biliAudioPlayURL + Auinfo.AuNumber
Auinfo.AuJumpURL = biliAudioJumpURL + Auinfo.AuNumber
requestAddr := biliAuAPIAddr + Auinfo.AuNumber
body := string(getWbeContent(requestAddr)[:])
Auinfo.AuMsg = gjson.Get(body, "msg").String()
if Auinfo.AuMsg != "success" {
Auinfo.AuStatus = false
return
}
Auinfo.AuStatus = true
Auinfo.AuCoverURL = gjson.Get(body, "data.h5Songs.cover_url").String()
Auinfo.AuTitle = gjson.Get(body, "data.h5Songs.title").String()
Auinfo.AuDesp = gjson.Get(body, "data.h5Songs.author").String()
return
}