]> 127.0.0.1 Git - bili_danmu/.git/commitdiff
12
authorqydysky <qydysky@foxmail.com>
Wed, 16 Sep 2020 23:53:41 +0000 (07:53 +0800)
committerqydysky <qydysky@foxmail.com>
Wed, 16 Sep 2020 23:53:41 +0000 (07:53 +0800)
F.go
Msg.go
api.go
bili_danmu.go

diff --git a/F.go b/F.go
index 8665260a18c6c4be9181d33c70857b9ef29198d4..8766d05c1871cec1e5ed68b9c85e94be701d829b 100644 (file)
--- a/F.go
+++ b/F.go
@@ -15,7 +15,8 @@ var AllF = map[string]bool{
        "Danmuji":true,//反射型弹幕机,回应弹幕
        "Danmuji_auto":false,//自动型弹幕机,定时输出
        "Autoskip":true,//刷屏缩减,相同合并
-       "Lessdanmu":true,//弹幕缩减,显示差异大的
+       "Lessdanmu":false,//弹幕缩减,显示差异大的
+       "Moredanmu":false,//弹幕增量
 }
 
 func IsOn(s string) bool {
@@ -124,7 +125,7 @@ func Autoskipf(s string, maxNum,muteSecond int) int {
                }
                autoskip.num -= 1
                i, ok := autoskip.buf.LoadAndDelete(s);
-               if ok && i.(int) > 0 {fmt.Println(s, "+", i)}
+               if ok && i.(int) > 1 {fmt.Println(s, "+", i)}
        }()
        return 0
 }
@@ -149,23 +150,21 @@ func Lessdanmuf(s string, bufsize int) bool {
        }
 
        o := cross(s, lessdanmu.buf)
-       lessdanmu.avg = (0.8 * lessdanmu.avg + 0.2 * o)
-       return o > lessdanmu.avg 
+       lessdanmu.avg = (95 * lessdanmu.avg + 5 * o) / 100
+       return o < lessdanmu.avg
 }
 
-func cross(a string,buf []string) float32 {
-       var (
-               s float32
-               all float32
-       )
-       for _,v1 := range buf {
-               for _,v2 := range v1 {
-                       for _,v3 := range a {
-                               if v3 == v2 {s += 1}
-                               all += 1
+func cross(a string,buf []string) (float32) {
+       var s float32
+       for _,v1 := range a {
+               var matched bool
+               for _,v2 := range buf {
+                       for _,v3 := range v2 {
+                               if v3 == v1 {matched = true;break}
                        }
+                       if matched {break}
                }
-
+               if matched {s += 1}
        }
-       return s / all
+       return s / float32(len(a))
 }
\ No newline at end of file
diff --git a/Msg.go b/Msg.go
index 9b715741ada5276444620ad8d5f9fee11725c00a..0cee8f7198b0f3b60d6005be0d777819b868d543 100644 (file)
--- a/Msg.go
+++ b/Msg.go
@@ -11,7 +11,7 @@ import (
        数据为WS_OP_MESSAGE类型的
 */
 
-var msglog = p.Logf().New().Base(-1, "Msg.go>").Open("danmu.log").Level(1)
+var msglog = p.Logf().New().Base(-1, "Msg.go").Open("danmu.log").Level(1)
 var Msg_cookie string
 var Msg_roomid int
 var Msg_map = map[string]func(replayF, string) {
@@ -96,8 +96,9 @@ func (replayF) defaultMsg(s string){
 }
 
 func (replayF) guard_buy(s string){
-       msglog.Fileonly(true).Base(1, "礼")
-       defer msglog.Fileonly(false)
+       msglog.Fileonly(true).Base(-1, "礼")
+       defer msglog.Base(0).Fileonly(false)
+
        username := p.Json().GetValFromS(s, "data.username");
        gift_name := p.Json().GetValFromS(s, "data.gift_name");
        price := p.Json().GetValFromS(s, "data.price");
@@ -111,7 +112,7 @@ func (replayF) guard_buy(s string){
                sh = append(sh, "购买了", gift_name)
        }
        if price != nil {
-               sh = append(sh, "¥", price)
+               sh = append(sh, "¥", int(price.(float64)) / 1000)
        }
 
        fmt.Println("====")
@@ -177,14 +178,14 @@ func (replayF) send_gift(s string){
                sh = append(sh, giftName)
        }
        if price != nil {
-               allprice = int64(num.(float64) * price.(float64))
-               sh = append(sh, "(", allprice, "x 金瓜子 )")
+               allprice = int64(num.(float64) * price.(float64) / 1000)
+               sh = append(sh, "¥", allprice)
        }
 
        if len(sh) == 0 {return}
 
-       msglog.Fileonly(true).Base(1, "礼")
-       defer msglog.Fileonly(false)
+       msglog.Fileonly(true).Base(-1, "礼")
+       defer msglog.Base(0).Fileonly(false)
 
        //小于3万金瓜子
        if allprice < 30000 {msglog.T(sh...);return}
@@ -196,8 +197,8 @@ func (replayF) send_gift(s string){
 }
 
 func (replayF) room_block_msg(s string) {
-       msglog.Fileonly(true).Base(1, "封")
-       defer msglog.Fileonly(false)
+       msglog.Fileonly(true).Base(-1, "封")
+       defer msglog.Base(0).Fileonly(false)
 
        if uname := p.Json().GetValFromS(s, "uname");uname == nil {
                msglog.E("uname", uname)
@@ -273,8 +274,8 @@ func (replayF) panel(s string){
 }
 
 func (replayF) entry_effect(s string){
-       msglog.Fileonly(true).Base(1, "房")
-       defer msglog.Fileonly(false)
+       msglog.Fileonly(true).Base(-1, "房")
+       defer msglog.Base(0).Fileonly(false)
 
        if copy_writing := p.Json().GetValFromS(s, "data.copy_writing");copy_writing == nil {
                msglog.E("copy_writing", copy_writing)
@@ -326,6 +327,7 @@ func (replayF) danmu(s string) {
                msglog.Fileonly(true)
                defer msglog.Fileonly(false)
 
+               //F附加方法
                Danmujif(msg, Msg_cookie, Msg_roomid)
                if Autobanf(msg) > 0.5 {
                        msglog.Base(1, "风险").I(msg)
@@ -335,7 +337,7 @@ func (replayF) danmu(s string) {
                        msglog.I(auth, ":", msg)
                        return
                }
-               if Lessdanmuf(msg, 50) {
+               if Lessdanmuf(msg, 200) {
                        msglog.I(auth, ":", msg)
                        return
                }
diff --git a/api.go b/api.go
index 496cdf39e61d3d4837844421de9ded1475cfa446..812e0e988fbe003cdb769fd40ea93b3f9a47df01 100644 (file)
--- a/api.go
+++ b/api.go
@@ -13,11 +13,12 @@ type api struct {
        Token string
 }
 
+var apilog = p.Logf().New().Base(-1, "api.go").Level(LogLevel)
 func New_api(Roomid int) (o *api) {
-       l := p.Logf().New().Base(-1, "api.go>新建").Level(LogLevel).T("New_api")
-       defer l.Block()
+       apilog.Base(-1, "新建")
+       defer apilog.Base(0)
 
-       l.T("ok")
+       apilog.T("ok")
        o = new(api)
        o.Roomid = Roomid
        o.Get_info()
@@ -26,12 +27,12 @@ func New_api(Roomid int) (o *api) {
 }
 
 func (i *api) Get_info() (o *api) {
-       o = i 
-       l := p.Logf().New().Base(-1, "api.go>获取房号").Level(LogLevel).T("*api.Get_info")
-       defer l.Block()
+       o = i
+       apilog.Base(-1, "获取房号")
+       defer apilog.Base(0)
 
        if o.Roomid == 0 {
-               l.E("还未New_api")
+               apilog.E("还未New_api")
                return
        }
        Roomid := strconv.Itoa(o.Roomid)
@@ -43,26 +44,26 @@ func (i *api) Get_info() (o *api) {
                Timeout:10,
                Retry:2,
        });err != nil {
-               l.E(err)
+               apilog.E(err)
                return
        }
        res := string(req.Respon)
        if msg := p.Json().GetValFrom(res, "msg");msg == nil || msg != "ok" {
-               l.E("msg", msg)
+               apilog.E("msg", msg)
                return
        }
        if Uid := p.Json().GetValFrom(res, "data.uid");Uid == nil {
-               l.E("data.uid", Uid)
+               apilog.E("data.uid", Uid)
                return
        } else {
                o.Uid = int(Uid.(float64))
        }
 
        if room_id := p.Json().GetValFrom(res, "data.room_id");room_id == nil {
-               l.E("data.room_id", room_id)
+               apilog.E("data.room_id", room_id)
                return
        } else {
-               l.T("ok")
+               apilog.T("ok")
                o.Roomid = int(room_id.(float64))
        }
        return
@@ -70,11 +71,11 @@ func (i *api) Get_info() (o *api) {
 
 func (i *api) Get_host_Token() (o *api) {
        o = i
-       l := p.Logf().New().Base(-1, "api.go>获取host key").Level(LogLevel).T("*api.Get_host_Token")
-       defer l.Block()
+       apilog.Base(-1, "获取host key")
+       defer apilog.Base(0)
 
        if o.Roomid == 0 {
-               l.E("还未New_api")
+               apilog.E("还未New_api")
                return
        }
        Roomid := strconv.Itoa(o.Roomid)
@@ -87,35 +88,35 @@ func (i *api) Get_host_Token() (o *api) {
                Timeout:10,
                Retry:2,
        });err != nil {
-               l.E(err)
+               apilog.E(err)
                return
        }
        res := string(req.Respon)
        if msg := p.Json().GetValFrom(res, "message");msg == nil || msg != "0" {
-               l.E("message", msg)
+               apilog.E("message", msg)
                return
        }
 
        _Token := p.Json().GetValFrom(res, "data.token")
        if _Token == nil {
-               l.E("data.token", _Token, res)
+               apilog.E("data.token", _Token, res)
                return
        }
        o.Token = _Token.(string)
 
        if host_list := p.Json().GetValFrom(res, "data.host_list");host_list == nil {
-               l.E("data.host_list", host_list)
+               apilog.E("data.host_list", host_list)
                return
        } else {
                for k, v := range host_list.([]interface{}) {
                        if _host := p.Json().GetValFrom(v, "host");_host == nil {
-                               l.E("data.host_list[", k, "].host", _host)
+                               apilog.E("data.host_list[", k, "].host", _host)
                                continue
                        } else {
                                o.Url = append(o.Url, "wss://" + _host.(string) + "/sub")
                        }                       
                }
-               l.T("ok")
+               apilog.T("ok")
        }
 
        return
index f91ffca611e9280e082b065d286f6b0219f94f37..dc5fc3ebe7d4e89a0b0530c56d26cdc7894111ae 100644 (file)
@@ -116,6 +116,8 @@ const (
 
 //返回数据分派
 func Reply(b []byte) {
+       danmulog.Base(-1, "返回分派")
+       defer danmulog.Base(0)
 
        if ist, _ := headChe(b[:16], len(b), WS_BODY_PROTOCOL_VERSION_DEFLATE, WS_OP_MESSAGE, 0, 4); ist {
                Msg(b, true);return
@@ -124,8 +126,6 @@ func Reply(b []byte) {
                Msg(b, false);return
        }
 
-       danmulog.Base(1, "返回分派")
-
        if ist, _ := headChe(b[:16], len(b), WS_HEADER_DEFAULT_VERSION, WS_OP_HEARTBEAT_REPLY, WS_HEADER_DEFAULT_SEQUENCE, 4); ist {
                danmulog.T("heartbeat replay!");
                return
@@ -148,10 +148,13 @@ func headGen(datalenght,Opeation,Sequence int) []byte {
 }
 
 func headChe(head []byte, datalenght,Bodyv,Opeation,Sequence,show int) (bool,int32) {
+       danmulog.Base(-1, "头部检查")
+       defer danmulog.Base(0)
+
        if len(head) != WS_PACKAGE_HEADER_TOTAL_LENGTH {return false, 0}
        
-       danmulog.Base(-1, "头部检查").Level(show)
-       defer danmulog.Base(0).Level(LogLevel)
+       danmulog.Level(show)
+       defer danmulog.Level(LogLevel)
        
 
        packL := Btoi32(head[:4])
@@ -171,9 +174,11 @@ func headChe(head []byte, datalenght,Bodyv,Opeation,Sequence,show int) (bool,int
 
 //认证生成与检查
 func hello_send(roomid int, key string) []byte {
+       danmulog.Base(-1, "认证生成")
+       defer danmulog.Base(0)
 
        if roomid == 0 || key == "" {
-               danmulog.Base(1, "认证生成").E("roomid == 0 || key == \"\"")
+               danmulog.E("roomid == 0 || key == \"\"")
                return []byte("")
        }