From a6bcd96415106eb3b7624c29eab67ee365c53607 Mon Sep 17 00:00:00 2001 From: Mrs4s <1844812067@qq.com> Date: Thu, 20 Aug 2020 01:59:31 +0800 Subject: [PATCH] fix event push error. --- coolq/cqcode.go | 2 +- global/fs.go | 3 ++- server/websocket.go | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/coolq/cqcode.go b/coolq/cqcode.go index 2785b4d5..e869bf4f 100644 --- a/coolq/cqcode.go +++ b/coolq/cqcode.go @@ -385,7 +385,7 @@ func (bot *CQBot) ToElement(t string, d map[string]string, group bool) (message. } data = b } - if !global.IsAMR(data) { + if !global.IsAMRorSILK(data) { return nil, errors.New("unsupported voice file format (please use AMR file for now)") } return &message.VoiceElement{Data: data}, nil diff --git a/global/fs.go b/global/fs.go index 19cc758f..f3dc6b0b 100644 --- a/global/fs.go +++ b/global/fs.go @@ -13,6 +13,7 @@ var ( IMAGE_PATH = path.Join("data", "images") VOICE_PATH = path.Join("data", "voices") VIDEO_PATH = path.Join("data", "videos") + CACHE_PATH = path.Join("data", "cache") HEADER_AMR = []byte("#!AMR") HEADER_SILK = []byte("\x02#!SILK_V3") @@ -41,6 +42,6 @@ func Check(err error) { } } -func IsAMR(b []byte) bool { +func IsAMRorSILK(b []byte) bool { return bytes.HasPrefix(b, HEADER_AMR) || bytes.HasPrefix(b, HEADER_SILK) } diff --git a/server/websocket.go b/server/websocket.go index 770fdfc9..f1270266 100644 --- a/server/websocket.go +++ b/server/websocket.go @@ -114,7 +114,7 @@ func (c *websocketClient) connectEvent() { log.Warnf("连接到反向Websocket Event服务器 %v 时出现错误: %v", c.conf.ReverseEventUrl, err) if c.conf.ReverseReconnectInterval != 0 { time.Sleep(time.Millisecond * time.Duration(c.conf.ReverseReconnectInterval)) - c.connectApi() + c.connectEvent() } return } @@ -180,7 +180,7 @@ func (c *websocketClient) onBotPushEvent(m coolq.MSG) { defer c.pushLock.Unlock() if c.eventConn != nil { log.Debugf("向WS服务器 %v 推送Event: %v", c.eventConn.RemoteAddr().String(), m.ToJson()) - if err := c.eventConn.WriteJSON(m.ToJson()); err != nil { + if err := c.eventConn.WriteJSON(m); err != nil { log.Warnf("向WS服务器 %v 推送Event时出现错误: %v", c.eventConn.RemoteAddr().String(), err) _ = c.eventConn.Close() if c.conf.ReverseReconnectInterval != 0 {