mirror of
https://github.com/Mrs4s/go-cqhttp.git
synced 2025-05-05 19:43:49 +08:00
add: group_upload event support.
add: simple debug.
This commit is contained in:
parent
86422c5a00
commit
a12dcfa2d7
@ -40,6 +40,26 @@ func (bot *CQBot) privateMessageEvent(c *client.QQClient, m *message.PrivateMess
|
|||||||
|
|
||||||
func (bot *CQBot) groupMessageEvent(c *client.QQClient, m *message.GroupMessage) {
|
func (bot *CQBot) groupMessageEvent(c *client.QQClient, m *message.GroupMessage) {
|
||||||
checkImage(m.Elements)
|
checkImage(m.Elements)
|
||||||
|
for _, elem := range m.Elements {
|
||||||
|
if file, ok := elem.(*message.GroupFileElement); ok {
|
||||||
|
log.Infof("群 %v(%v) 内 %v(%v) 上传了文件: %v", m.GroupName, m.GroupCode, m.Sender.DisplayName(), m.Sender.Uin, file.Name)
|
||||||
|
bot.dispatchEventMessage(MSG{
|
||||||
|
"post_type": "notice",
|
||||||
|
"notice_type": "group_upload",
|
||||||
|
"group_id": m.GroupCode,
|
||||||
|
"user_id": m.Sender.Uin,
|
||||||
|
"file": MSG{
|
||||||
|
"id": file.Path,
|
||||||
|
"name": file.Name,
|
||||||
|
"size": file.Size,
|
||||||
|
"busid": file.Busid,
|
||||||
|
},
|
||||||
|
"self_id": c.Uin,
|
||||||
|
"time": time.Now().Unix(),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
cqm := ToStringMessage(m.Elements, m.GroupCode, true)
|
cqm := ToStringMessage(m.Elements, m.GroupCode, true)
|
||||||
id := m.Id
|
id := m.Id
|
||||||
if bot.db != nil {
|
if bot.db != nil {
|
||||||
|
@ -16,6 +16,7 @@ type JsonConfig struct {
|
|||||||
WSConfig *GoCQWebsocketConfig `json:"ws_config"`
|
WSConfig *GoCQWebsocketConfig `json:"ws_config"`
|
||||||
ReverseServers []*GoCQReverseWebsocketConfig `json:"ws_reverse_servers"`
|
ReverseServers []*GoCQReverseWebsocketConfig `json:"ws_reverse_servers"`
|
||||||
Proxy string `json:"proxy"`
|
Proxy string `json:"proxy"`
|
||||||
|
Debug bool `json:"debug"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type CQHttpApiConfig struct {
|
type CQHttpApiConfig struct {
|
||||||
|
2
go.mod
2
go.mod
@ -3,7 +3,7 @@ module github.com/Mrs4s/go-cqhttp
|
|||||||
go 1.14
|
go 1.14
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/Mrs4s/MiraiGo v0.0.0-20200729044443-98a77a6cf354
|
github.com/Mrs4s/MiraiGo v0.0.0-20200730004425-ca4383f56abe
|
||||||
github.com/gin-gonic/gin v1.6.3
|
github.com/gin-gonic/gin v1.6.3
|
||||||
github.com/gorilla/websocket v1.4.2
|
github.com/gorilla/websocket v1.4.2
|
||||||
github.com/guonaihong/gout v0.1.1
|
github.com/guonaihong/gout v0.1.1
|
||||||
|
2
go.sum
2
go.sum
@ -6,6 +6,8 @@ github.com/Mrs4s/MiraiGo v0.0.0-20200728112613-91aa75e8270d h1:Pv8lvODPBb+By7CU1
|
|||||||
github.com/Mrs4s/MiraiGo v0.0.0-20200728112613-91aa75e8270d/go.mod h1:M9wh1hjd0rie3+wm27tjPZkYMbD+MBV76CGqp2G7WSU=
|
github.com/Mrs4s/MiraiGo v0.0.0-20200728112613-91aa75e8270d/go.mod h1:M9wh1hjd0rie3+wm27tjPZkYMbD+MBV76CGqp2G7WSU=
|
||||||
github.com/Mrs4s/MiraiGo v0.0.0-20200729044443-98a77a6cf354 h1:f2Cv15Nir9tcefrvwD0+imVx1RQAw2TQI7LFipPUzrI=
|
github.com/Mrs4s/MiraiGo v0.0.0-20200729044443-98a77a6cf354 h1:f2Cv15Nir9tcefrvwD0+imVx1RQAw2TQI7LFipPUzrI=
|
||||||
github.com/Mrs4s/MiraiGo v0.0.0-20200729044443-98a77a6cf354/go.mod h1:M9wh1hjd0rie3+wm27tjPZkYMbD+MBV76CGqp2G7WSU=
|
github.com/Mrs4s/MiraiGo v0.0.0-20200729044443-98a77a6cf354/go.mod h1:M9wh1hjd0rie3+wm27tjPZkYMbD+MBV76CGqp2G7WSU=
|
||||||
|
github.com/Mrs4s/MiraiGo v0.0.0-20200730004425-ca4383f56abe h1:6R4osGgsPzDt2TcRAcy/dk2lAcv4iDgMYBfEvrSxTtU=
|
||||||
|
github.com/Mrs4s/MiraiGo v0.0.0-20200730004425-ca4383f56abe/go.mod h1:M9wh1hjd0rie3+wm27tjPZkYMbD+MBV76CGqp2G7WSU=
|
||||||
github.com/bwmarrin/snowflake v0.3.0 h1:xm67bEhkKh6ij1790JB83OujPR5CzNe8QuQqAgISZN0=
|
github.com/bwmarrin/snowflake v0.3.0 h1:xm67bEhkKh6ij1790JB83OujPR5CzNe8QuQqAgISZN0=
|
||||||
github.com/bwmarrin/snowflake v0.3.0/go.mod h1:NdZxfVWX+oR6y2K0o6qAYv6gIOP9rjG0/E9WsDpxqwE=
|
github.com/bwmarrin/snowflake v0.3.0/go.mod h1:NdZxfVWX+oR6y2K0o6qAYv6gIOP9rjG0/E9WsDpxqwE=
|
||||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||||
|
4
main.go
4
main.go
@ -85,6 +85,10 @@ func main() {
|
|||||||
if conf.Uin == 0 || conf.Password == "" {
|
if conf.Uin == 0 || conf.Password == "" {
|
||||||
log.Fatal("请修改 config.json 以添加账号密码.")
|
log.Fatal("请修改 config.json 以添加账号密码.")
|
||||||
}
|
}
|
||||||
|
if conf.Debug {
|
||||||
|
log.SetLevel(log.DebugLevel)
|
||||||
|
log.Warnf("已开启Debug模式.")
|
||||||
|
}
|
||||||
if !global.PathExists("device.json") {
|
if !global.PathExists("device.json") {
|
||||||
log.Warn("虚拟设备信息不存在, 将自动生成随机设备,按 Enter 继续.")
|
log.Warn("虚拟设备信息不存在, 将自动生成随机设备,按 Enter 继续.")
|
||||||
_, _ = console.ReadString('\n')
|
_, _ = console.ReadString('\n')
|
||||||
|
@ -164,7 +164,7 @@ func (c *websocketClient) listenApi(conn *wsc.Conn, u bool) {
|
|||||||
}
|
}
|
||||||
j := gjson.ParseBytes(buf[:l])
|
j := gjson.ParseBytes(buf[:l])
|
||||||
t := strings.ReplaceAll(j.Get("action").Str, "_async", "")
|
t := strings.ReplaceAll(j.Get("action").Str, "_async", "")
|
||||||
//log.Infof("调用API: %v p: %v", t, j.Get("params").Raw)
|
log.Debugf("反向WS接收到API调用: %v 参数: %v", t, j.Get("params").Raw)
|
||||||
if f, ok := wsApi[t]; ok {
|
if f, ok := wsApi[t]; ok {
|
||||||
ret := f(c.bot, j.Get("params"))
|
ret := f(c.bot, j.Get("params"))
|
||||||
if j.Get("echo").Exists() {
|
if j.Get("echo").Exists() {
|
||||||
@ -187,6 +187,7 @@ func (c *websocketClient) onBotPushEvent(m coolq.MSG) {
|
|||||||
c.pushLock.Lock()
|
c.pushLock.Lock()
|
||||||
defer c.pushLock.Unlock()
|
defer c.pushLock.Unlock()
|
||||||
if c.eventConn != nil {
|
if c.eventConn != nil {
|
||||||
|
log.Debugf("向WS服务器 %v 推送Event: %v", c.eventConn.RemoteAddr().String(), m.ToJson())
|
||||||
if _, err := c.eventConn.Write([]byte(m.ToJson())); err != nil {
|
if _, err := c.eventConn.Write([]byte(m.ToJson())); err != nil {
|
||||||
_ = c.eventConn.Close()
|
_ = c.eventConn.Close()
|
||||||
if c.conf.ReverseReconnectInterval != 0 {
|
if c.conf.ReverseReconnectInterval != 0 {
|
||||||
@ -196,6 +197,7 @@ func (c *websocketClient) onBotPushEvent(m coolq.MSG) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if c.universalConn != nil {
|
if c.universalConn != nil {
|
||||||
|
log.Debugf("向WS服务器 %v 推送Event: %v", c.universalConn.RemoteAddr().String(), m.ToJson())
|
||||||
_, _ = c.universalConn.Write([]byte(m.ToJson()))
|
_, _ = c.universalConn.Write([]byte(m.ToJson()))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -268,7 +270,7 @@ func (s *websocketServer) listenApi(c *websocket.Conn) {
|
|||||||
if t == websocket.TextMessage {
|
if t == websocket.TextMessage {
|
||||||
j := gjson.ParseBytes(payload)
|
j := gjson.ParseBytes(payload)
|
||||||
t := strings.ReplaceAll(j.Get("action").Str, "_async", "") //TODO: async support
|
t := strings.ReplaceAll(j.Get("action").Str, "_async", "") //TODO: async support
|
||||||
//log.Infof("API调用: %v", j.Get("action").Str)
|
log.Debugf("WS接收到API调用: %v 参数: %v", t, j.Get("params").Raw)
|
||||||
if f, ok := wsApi[t]; ok {
|
if f, ok := wsApi[t]; ok {
|
||||||
ret := f(s.bot, j.Get("params"))
|
ret := f(s.bot, j.Get("params"))
|
||||||
if j.Get("echo").Exists() {
|
if j.Get("echo").Exists() {
|
||||||
@ -285,6 +287,7 @@ func (s *websocketServer) onBotPushEvent(m coolq.MSG) {
|
|||||||
defer s.pushLock.Unlock()
|
defer s.pushLock.Unlock()
|
||||||
pos := 0
|
pos := 0
|
||||||
for _, conn := range s.eventConn {
|
for _, conn := range s.eventConn {
|
||||||
|
log.Debugf("向WS客户端 %v 推送Event: %v", conn.RemoteAddr().String(), m.ToJson())
|
||||||
err := conn.WriteMessage(websocket.TextMessage, []byte(m.ToJson()))
|
err := conn.WriteMessage(websocket.TextMessage, []byte(m.ToJson()))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
_ = conn.Close()
|
_ = conn.Close()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user