From 2c7be4a0c712996ce661a14d2f12f26f7565ec50 Mon Sep 17 00:00:00 2001 From: qydysky Date: Mon, 28 Dec 2020 23:34:42 +0800 Subject: [PATCH] =?utf8?q?log=E6=9B=BF=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- CV/Const.go | 4 - CV/Var.go | 13 +++ F/api.go | 200 +++++++++++++++++++++++---------------------- Reply/F.go | 4 +- Reply/Heartbeat.go | 4 - Reply/Msg.go | 5 +- Reply/Reply.go | 117 ++++++++++++-------------- bili_danmu.go | 42 +++++----- demo/go.mod | 2 +- demo/go.sum | 6 ++ 10 files changed, 198 insertions(+), 199 deletions(-) diff --git a/CV/Const.go b/CV/Const.go index 3aab072..f177009 100644 --- a/CV/Const.go +++ b/CV/Const.go @@ -1,9 +1,5 @@ package cv -const ( - LogLevel = 1 -) - //from source/player-loader-2.0.11.min.js const ( WS_OP_HEARTBEAT = 2 diff --git a/CV/Var.go b/CV/Var.go index 7985468..f8b6226 100644 --- a/CV/Var.go +++ b/CV/Var.go @@ -3,6 +3,7 @@ package cv import ( "time" mq "github.com/qydysky/part/msgq" + log "github.com/qydysky/part/log" ) @@ -30,6 +31,18 @@ type Danmu_Main_mq_item struct { } var Danmu_Main_mq = mq.New(10) +//日志 +var Log = log.New(log.Config{ + File:`danmu.log`, + Stdout:true, + Prefix_string:map[string]struct{}{ + `T: `:log.On, + `I: `:log.On, + `N: `:log.On, + `E: `:log.On, + }, +}) + //from player-loader-2.0.11.min.js /* customAuthParam diff --git a/F/api.go b/F/api.go index e88b66f..5d8e194 100644 --- a/F/api.go +++ b/F/api.go @@ -25,14 +25,11 @@ type api struct { Token string } -var apilog = p.Logf().New().Base(-1, "api.go").Level(2) +var apilog = c.Log.Base(`api`) var api_limit = p.Limit(1,2000,15000)//频率限制1次/2s,最大等待时间15s func New_api(Roomid int) (o *api) { - apilog.Base(-1, "新建") - defer apilog.Base(0) - - apilog.T("ok") + apilog.Base_add(`新建`).L(`T: `,"ok") o = new(api) o.Roomid = Roomid o.Get_info() @@ -42,11 +39,12 @@ func New_api(Roomid int) (o *api) { func (i *api) Get_info() (o *api) { o = i - apilog.Base(-1, "获取房号") - defer apilog.Base(0) + apilog := apilog.Base_add(`获取房号`) + defer apilog.L(`T: `,"ok") + if o.Roomid == 0 { - apilog.E("还未New_api") + apilog.L(`E: `,"还未New_api") return } if api_limit.TO() {return}//超额请求阻塞,超时将取消 @@ -58,9 +56,9 @@ func (i *api) Get_info() (o *api) { }) //uid if tmp := r.S(`"uid":`, `,`, 0, 0);tmp.Err != nil { - // apilog.E("uid", tmp.Err) + // apilog.L(`E: `,"uid", tmp.Err) } else if i,err := strconv.Atoi(tmp.RS[0]); err != nil{ - apilog.E("uid", err) + apilog.L(`E: `,"uid", err) } else { o.Uid = i } @@ -78,11 +76,10 @@ func (i *api) Get_info() (o *api) { } //roomid if tmp := r.S(`"room_id":`, `,`, 0, 0);tmp.Err != nil { - // apilog.E("room_id", tmp.Err) + // apilog.L(`E: `,"room_id", tmp.Err) } else if i,err := strconv.Atoi(tmp.RS[0]); err != nil{ - apilog.E("room_id", err) + apilog.L(`E: `,"room_id", err) } else { - apilog.T("ok") o.Roomid = i } @@ -99,12 +96,12 @@ func (i *api) Get_info() (o *api) { Timeout:10, Retry:2, });err != nil { - apilog.E(err) + apilog.L(`E: `,err) return } res := string(req.Respon) if code := p.Json().GetValFrom(res, "code");code == nil || code.(float64) != 0 { - apilog.E("code", code, p.Json().GetValFrom(res, "message")) + apilog.L(`E: `,"code", code, p.Json().GetValFrom(res, "message")) return } //主播id @@ -116,31 +113,29 @@ func (i *api) Get_info() (o *api) { c.Note = rank_desc } if Uid := p.Json().GetValFrom(res, "data.room_info.uid");Uid == nil { - apilog.E("data.room_info.uid", Uid) + apilog.L(`E: `,"data.room_info.uid", Uid) return } else { o.Uid = int(Uid.(float64)) } if room_id := p.Json().GetValFrom(res, "data.room_info.room_id");room_id == nil { - apilog.E("data.room_info.room_id", room_id) + apilog.L(`E: `,"data.room_info.room_id", room_id) return } else { - apilog.T("ok") o.Roomid = int(room_id.(float64)) } if title := p.Json().GetValFrom(res, "data.room_info.title");title == nil { - apilog.E("data.room_info.title", title) + apilog.L(`E: `,"data.room_info.title", title) return } else { - apilog.T("ok") c.Title = title.(string) } if is_locked := p.Json().GetValFrom(res, "data.room_info.lock_status");is_locked == nil { - apilog.E("data.room_info.is_locked", is_locked) + apilog.L(`E: `,"data.room_info.is_locked", is_locked) return } else if is_locked.(float64) == 1 { - apilog.W("直播间封禁中") + apilog.L(`W: `,"直播间封禁中") o.Locked = true return } @@ -150,8 +145,11 @@ func (i *api) Get_info() (o *api) { func (i *api) Get_live(qn ...string) (o *api) { o = i + apilog := apilog.Base_add(`获取直播流`) + defer apilog.L(`T: `,"ok") + if o.Roomid == 0 { - apilog.E("还未New_api") + apilog.L(`E: `,"还未New_api") return } if api_limit.TO() {return}//超额请求阻塞,超时将取消 @@ -176,7 +174,7 @@ func (i *api) Get_live(qn ...string) (o *api) { }) if e := r.S(`"durl":[`, `]`, 0, 0).Err;e == nil { if urls := p.Json().GetArrayFrom("[" + r.RS[0] + "]", "url");urls != nil { - apilog.W("直播中") + apilog.L(`W: `,"直播中") c.Liveing = true o.Live_status = 1 for _,v := range urls { @@ -202,41 +200,41 @@ func (i *api) Get_live(qn ...string) (o *api) { Timeout:10, Retry:2, });err != nil { - apilog.E(err) + apilog.L(`E: `,err) return } res := string(req.Respon) if code := p.Json().GetValFromS(res, "code");code == nil || code.(float64) != 0 { - apilog.E("code", code) + apilog.L(`E: `,"code", code) return } if is_locked := p.Json().GetValFrom(res, "data.is_locked");is_locked == nil { - apilog.E("data.is_locked", is_locked) + apilog.L(`E: `,"data.is_locked", is_locked) return } else if is_locked.(bool) { - apilog.W("直播间封禁中") + apilog.L(`W: `,"直播间封禁中") o.Locked = true return } if live_status := p.Json().GetValFrom(res, "data.live_status");live_status == nil { - apilog.E("data.live_status", live_status) + apilog.L(`E: `,"data.live_status", live_status) return } else { o.Live_status = live_status.(float64) switch live_status.(float64) { case 2: c.Liveing = false - apilog.W("轮播中") + apilog.L(`W: `,"轮播中") return case 0: //未直播 c.Liveing = false - apilog.W("未在直播") + apilog.L(`W: `,"未在直播") return case 1: c.Liveing = true - apilog.W("直播中") + apilog.L(`W: `,"直播中") default: - apilog.W("live_status:", live_status) + apilog.L(`W: `,"live_status:", live_status) } } if codec0 := p.Json().GetValFrom(res, "data.playurl_info.playurl.stream.[0].format.[0].codec.[0]");codec0 != nil {//直播流链接 @@ -251,7 +249,7 @@ func (i *api) Get_live(qn ...string) (o *api) { o.Live = append(o.Live, host.(string) + base_url.(string) + extra.(string)) } } - if len(o.Live) == 0 {apilog.E("live url is nil");return} + if len(o.Live) == 0 {apilog.L(`E: `,"live url is nil");return} if i := p.Json().GetValFrom(res, "data.playurl_info.playurl.stream.[0].format.[0].codec.[0].current_qn"); i != nil { cu_qn = strconv.Itoa(int(i.(float64))) @@ -266,18 +264,18 @@ func (i *api) Get_live(qn ...string) (o *api) { tmp_qn int e error ) - if tmp_qn,e = strconv.Atoi(qn[0]);e != nil {apilog.E(`qn error`,e);return} + if tmp_qn,e = strconv.Atoi(qn[0]);e != nil {apilog.L(`E: `,`qn error`,e);return} if i,ok := p.Json().GetValFrom(res, "data.playurl_info.playurl.stream.[0].format.[0].codec.[0].accept_qn").([]interface{}); ok && len(i) != 0 { for _,v := range i { if o,ok := v.(float64);ok && int(o) == tmp_qn {accept_qn_request = true} } } if !accept_qn_request { - apilog.E(`qn不在accept_qn中`); + apilog.L(`E: `,`qn不在accept_qn中`); return } if _,ok := c.Default_qn[qn[0]];!ok{ - apilog.W("清晰度未找到", qn[0], ",使用默认") + apilog.L(`W: `,"清晰度未找到", qn[0], ",使用默认") return } if err := req.Reqf(p.Rval{ @@ -289,7 +287,7 @@ func (i *api) Get_live(qn ...string) (o *api) { Timeout:10, Retry:2, });err != nil { - apilog.E(err) + apilog.L(`E: `,err) return } res = string(req.Respon) @@ -305,7 +303,7 @@ func (i *api) Get_live(qn ...string) (o *api) { o.Live = append(o.Live, host.(string) + base_url.(string) + extra.(string)) } } - if len(o.Live) == 0 {apilog.E("live url is nil");return} + if len(o.Live) == 0 {apilog.L(`E: `,"live url is nil");return} if i := p.Json().GetValFrom(res, "data.playurl_info.playurl.stream.[0].format.[0].codec.[0].current_qn"); i != nil { cu_qn = strconv.Itoa(int(i.(float64))) @@ -314,18 +312,17 @@ func (i *api) Get_live(qn ...string) (o *api) { } if v,ok := c.Default_qn[cu_qn];ok { - apilog.W("当前清晰度:", v) + apilog.L(`W: `,"当前清晰度:", v) } return } func (i *api) Get_host_Token() (o *api) { o = i - apilog.Base(-1, "获取host key") - defer apilog.Base(0) + apilog := apilog.Base_add(`获取Token`) if o.Roomid == 0 { - apilog.E("还未New_api") + apilog.L(`E: `,"还未New_api") return } Roomid := strconv.Itoa(o.Roomid) @@ -342,35 +339,35 @@ func (i *api) Get_host_Token() (o *api) { Timeout:10, Retry:2, });err != nil { - apilog.E(err) + apilog.L(`E: `,err) return } res := string(req.Respon) if msg := p.Json().GetValFromS(res, "message");msg == nil || msg != "0" { - apilog.E("message", msg) + apilog.L(`E: `,"message", msg) return } _Token := p.Json().GetValFromS(res, "data.token") if _Token == nil { - apilog.E("data.token", _Token, res) + apilog.L(`E: `,"data.token", _Token, res) return } o.Token = _Token.(string) if host_list := p.Json().GetValFromS(res, "data.host_list");host_list == nil { - apilog.E("data.host_list", host_list) + apilog.L(`E: `,"data.host_list", host_list) return } else { for k, v := range host_list.([]interface{}) { if _host := p.Json().GetValFrom(v, "host");_host == nil { - apilog.E("data.host_list[", k, "].host", _host) + apilog.L(`E: `,"data.host_list[", k, "].host", _host) continue } else { o.Url = append(o.Url, "wss://" + _host.(string) + "/sub") } } - apilog.T("ok") + apilog.L(`T: `,"ok") } return @@ -379,6 +376,7 @@ func (i *api) Get_host_Token() (o *api) { func Get_face_src(uid string) (string) { if uid == "" {return ""} if api_limit.TO() {return ""}//超额请求阻塞,超时将取消 + apilog := apilog.Base_add(`获取头像`) req := p.Req() if err := req.Reqf(p.Rval{ @@ -390,18 +388,18 @@ func Get_face_src(uid string) (string) { Timeout:10, Retry:2, });err != nil { - apilog.Base(1, "获取face").E(err) + apilog.L(`E: `,err) return "" } res := string(req.Respon) if msg := p.Json().GetValFromS(res, "message");msg == nil || msg != "0" { - apilog.Base(1, "获取face").E("message", msg) + apilog.L(`E: `,"message", msg) return "" } rface := p.Json().GetValFromS(res, "data.rface") if rface == nil { - apilog.Base(1, "获取face").E("data.rface", rface) + apilog.L(`E: `,"data.rface", rface) return "" } return rface.(string) + `@58w_58h` @@ -409,16 +407,16 @@ func Get_face_src(uid string) (string) { func (i *api) Get_OnlineGoldRank() { if i.Uid == 0 || c.Roomid == 0 { - apilog.Base(1, "Get_OnlineGoldRank").E("i.Uid == 0 || c.Roomid == 0") + apilog.Base_add("Get_OnlineGoldRank").L(`E: `,"i.Uid == 0 || c.Roomid == 0") return } if api_limit.TO() {return}//超额请求阻塞,超时将取消 + apilog := apilog.Base_add(`获取贡献榜`) var session_roomid = c.Roomid var self_loop func(page int) self_loop = func(page int){ if page <= 0 || session_roomid != c.Roomid{return} - // apilog.Base(1, "self_loop").E(page) req := p.Req() if err := req.Reqf(p.Rval{ @@ -439,21 +437,20 @@ func (i *api) Get_OnlineGoldRank() { Timeout:3, Retry:2, });err != nil { - apilog.Base(1, "获取OnlineGoldRank").E(err) + apilog.L(`E: `,err) return } res := string(req.Respon) if msg := p.Json().GetValFromS(res, "message");msg == nil || msg != "0" { - apilog.Base(1, "获取OnlineGoldRank").E("message", msg) + apilog.L(`E: `,"message", msg) return } if onlineNum := p.Json().GetValFromS(res, "data.onlineNum");onlineNum == nil { - apilog.Base(1, "获取onlineNum").E("onlineNum", onlineNum) + apilog.L(`E: `,"onlineNum", onlineNum) return } else { tmp_onlineNum := onlineNum.(float64) if tmp_onlineNum == 0 { - // apilog.Base(1, "获取tmp_onlineNum").E("tmp_onlineNum", tmp_onlineNum) return } @@ -467,24 +464,21 @@ func (i *api) Get_OnlineGoldRank() { c.Danmu_Main_mq.Push_tag(`c.Rev_add`,score) if rank_list := p.Json().GetArrayFrom(p.Json().GetValFromS(res, "data.OnlineRankItem"), "userRank");rank_list == nil { - apilog.Base(1, "获取 rank_list").E("rank_list", len(rank_list)) + apilog.L(`E: `,"rank_list", len(rank_list)) return } else if len(rank_list) == 0 { - // apilog.Base(1, "获取 rank_list").E("rank_list == tmp_onlineNum") + // apilog.L(`E: `,"rank_list == tmp_onlineNum") return } else { p.Sys().Timeoutf(1) - // apilog.Base(1, "获取page").E(page, score) self_loop(page+1) return } } } - // apilog.Base(1, "Get_OnlineGoldRank").E("start") - // apilog.Base(1, "获取score").E("score", self_loop(1)) self_loop(1) - apilog.Base(1, "获取score").W("以往营收获取成功", fmt.Sprintf("%.2f", c.Rev)) + apilog.Base("获取score").L(`W: `,"以往营收获取成功", fmt.Sprintf("%.2f", c.Rev)) // c.Danmu_Main_mq.Push(c.Danmu_Main_mq_item{//传入消息队列 // Class:`c.Rev_add`, // Data:self_loop(1), @@ -494,10 +488,12 @@ func (i *api) Get_OnlineGoldRank() { func (i *api) Get_guardNum() { if i.Uid == 0 || c.Roomid == 0 { - apilog.Base(1, "Get_guardNum").E("i.Uid == 0 || c.Roomid == 0") + apilog.Base_add("Get_guardNum").L(`E: `,"i.Uid == 0 || c.Roomid == 0") return } if api_limit.TO() {return}//超额请求阻塞,超时将取消 + apilog := apilog.Base_add(`获取舰长数`) + defer apilog.L(`T: `,"ok") req := p.Req() if err := req.Reqf(p.Rval{ @@ -518,20 +514,20 @@ func (i *api) Get_guardNum() { Timeout:3, Retry:2, });err != nil { - apilog.Base(1, "获取guardNum").E(err) + apilog.L(`E: `,err) return } res := string(req.Respon) if msg := p.Json().GetValFromS(res, "message");msg == nil || msg != "0" { - apilog.Base(1, "获取guardNum").E("message", msg) + apilog.L(`E: `,"message", msg) return } if num := p.Json().GetValFromS(res, "data.info.num");num == nil { - apilog.Base(1, "获取num").E("num", num) + apilog.L(`E: `,"num", num) return } else { c.GuardNum = int(num.(float64)) - apilog.Base(1, "获取guardNum").W("舰长数获取成功", c.GuardNum) + apilog.L(`W: `,"舰长数获取成功", c.GuardNum) } return } @@ -539,6 +535,8 @@ func (i *api) Get_guardNum() { func (i *api) Get_Version() { Roomid := strconv.Itoa(i.Roomid) if api_limit.TO() {return}//超额请求阻塞,超时将取消 + apilog := apilog.Base_add(`获取客户版本`) + defer apilog.L(`T: `,"ok") var player_js_url string {//获取player_js_url @@ -547,13 +545,13 @@ func (i *api) Get_Version() { }) if r.Err != nil { - apilog.Base(1, "Get_Version").E(r.Err) + apilog.L(`E: `,r.Err) return } r.S2(`