if api_limit.TO() {return}//超额请求阻塞,超时将取消
var api_can_get = map[string][]func()([]string){
+ `Cookie`:[]func()([]string){//Cookie
+ Get_cookie,
+ },
+ `Uid`:[]func()([]string){//用戶uid
+ GetUid,
+ },
`UpUid`:[]func()([]string){//主播uid
getInfoByRoom,
getRoomPlayInfo,
},
}
var check = map[string]func()(bool){
+ `Uid`:func()(bool){//用戶uid
+ return c.Uid != 0
+ },
`UpUid`:func()(bool){//主播uid
return c.UpUid != 0
},
`CheckSwitch_FansMedal`:func()(bool){//切换粉丝牌
return true
},
+ `Cookie`:func()(bool){//Cookie
+ return true
+ },
}
if fList,ok := api_can_get[key];ok{
}
}
+func GetUid() (missKey []string) {
+ if uid,ok := c.Cookie.LoadV(`DedeUserID`).(string);!ok{//cookie中无DedeUserID
+ missKey = append(missKey, `Cookie`)
+ } else if uid,e := strconv.Atoi(uid);e != nil{
+ missKey = append(missKey, `Cookie`)
+ } else {
+ c.Uid = uid
+ }
+ return
+}
+
func Info(UpUid int) (info J.Info) {
apilog := apilog.Base_add(`Info`)
if api_limit.TO() {return}//超额请求阻塞,超时将取消
var boot_Get_cookie funcCtrl.FlashFunc//新的替代旧的
//扫码登录
-func Get_cookie() {
-
+func Get_cookie() (missKey []string) {
+ if v,ok := c.K_v.LoadV(`扫码登录`).(bool);!ok || !v {return}
+
apilog := apilog.Base_add(`获取Cookie`)
+ if p.Checkfile().IsExist("cookie.txt") {//读取cookie文件
+ if cookieString := string(CookieGet());cookieString != ``{
+ for k,v := range p.Cookies_String_2_Map(cookieString){//cookie存入全局变量syncmap
+ c.Cookie.Store(k, v)
+ }
+ if miss := CookieCheck([]string{
+ `bili_jct`,
+ `DedeUserID`,
+ });len(miss) == 0 {
+ return
+ }
+ }
+ }
+
//获取id
id := boot_Get_cookie.Flash()
defer boot_Get_cookie.UnFlash()
return
}
}
+ return
}
//短信登录
go func(){
saveflv.cancel.Wait()
rr.Close()
- p.FileMove(saveflv.path+".flv.dtmp", saveflv.path+".flv")
}()
l.L(`I: `,"结束")
Ass_f("", time.Now())//ass
+ p.FileMove(saveflv.path+".flv.dtmp", saveflv.path+".flv")
if !saveflv.cancel.Islive() {break}//cancel
/*
Saveflv需要外部组件
//ctrl+c退出
signal.Notify(interrupt, os.Interrupt)
- //获取cookies
- {
- var get_cookie = func(){
- danmulog.L(`I: `, "未检测到cookie.txt,如果需要登录请在本机打开以下网址扫码登录,不需要请忽略")
- //获取cookie
- F.Get_cookie()
- //验证cookie
- if missKey := F.CookieCheck([]string{
- `bili_jct`,
- `DedeUserID`,
- });len(missKey) == 0 {
- danmulog.L(`I: `,"你已登录,刷新房间!")
- //刷新
- c.Danmu_Main_mq.Push_tag(`change_room`,nil)
- }
- }
-
- if !p.Checkfile().IsExist("cookie.txt") {//读取cookie文件
- go get_cookie()
- p.Sys().Timeoutf(3)
- } else {
-
- cookieString := string(F.CookieGet())
-
- if cookieString == `` {//cookie.txt为空
- danmulog.L(`T: `, `cookie.txt为空`)
- go get_cookie()
- p.Sys().Timeoutf(3)
- } else {
- for k,v := range p.Cookies_String_2_Map(cookieString){//cookie存入全局变量syncmap
- c.Cookie.Store(k, v)
- }
- if uid,ok := c.Cookie.LoadV(`DedeUserID`).(string);!ok{//cookie中无DedeUserID
- danmulog.L(`T: `, `读取cookie错误,无DedeUserID`)
- go get_cookie()
- p.Sys().Timeoutf(3)
- } else if uid,e := strconv.Atoi(uid);e != nil{
- danmulog.L(`E: `, e)
- go get_cookie()
- p.Sys().Timeoutf(3)
- } else {
- c.Uid = uid
- }
- }
- }
- }
-
+ //获取cookie
+ F.Get(`Cookie`)
+ //获取uid
+ F.Get(`Uid`)
//命令行操作 切换房间 发送弹幕
go F.Cmd()
//兑换硬币
"其他":"",
"发送还有几天过期的礼物":3,
"保持牌子亮着":true,
- "扫码登录自动打开标签页":true,
"日志显示":["I: ","W: ","E: "],
"统计营收":true,
"Gtk弹幕窗":true,
"cookie保护":"下填路径",
"cookie加密公钥":"public.pem",
- "cookie解密私钥":"private.pem"
+ "cookie解密私钥":"private.pem",
+
+ "扫码登录-help":"当扫码登陆设置为true时,每次启动会检查,若失败则会要求登录",
+ "扫码登录":true,
+ "扫码登录自动打开标签页":true
}
\ No newline at end of file