From ffa55bf2df2638926d4be81fa332096a148f8be8 Mon Sep 17 00:00:00 2001 From: qydysky Date: Sat, 3 Oct 2020 19:47:45 +0800 Subject: [PATCH] 29 --- Reply/F.go | 71 ++++++++++++----------- Reply/Msg.go | 4 ++ Reply/Reply.go | 3 + _msg_sample/ACTIVITY_MATCH_GIFT.json | 24 ++++++++ _msg_sample/HOT_ROOM_NOTIFY.json | 8 +++ _msg_sample/MATCH_ROOM_CONF.json | 82 +++++++++++++++++++++++++++ _msg_sample/MATCH_TEAM_GIFT_RANK.json | 20 +++++++ _msg_sample/USER_TOAST_MSG.json | 23 ++++++++ demo/Autoban.txt | 1 + 9 files changed, 200 insertions(+), 36 deletions(-) create mode 100644 _msg_sample/ACTIVITY_MATCH_GIFT.json create mode 100644 _msg_sample/HOT_ROOM_NOTIFY.json create mode 100644 _msg_sample/MATCH_ROOM_CONF.json create mode 100644 _msg_sample/MATCH_TEAM_GIFT_RANK.json diff --git a/Reply/F.go b/Reply/F.go index 5580018..11c75f9 100644 --- a/Reply/F.go +++ b/Reply/F.go @@ -24,17 +24,13 @@ import ( var AllF = map[string]bool{ "Qtd":true,//Qt弹幕窗口 "Saveflv":true,//保存直播流(默认高清,有cookie默认蓝光) - /* - Saveflv需要外部组件 - ffmpeg http://ffmpeg.org/download.html - */ + "Ass":true,//Ass弹幕生成,由于时间对应关系,仅开启流保存时生效 "Obs":false,//obs组件(仅录播) /* Obs需要外部组件: obs https://obsproject.com/download obs-websocket https://github.com/Palakis/obs-websocket/releases */ - "Ass":true,//Ass弹幕生成,由于时间对应关系,仅开启流保存时生效 "Autoban":true,//自动封禁(仅提示,未完成) "Jiezou":true,//带节奏预警,提示弹幕礼仪 "Danmuji":true,//反射型弹幕机,回应弹幕 @@ -251,9 +247,7 @@ func Saveflvf(){ l := p.Logf().New().Open("danmu.log").Base(-1, "saveflv") api := F.New_api(c.Roomid) - retry := 10 - for api.Get_live().Live_status == 1 && retry > 0 { - retry -= 1 + for api.Get_live().Live_status == 1 { c.Live = api.Live saveflv.path = strconv.Itoa(c.Roomid) + "_" + time.Now().Format("2006_01_02_15:04:05.000") @@ -275,18 +269,27 @@ func Saveflvf(){ } else { Cookie = Cookie[:i] + Cookie[i + d + 1:] } - } + } - ST := time.Now() - done := make(chan struct{}) - go func(){ - select{ - case <-time.After(time.Duration(5) * time.Second): - l.I("直播流获取") - Ass_f(saveflv.path, ST)//ass - case <-done:; + {//重试 + retry := 20 + for retry > 0 && rr.ResponseCode != 200 { + if e := rr.Reqf(p.Rval{ + Url:c.Live, + Retry:10, + SleepTime:5, + Cookie:Cookie, + Timeout:-1, + JustResponseCode:true, + }); e != nil{l.W(e)} + p.Sys().Timeoutf(5) + retry -= 1 } - }() + if retry == 0 {continue} + } + + Ass_f(saveflv.path, time.Now()) + l.I("直播流保存到", saveflv.path) if e := rr.Reqf(p.Rval{ Url:c.Live, @@ -295,26 +298,22 @@ func Saveflvf(){ Cookie:Cookie, SaveToPath:saveflv.path + ".flv", Timeout:-1, - }); e != nil{l.E(e)} - - close(done) - if time.Since(ST) < time.Duration(5) * time.Second {//刚开始直播断流 - l.I("重试直播流", retry) - os.Remove(saveflv.path+".flv") - p.Sys().Timeoutf(5) - continue - } - l.I("直播流保存到", saveflv.path) + }); e != nil{l.W(e)} + l.I("结束") Ass_f("", time.Now())//ass - if p.Checkfile().IsExist(saveflv.path+".flv"){ - l.I("转码中") - p.Exec().Run(false, "ffmpeg", "-i", saveflv.path+".flv", "-c", "copy", saveflv.path+".mkv") - // os.Remove(saveflv.path+".flv") - } - - l.I("转码结束") + /* + Saveflv需要外部组件 + ffmpeg http://ffmpeg.org/download.html + */ + // if p.Checkfile().IsExist(saveflv.path+".flv"){ + // l.I("转码中") + // p.Exec().Run(false, "ffmpeg", "-i", saveflv.path+".flv", "-c", "copy", saveflv.path+".mkv") + // if p.Checkfile().IsExist(saveflv.path+".mkv"){os.Remove(saveflv.path+".flv")} + // } + + // l.I("转码结束") saveflv.wait.Done() saveflv.cancel.Done() } @@ -461,7 +460,7 @@ func Autobanf(s string) bool { // res = append(res, pt) pt1 := cross(s, autoban.buf); - if pt + pt1 > 0.5 {return false}//历史重复高去除 + if pt + pt1 > 0.3 {return false}//历史重复高去除 res = append(res, pt, pt1) } { diff --git a/Reply/Msg.go b/Reply/Msg.go index bf195f4..a8ff07e 100644 --- a/Reply/Msg.go +++ b/Reply/Msg.go @@ -12,6 +12,10 @@ var msglog = p.Logf().New().Base(-1, "Msg.go").Open("danmu.log").Level(1) //Msg类型数据处理方法map var Msg_map = map[string]func(replyF, string) { + "MATCH_ROOM_CONF":nil,//赛事房间配置 + "HOT_ROOM_NOTIFY":nil,//热点房间 + "MATCH_TEAM_GIFT_RANK":nil,//赛事人气比拼 + "ACTIVITY_MATCH_GIFT":nil,//赛事礼物 "PK_BATTLE_PRE":nil,//人气pk "PK_BATTLE_START":nil,//人气pk "PK_BATTLE_PROCESS":nil,//人气pk diff --git a/Reply/Reply.go b/Reply/Reply.go index ff952e5..9277a25 100644 --- a/Reply/Reply.go +++ b/Reply/Reply.go @@ -125,7 +125,10 @@ func (replyF) user_toast_msg(s string){ sh = append(sh, "购买了") case 2: sh = append(sh, "续费了") + case 3: + sh = append(sh, "自动续费了") default: + msglog.W(s) sh = append(sh, op_type) } } diff --git a/_msg_sample/ACTIVITY_MATCH_GIFT.json b/_msg_sample/ACTIVITY_MATCH_GIFT.json new file mode 100644 index 0000000..8988ed9 --- /dev/null +++ b/_msg_sample/ACTIVITY_MATCH_GIFT.json @@ -0,0 +1,24 @@ +{ + "cmd": "ACTIVITY_MATCH_GIFT", + "data": { + "action": "match_ing", + "status": 1, + "detail": { + "home": { + "ratio": "0.41", + "team_id": 664, + "score": 1000 + }, + "visit": { + "ratio": "99.59", + "team_id": 663, + "score": 240000 + }, + "match_id": 2956 + }, + "match_tab": { + "type": "match", + "desc": "\u5bf9\u6297" + } + } +} \ No newline at end of file diff --git a/_msg_sample/HOT_ROOM_NOTIFY.json b/_msg_sample/HOT_ROOM_NOTIFY.json new file mode 100644 index 0000000..656d538 --- /dev/null +++ b/_msg_sample/HOT_ROOM_NOTIFY.json @@ -0,0 +1,8 @@ +{ + "cmd": "HOT_ROOM_NOTIFY", + "data": { + "ttl": 300, + "exit_no_refresh": 1, + "random_delay_req": [] + } +} \ No newline at end of file diff --git a/_msg_sample/MATCH_ROOM_CONF.json b/_msg_sample/MATCH_ROOM_CONF.json new file mode 100644 index 0000000..4362d8a --- /dev/null +++ b/_msg_sample/MATCH_ROOM_CONF.json @@ -0,0 +1,82 @@ +{ + "cmd": "MATCH_ROOM_CONF", + "data": { + "type": "3", + "close_button": "0", + "force_push": "0", + "button_name": "", + "background": "https:\/\/i0.hdslb.com\/bfs\/live\/e766a84d78e01cc82d051351c55ac89b5dc2e6fe.jpg", + "conf_id": "7ac321b52b121919e075c10b103256fa", + "conf_name": "S10 \u4e3b\u623f\u95f4", + "rooms_info": [ + { + "room_id": "7734200", + "room_name": "\u4e3b\u623f\u95f4", + "live_status": 1 + }, + { + "room_id": "8016907", + "room_name": "\u9ad8\u80fd\u89c2\u8d5b\u56e2", + "live_status": 1 + }, + { + "room_id": "22532177", + "room_name": "TES.\u4e0a\u8def", + "live_status": 1 + }, + { + "room_id": "22532179", + "room_name": "TES.\u6253\u91ce", + "live_status": 1 + }, + { + "room_id": "22532181", + "room_name": "TES.\u4e2d\u8def", + "live_status": 1 + }, + { + "room_id": "22532182", + "room_name": "TES.\u4e0b\u8def", + "live_status": 1 + }, + { + "room_id": "22532185", + "room_name": "TES.\u8f85\u52a9", + "live_status": 1 + }, + { + "room_id": "22532143", + "room_name": "FLY.\u4e0a\u8def", + "live_status": 1 + }, + { + "room_id": "22532159", + "room_name": "FLY.\u6253\u91ce", + "live_status": 1 + }, + { + "room_id": "22532163", + "room_name": "FLY.\u4e2d\u8def", + "live_status": 1 + }, + { + "room_id": "22532166", + "room_name": "FLY.\u4e0b\u8def", + "live_status": 1 + }, + { + "room_id": "22532173", + "room_name": "FLY.\u8f85\u52a9", + "live_status": 1 + } + ], + "season_info": [], + "button_link": "", + "rooms_color": { + "font_color": "#ffffff", + "background_color": "#000000", + "border_color": "#ffffff" + }, + "state": 0 + } +} \ No newline at end of file diff --git a/_msg_sample/MATCH_TEAM_GIFT_RANK.json b/_msg_sample/MATCH_TEAM_GIFT_RANK.json new file mode 100644 index 0000000..eff0d84 --- /dev/null +++ b/_msg_sample/MATCH_TEAM_GIFT_RANK.json @@ -0,0 +1,20 @@ +{ + "cmd": "MATCH_TEAM_GIFT_RANK", + "data": [ + { + "id": 469, + "score": 123107, + "rank": 1 + }, + { + "id": 474, + "score": 77290, + "rank": 2 + }, + { + "id": 482, + "score": 49407, + "rank": 3 + } + ] +} \ No newline at end of file diff --git a/_msg_sample/USER_TOAST_MSG.json b/_msg_sample/USER_TOAST_MSG.json index 62018ea..d621835 100644 --- a/_msg_sample/USER_TOAST_MSG.json +++ b/_msg_sample/USER_TOAST_MSG.json @@ -44,5 +44,28 @@ "payflow_id": "2009252032523462163948355", "svga_block": 0 } + }, + { + "cmd": "USER_TOAST_MSG", + "data": { + "op_type": 3, + "uid": 34426186, + "username": "超心塞的信仰", + "guard_level": 3, + "is_show": 0, + "anchor_show": true, + "user_show": true, + "toast_msg": "\u003c%超心塞的信仰%\u003e 自动续费了舰长", + "num": 1, + "price": 138000, + "role_name": "舰长", + "unit": "月", + "start_time": 1601723267, + "end_time": 1601723267, + "target_guard_count": 16, + "color": "#00D1F1", + "payflow_id": "2010031907365752161865485", + "svga_block": 0 + } } ] \ No newline at end of file diff --git a/demo/Autoban.txt b/demo/Autoban.txt index 0e33db2..2541098 100644 --- a/demo/Autoban.txt +++ b/demo/Autoban.txt @@ -11,4 +11,5 @@ 来签名婕光了啊免费 自拍洗造点浅 不穿内騒 +打开看黄色 0123456789 \ No newline at end of file -- 2.39.2