From f2fcb148998010d5f9abc9baf2701c633addd2d8 Mon Sep 17 00:00:00 2001 From: qydysky Date: Sat, 3 Apr 2021 16:55:08 +0800 Subject: [PATCH] =?utf8?q?=E4=BC=98=E5=8C=96=E6=B5=81=E7=A8=8B=EF=BC=8C?= =?utf8?q?=E4=BF=AE=E5=A4=8D=E7=99=BB=E5=BD=95=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- F/api.go | 43 +++++++++++++++++++++++++++++-- Reply/F.go | 2 +- bili_danmu.go | 51 +++---------------------------------- demo/config/config_K_v.json | 7 +++-- 4 files changed, 51 insertions(+), 52 deletions(-) diff --git a/F/api.go b/F/api.go index fc78f79..1e276df 100644 --- a/F/api.go +++ b/F/api.go @@ -30,6 +30,12 @@ func Get(key string) { 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, @@ -113,6 +119,9 @@ func Get(key string) { }, } var check = map[string]func()(bool){ + `Uid`:func()(bool){//用戶uid + return c.Uid != 0 + }, `UpUid`:func()(bool){//主播uid return c.UpUid != 0 }, @@ -174,6 +183,9 @@ func Get(key string) { `CheckSwitch_FansMedal`:func()(bool){//切换粉丝牌 return true }, + `Cookie`:func()(bool){//Cookie + return true + }, } if fList,ok := api_can_get[key];ok{ @@ -204,6 +216,17 @@ func Get(key string) { } } +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}//超额请求阻塞,超时将取消 @@ -935,10 +958,25 @@ func Get_Version() (missKey []string) { 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() @@ -1112,6 +1150,7 @@ func Get_cookie() { return } } + return } //短信登录 diff --git a/Reply/F.go b/Reply/F.go index ce02243..7e3ab23 100644 --- a/Reply/F.go +++ b/Reply/F.go @@ -256,7 +256,6 @@ func Saveflvf(){ go func(){ saveflv.cancel.Wait() rr.Close() - p.FileMove(saveflv.path+".flv.dtmp", saveflv.path+".flv") }() @@ -306,6 +305,7 @@ func Saveflvf(){ l.L(`I: `,"结束") Ass_f("", time.Now())//ass + p.FileMove(saveflv.path+".flv.dtmp", saveflv.path+".flv") if !saveflv.cancel.Islive() {break}//cancel /* Saveflv需要外部组件 diff --git a/bili_danmu.go b/bili_danmu.go index ce65378..d3c4015 100644 --- a/bili_danmu.go +++ b/bili_danmu.go @@ -111,53 +111,10 @@ func Demo(roomid ...int) { //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() //兑换硬币 diff --git a/demo/config/config_K_v.json b/demo/config/config_K_v.json index 9711187..740aae6 100644 --- a/demo/config/config_K_v.json +++ b/demo/config/config_K_v.json @@ -33,7 +33,6 @@ "其他":"", "发送还有几天过期的礼物":3, "保持牌子亮着":true, - "扫码登录自动打开标签页":true, "日志显示":["I: ","W: ","E: "], "统计营收":true, "Gtk弹幕窗":true, @@ -58,5 +57,9 @@ "cookie保护":"下填路径", "cookie加密公钥":"public.pem", - "cookie解密私钥":"private.pem" + "cookie解密私钥":"private.pem", + + "扫码登录-help":"当扫码登陆设置为true时,每次启动会检查,若失败则会要求登录", + "扫码登录":true, + "扫码登录自动打开标签页":true } \ No newline at end of file -- 2.39.2