From 801fa9a2046907cff59854186a678cb8b94a3fc4 Mon Sep 17 00:00:00 2001 From: wdvxdr Date: Mon, 24 Aug 2020 20:05:10 +0800 Subject: [PATCH] update event filter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 对所有通信方式支持事件过滤器 --- coolq/bot.go | 7 +++++++ server/websocket.go | 6 ------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/coolq/bot.go b/coolq/bot.go index 1e5121d..f0b2106 100644 --- a/coolq/bot.go +++ b/coolq/bot.go @@ -10,6 +10,7 @@ import ( "github.com/Mrs4s/MiraiGo/message" "github.com/Mrs4s/go-cqhttp/global" log "github.com/sirupsen/logrus" + "github.com/tidwall/gjson" "github.com/xujiajun/nutsdb" "hash/crc32" "path" @@ -208,6 +209,12 @@ func (bot *CQBot) Release() { } func (bot *CQBot) dispatchEventMessage(m MSG) { + payload := gjson.Parse(m.ToJson()) + filter := global.GetFilter() + if filter != nil && (*filter).Eval(payload) == false { + log.Debug("Event filtered!") + return + } for _, f := range bot.events { fn := f go func() { diff --git a/server/websocket.go b/server/websocket.go index b940ac2..8dab69a 100644 --- a/server/websocket.go +++ b/server/websocket.go @@ -172,12 +172,6 @@ func (c *websocketClient) listenApi(conn *websocketConn, u bool) { } func (c *websocketClient) onBotPushEvent(m coolq.MSG) { - payload := gjson.Parse(m.ToJson()) - filter := global.GetFilter() - if filter != nil && (*filter).Eval(payload) == false { - log.Debug("Event filtered!") - return - } if c.eventConn != nil { log.Debugf("向WS服务器 %v 推送Event: %v", c.eventConn.RemoteAddr().String(), m.ToJson()) conn := c.eventConn