]> 127.0.0.1 Git - bili_danmu/.git/commitdiff
29
authorqydysky <qydysky@foxmail.com>
Sat, 3 Oct 2020 11:47:45 +0000 (19:47 +0800)
committerqydysky <qydysky@foxmail.com>
Sat, 3 Oct 2020 11:47:45 +0000 (19:47 +0800)
Reply/F.go
Reply/Msg.go
Reply/Reply.go
_msg_sample/ACTIVITY_MATCH_GIFT.json [new file with mode: 0644]
_msg_sample/HOT_ROOM_NOTIFY.json [new file with mode: 0644]
_msg_sample/MATCH_ROOM_CONF.json [new file with mode: 0644]
_msg_sample/MATCH_TEAM_GIFT_RANK.json [new file with mode: 0644]
_msg_sample/USER_TOAST_MSG.json
demo/Autoban.txt

index 558001861d99441e8dcc6554dae1f41c6530ca99..11c75f99b393329cbb7d66debef0fe7dc2460809 100644 (file)
@@ -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)
        }
        {
index bf195f4a9bf87bdb33217f759d2c4c3b8c4edc5f..a8ff07e9b59e4702ec181d08fd2dfe5e1d16380e 100644 (file)
@@ -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
index ff952e5c701dc77eef5c451b66d5e3bf47fad128..9277a252aa7731c2a3056836382a0b76d291bb0d 100644 (file)
@@ -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 (file)
index 0000000..8988ed9
--- /dev/null
@@ -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 (file)
index 0000000..656d538
--- /dev/null
@@ -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 (file)
index 0000000..4362d8a
--- /dev/null
@@ -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 (file)
index 0000000..eff0d84
--- /dev/null
@@ -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
index 62018ea19d723a042e48b5665d12b23fe71c1a7c..d6218354946e8bea19f2e82b1d0dbd7e2b04e109 100644 (file)
             "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
index 0e33db2658a45b893fe020ea3f5d2c3d2d8a88d2..2541098a9ddab18f026a89f4f52a37a83f0e7204 100644 (file)
@@ -11,4 +11,5 @@
 来签名婕光了啊免费
 自拍洗造点浅
 不穿内騒
+打开看黄色
 0123456789
\ No newline at end of file