Skip to content

Commit 08ee2cc

Browse files
committed
1
1 parent 15076dd commit 08ee2cc

File tree

5 files changed

+119
-53
lines changed

5 files changed

+119
-53
lines changed

.github/workflows/go.yml

100644100755
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
- name: Set up Go
2222
uses: actions/setup-go@v4
2323
with:
24-
go-version: '1.22'
24+
go-version: '1.24'
2525

2626
- name: Test
2727
run: go test -v ./...

go.mod

100644100755
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module github.com/qydysky/biliApi
22

3-
go 1.22.2
3+
go 1.24
44

5-
require github.com/qydysky/part v0.28.20240501130702
5+
require github.com/qydysky/part v0.28.20250330170611
66

7-
require github.com/andybalholm/brotli v1.1.0 // indirect
7+
require github.com/qydysky/brotli v0.0.0-20240828134800-e9913a6e7ed9 // indirect

go.sum

100644100755
Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
1-
github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M=
2-
github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY=
31
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
42
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
53
github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE=
64
github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78=
75
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
86
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
9-
github.com/qydysky/part v0.28.20240501130702 h1:0riRs+hY628Hd3ohvxAgDN9GL0GpqgPe/G/YIPn8JiQ=
10-
github.com/qydysky/part v0.28.20240501130702/go.mod h1:VMq3GnrK1/7zUufW3foG5oLAk9dw567JmuMyKPTGswc=
7+
github.com/qydysky/brotli v0.0.0-20240828134800-e9913a6e7ed9 h1:k451T+bpsLr+Dq9Ujo+Qtx0iomRA1XXS5ttlEojvfuQ=
8+
github.com/qydysky/brotli v0.0.0-20240828134800-e9913a6e7ed9/go.mod h1:cI8/gy/wjy2Eb+p2IUj2ZuDnC8R5Vrx3O0VMPvMvphA=
9+
github.com/qydysky/part v0.28.20250330170611 h1:8ll4oVALYXi0wFce12r8BkYRdlw8U50VZs7FI6AZTog=
10+
github.com/qydysky/part v0.28.20250330170611/go.mod h1:RHYTy8EbqCP6OioVf6BkvFcfWLNO0S220zl0DDlY84Y=
1111
github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI=
1212
github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
13-
github.com/tklauser/go-sysconf v0.3.13 h1:GBUpcahXSpR2xN01jhkNAbTLRk2Yzgggk8IM08lq3r4=
14-
github.com/tklauser/go-sysconf v0.3.13/go.mod h1:zwleP4Q4OehZHGn4CYZDipCgg9usW5IJePewFCGVEa0=
15-
github.com/tklauser/numcpus v0.7.0 h1:yjuerZP127QG9m5Zh/mSO4wqurYil27tHrqwRoRjpr4=
16-
github.com/tklauser/numcpus v0.7.0/go.mod h1:bb6dMVcj8A42tSE7i32fsIUCbQNllK5iDguyOZRUzAY=
13+
github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU=
14+
github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY=
15+
github.com/tklauser/numcpus v0.9.0 h1:lmyCHtANi8aRUgkckBgoDk1nHCux3n2cgkJLXdQGPDo=
16+
github.com/tklauser/numcpus v0.9.0/go.mod h1:SN6Nq1O3VychhC1npsWostA+oW+VOQTxZrS604NSRyI=
17+
github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU=
18+
github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E=
1719
github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0=
1820
github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
19-
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
20-
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
21+
golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
22+
golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=

main.go

100644100755
Lines changed: 97 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -538,46 +538,107 @@ func (t *biliApi) GetOnlineGoldRank(upUid int, roomid int) (err error, OnlineNum
538538
req := t.pool.Get()
539539
defer t.pool.Put(req)
540540

541-
err = req.Reqf(reqf.Rval{
542-
Url: fmt.Sprintf("https://api.live.bilibili.com/xlive/general-interface/v1/rank/getOnlineGoldRank?ruid=%d&roomId=%d&page=1&pageSize=10", upUid, roomid),
543-
Header: map[string]string{
544-
`Host`: `api.live.bilibili.com`,
545-
`User-Agent`: UA,
546-
`Accept`: `application/json, text/plain, */*`,
547-
`Accept-Language`: `zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2`,
548-
`Accept-Encoding`: `gzip, deflate, br`,
549-
`Origin`: `https://live.bilibili.com`,
550-
`Connection`: `keep-alive`,
551-
`Pragma`: `no-cache`,
552-
`Cache-Control`: `no-cache`,
553-
`Cookie`: t.GetCookiesS(),
554-
},
555-
Proxy: t.proxy,
556-
Timeout: 3 * 1000,
557-
})
558-
if err != nil {
559-
return
560-
}
561-
var j struct {
562-
Code int `json:"code"`
563-
Message string `json:"message"`
564-
TTL int `json:"ttl"`
565-
Data struct {
566-
OnlineNum int `json:"onlineNum"`
567-
} `json:"data"`
568-
}
541+
// api queryContributionRank
542+
{
543+
query := fmt.Sprintf("ruid=%d&room_id=%d&page=1&page_size=100&type=online_rank&switch=contribution_rank&platform=web&web_location=444.8", upUid, roomid)
569544

570-
err = json.Unmarshal(req.Respon, &j)
571-
if err != nil {
572-
return
573-
} else if j.Code != 0 {
574-
err = errors.New(j.Message)
575-
return
545+
if e, v := t.GetNav(); e != nil {
546+
err = e
547+
return
548+
} else if e, queryE := t.Wbi(query, v.WbiImg); e != nil {
549+
err = e
550+
return
551+
} else {
552+
query = queryE
553+
}
554+
555+
err = req.Reqf(reqf.Rval{
556+
Url: "https://api.live.bilibili.com/xlive/general-interface/v1/rank/queryContributionRank?" + query,
557+
Header: map[string]string{
558+
`Host`: `api.live.bilibili.com`,
559+
`User-Agent`: UA,
560+
`Accept`: `application/json, text/plain, */*`,
561+
`Accept-Language`: `zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2`,
562+
`Accept-Encoding`: `gzip, deflate, br`,
563+
`Origin`: `https://live.bilibili.com`,
564+
`Connection`: `keep-alive`,
565+
`Pragma`: `no-cache`,
566+
`Cache-Control`: `no-cache`,
567+
`Cookie`: t.GetCookiesS(),
568+
},
569+
Proxy: t.proxy,
570+
Timeout: 3 * 1000,
571+
})
572+
if err == nil {
573+
var j struct {
574+
Code int `json:"code"`
575+
Message string `json:"message"`
576+
TTL int `json:"ttl"`
577+
Data struct {
578+
Count int `json:"count"`
579+
} `json:"data"`
580+
}
581+
582+
err = json.Unmarshal(req.Respon, &j)
583+
if err != nil {
584+
return
585+
} else if j.Code != 0 {
586+
err = errors.New(j.Message)
587+
return
588+
}
589+
590+
OnlineNum = j.Data.Count
591+
592+
t.SetCookies(req.Response.Cookies())
593+
return
594+
}
576595
}
577596

578-
OnlineNum = j.Data.OnlineNum
597+
// api getOnlineGoldRank
598+
{
599+
600+
err = req.Reqf(reqf.Rval{
601+
Url: fmt.Sprintf("https://api.live.bilibili.com/xlive/general-interface/v1/rank/getOnlineGoldRank?ruid=%d&roomId=%d&page=1&pageSize=10", upUid, roomid),
602+
Header: map[string]string{
603+
`Host`: `api.live.bilibili.com`,
604+
`User-Agent`: UA,
605+
`Accept`: `application/json, text/plain, */*`,
606+
`Accept-Language`: `zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2`,
607+
`Accept-Encoding`: `gzip, deflate, br`,
608+
`Origin`: `https://live.bilibili.com`,
609+
`Connection`: `keep-alive`,
610+
`Pragma`: `no-cache`,
611+
`Cache-Control`: `no-cache`,
612+
`Cookie`: t.GetCookiesS(),
613+
},
614+
Proxy: t.proxy,
615+
Timeout: 3 * 1000,
616+
})
617+
if err == nil {
618+
var j struct {
619+
Code int `json:"code"`
620+
Message string `json:"message"`
621+
TTL int `json:"ttl"`
622+
Data struct {
623+
OnlineNum int `json:"onlineNum"`
624+
} `json:"data"`
625+
}
626+
627+
err = json.Unmarshal(req.Respon, &j)
628+
if err != nil {
629+
return
630+
} else if j.Code != 0 {
631+
err = errors.New(j.Message)
632+
return
633+
}
634+
635+
OnlineNum = j.Data.OnlineNum
636+
637+
t.SetCookies(req.Response.Cookies())
638+
return
639+
}
640+
}
579641

580-
t.SetCookies(req.Response.Cookies())
581642
return
582643
}
583644

main_test.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,12 @@ func TestMain(t *testing.T) {
2626
},
2727
100,
2828
)
29-
var api = cmp.Get(id, func(bai biliApiInter) biliApiInter {
30-
bai.SetReqPool(reqPool)
31-
return bai
29+
30+
var api = cmp.Get(id, cmp.PreFuncCu[biliApiInter]{
31+
Initf: func(bai biliApiInter) biliApiInter {
32+
bai.SetReqPool(reqPool)
33+
return bai
34+
},
3235
})
3336

3437
if err, _, QrcodeKey := api.LoginQrCode(); err != nil {

0 commit comments

Comments
 (0)