// 牌子字段
// 获取牌子信息
-func Get_list_in_room() (array []struct {
+func Get_list_in_room(RoomID, TargetID int) (array []struct {
TargetID int
IsLighted int
MedalID int
}
//getHotRank
- if err, res := biliApi.GetFansMedal(); err != nil {
+ if err, res := biliApi.GetFansMedal(RoomID, TargetID); err != nil {
apilog.L(`E: `, err)
} else {
return res
var medal_id int //将要使用的牌子id
//检查是否有此直播间的牌子
{
- medal_list := Get_list_in_room()
+ medal_list := Get_list_in_room(c.Roomid, c.UpUid)
for _, v := range medal_list {
if v.TargetID != c.UpUid {
continue
}
}
}
-
- var (
- post_url string
- post_str string
- )
- { //生成佩戴信息
- csrf, _ := c.Cookie.LoadV(`bili_jct`).(string)
- if csrf == `` {
- apilog.L(`E: `, "Cookie错误,无bili_jct=")
- return
- }
-
- post_str = `csrf_token=` + csrf + `&csrf=` + csrf
-
- if medal_id == 0 { //无牌,不佩戴牌子
- post_url = `https://api.live.bilibili.com/xlive/web-room/v1/fansMedal/take_off`
- } else {
- post_url = `https://api.live.bilibili.com/xlive/web-room/v1/fansMedal/wear`
- post_str = `medal_id=` + strconv.Itoa(medal_id) + `&` + post_str
- }
- }
{ //切换牌子
- r := c.ReqPool.Get()
- defer c.ReqPool.Put(r)
- if e := r.Reqf(reqf.Rval{
- Url: post_url,
- PostStr: post_str,
- Header: map[string]string{
- `Cookie`: reqf.Map_2_Cookies_String(Cookie),
- `Content-Type`: `application/x-www-form-urlencoded; charset=UTF-8`,
- `Referer`: `https://passport.bilibili.com/login`,
- },
- Proxy: c.Proxy,
- Timeout: 10 * 1000,
- Retry: 2,
- }); e != nil {
- apilog.L(`E: `, e)
- return
- }
-
- var res J.FansMedal
-
- if e := json.Unmarshal(r.Respon, &res); e != nil {
- apilog.L(`E: `, e)
- return
- } else if res.Code != 0 {
- apilog.L(`E: `, res.Message)
- return
- }
+ err := biliApi.SetFansMedal(medal_id)
- if res.Message == "佩戴成功" {
+ if err == nil {
if medal_id == 0 {
apilog.L(`I: `, `已取下粉丝牌`)
} else {
SetReqPool(pool *pool.Buf[reqf.Req])
SetProxy(proxy string)
SetCookies(cookies []*http.Cookie)
+ GetCookie(name string) (error, string)
LoginQrCode() (err error, imgUrl string, QrcodeKey string)
LoginQrPoll(QrcodeKey string) (err error, cookies []*http.Cookie)
RoomID int
TargetID int
})
- GetFansMedal() (err error, res []struct {
+ GetFansMedal(RoomID, TargetID int) (err error, res []struct {
TargetID int
IsLighted int
MedalID int
RoomID int
})
+ SetFansMedal(medalId int) (err error)
}
flog.L(`T: `, `开始`)
defer flog.L(`I: `, `完成`)
- medals := F.Get_list_in_room()
+ medals := F.Get_list_in_room(0, 0)
if len(medals) == 0 {
return
}
}
//重试,使用点赞
- medals = F.Get_list_in_room()
+ medals = F.Get_list_in_room(0, 0)
if len(medals) == 0 {
return
}
}
//重试,使用历史弹幕
- medals = F.Get_list_in_room()
+ medals = F.Get_list_in_room(0, 0)
if len(medals) == 0 {
return
}
require (
github.com/google/uuid v1.6.0
- github.com/qydysky/biliApi v0.0.0-20240501142006-df911ba3ac1f
+ github.com/qydysky/biliApi v0.0.0-20240502022948-a1b9a41f2a81
golang.org/x/exp v0.0.0-20240416160154-fe59bbe5cc7f
)
github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/qydysky/biliApi v0.0.0-20240501142006-df911ba3ac1f h1:n9nyaPuPV2CBSjDk7oLOO3tjzFets9PnNEV31QKpBAo=
-github.com/qydysky/biliApi v0.0.0-20240501142006-df911ba3ac1f/go.mod h1:nhubuLaNo2LIkgoCt++A5KNtra53ttGPXsahjaGXCl4=
+github.com/qydysky/biliApi v0.0.0-20240502022948-a1b9a41f2a81 h1:ga/7RfO/YXO7Sim+YeMZ7ndJVomXBuyBfHRLBn9tqhs=
+github.com/qydysky/biliApi v0.0.0-20240502022948-a1b9a41f2a81/go.mod h1:nhubuLaNo2LIkgoCt++A5KNtra53ttGPXsahjaGXCl4=
github.com/qydysky/part v0.28.20240501130702 h1:0riRs+hY628Hd3ohvxAgDN9GL0GpqgPe/G/YIPn8JiQ=
github.com/qydysky/part v0.28.20240501130702/go.mod h1:VMq3GnrK1/7zUufW3foG5oLAk9dw567JmuMyKPTGswc=
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=