mirror of
https://github.com/Mrs4s/go-cqhttp.git
synced 2025-05-05 03:23:49 +08:00
update MiraiGo.
This commit is contained in:
parent
6c52734324
commit
38865584ec
56
coolq/api.go
56
coolq/api.go
@ -403,7 +403,7 @@ func (bot *CQBot) CQSendGroupForwardMessage(groupID int64, m gjson.Result) MSG {
|
||||
if m.Type != gjson.JSON {
|
||||
return Failed(100)
|
||||
}
|
||||
var sendNodes []*message.ForwardNode
|
||||
fm := message.NewForwardMessage()
|
||||
ts := time.Now().Add(-time.Minute * 5)
|
||||
hasCustom := false
|
||||
m.ForEach(func(_, item gjson.Result) bool {
|
||||
@ -414,8 +414,8 @@ func (bot *CQBot) CQSendGroupForwardMessage(groupID int64, m gjson.Result) MSG {
|
||||
return true
|
||||
})
|
||||
|
||||
var convert func(e gjson.Result) []*message.ForwardNode
|
||||
convert = func(e gjson.Result) (nodes []*message.ForwardNode) {
|
||||
var convert func(e gjson.Result) *message.ForwardNode
|
||||
convert = func(e gjson.Result) *message.ForwardNode {
|
||||
if e.Get("type").Str != "node" {
|
||||
return nil
|
||||
}
|
||||
@ -425,7 +425,7 @@ func (bot *CQBot) CQSendGroupForwardMessage(groupID int64, m gjson.Result) MSG {
|
||||
m := bot.GetMessage(int32(i))
|
||||
if m != nil {
|
||||
sender := m["sender"].(message.Sender)
|
||||
nodes = append(nodes, &message.ForwardNode{
|
||||
return &message.ForwardNode{
|
||||
SenderId: sender.Uin,
|
||||
SenderName: (&sender).DisplayName(),
|
||||
Time: func() int32 {
|
||||
@ -436,11 +436,10 @@ func (bot *CQBot) CQSendGroupForwardMessage(groupID int64, m gjson.Result) MSG {
|
||||
return msgTime
|
||||
}(),
|
||||
Message: bot.ConvertStringMessage(m["message"].(string), true),
|
||||
})
|
||||
return
|
||||
}
|
||||
}
|
||||
log.Warnf("警告: 引用消息 %v 错误或数据库未开启.", e.Get("data.id").Str)
|
||||
return
|
||||
return nil
|
||||
}
|
||||
uin := e.Get("data.[user_id,uin].0").Int()
|
||||
msgTime := e.Get("data.time").Int()
|
||||
@ -450,26 +449,29 @@ func (bot *CQBot) CQSendGroupForwardMessage(groupID int64, m gjson.Result) MSG {
|
||||
name := e.Get("data.name").Str
|
||||
c := e.Get("data.content")
|
||||
if c.IsArray() {
|
||||
flag := false
|
||||
nested := false
|
||||
c.ForEach(func(_, value gjson.Result) bool {
|
||||
if value.Get("type").Str == "node" {
|
||||
flag = true
|
||||
nested = true
|
||||
return false
|
||||
}
|
||||
return true
|
||||
})
|
||||
if flag {
|
||||
var taowa []*message.ForwardNode
|
||||
if nested { // 处理嵌套
|
||||
nest := message.NewForwardMessage()
|
||||
for _, item := range c.Array() {
|
||||
taowa = append(taowa, convert(item)...)
|
||||
node := convert(item)
|
||||
if node != nil {
|
||||
nest.AddNode(node)
|
||||
}
|
||||
}
|
||||
nodes = append(nodes, &message.ForwardNode{
|
||||
elem := bot.Client.UploadGroupForwardMessage(groupID, nest)
|
||||
return &message.ForwardNode{
|
||||
SenderId: uin,
|
||||
SenderName: name,
|
||||
Time: int32(msgTime),
|
||||
Message: []message.IMessageElement{bot.Client.UploadGroupForwardMessage(groupID, &message.ForwardMessage{Nodes: taowa})},
|
||||
})
|
||||
return
|
||||
Message: []message.IMessageElement{elem},
|
||||
}
|
||||
}
|
||||
}
|
||||
content := bot.ConvertObjectMessage(e.Get("data.content"), true)
|
||||
@ -487,26 +489,32 @@ func (bot *CQBot) CQSendGroupForwardMessage(groupID int64, m gjson.Result) MSG {
|
||||
}
|
||||
newElem = append(newElem, elem)
|
||||
}
|
||||
nodes = append(nodes, &message.ForwardNode{
|
||||
return &message.ForwardNode{
|
||||
SenderId: uin,
|
||||
SenderName: name,
|
||||
Time: int32(msgTime),
|
||||
Message: newElem,
|
||||
})
|
||||
return
|
||||
}
|
||||
}
|
||||
log.Warnf("警告: 非法 Forward node 将跳过. uin: %v name: %v content count: %v", uin, name, len(content))
|
||||
return
|
||||
return nil
|
||||
}
|
||||
if m.IsArray() {
|
||||
for _, item := range m.Array() {
|
||||
sendNodes = append(sendNodes, convert(item)...)
|
||||
node := convert(item)
|
||||
if node != nil {
|
||||
fm.AddNode(node)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
sendNodes = convert(m)
|
||||
node := convert(m)
|
||||
if node != nil {
|
||||
fm.AddNode(node)
|
||||
}
|
||||
}
|
||||
if len(sendNodes) > 0 {
|
||||
ret := bot.Client.SendGroupForwardMessage(groupID, &message.ForwardMessage{Nodes: sendNodes})
|
||||
if fm.Length() > 0 {
|
||||
fe := bot.Client.UploadGroupForwardMessage(groupID, fm)
|
||||
ret := bot.Client.SendGroupForwardMessage(groupID, fe)
|
||||
if ret == nil || ret.Id == -1 {
|
||||
log.Warnf("合并转发(群)消息发送失败: 账号可能被风控.")
|
||||
return Failed(100, "SEND_MSG_API_ERROR", "请参考 go-cqhttp 端输出")
|
||||
|
4
go.mod
4
go.mod
@ -5,7 +5,7 @@ go 1.16
|
||||
require (
|
||||
github.com/Baozisoftware/qrcode-terminal-go v0.0.0-20170407111555-c0650d8dff0f
|
||||
github.com/Microsoft/go-winio v0.5.0
|
||||
github.com/Mrs4s/MiraiGo v0.0.0-20210726103104-1d68826cef0e
|
||||
github.com/Mrs4s/MiraiGo v0.0.0-20210803073620-cb396f0f5649
|
||||
github.com/dustin/go-humanize v1.0.0
|
||||
github.com/gabriel-vasile/mimetype v1.3.1 // indirect
|
||||
github.com/gorilla/websocket v1.4.2
|
||||
@ -27,8 +27,8 @@ require (
|
||||
github.com/wdvxdr1123/go-silk v0.0.0-20210316130616-d47b553def60
|
||||
github.com/willf/bitset v1.2.0 // indirect
|
||||
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e
|
||||
golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d // indirect
|
||||
golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b
|
||||
golang.org/x/text v0.3.6 // indirect
|
||||
golang.org/x/time v0.0.0-20210611083556-38a9dc6acbc6
|
||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
|
||||
)
|
||||
|
8
go.sum
8
go.sum
@ -4,8 +4,8 @@ github.com/Baozisoftware/qrcode-terminal-go v0.0.0-20170407111555-c0650d8dff0f/g
|
||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||
github.com/Microsoft/go-winio v0.5.0 h1:Elr9Wn+sGKPlkaBvwu4mTrxtmOp3F3yV9qhaHbXGjwU=
|
||||
github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
|
||||
github.com/Mrs4s/MiraiGo v0.0.0-20210726103104-1d68826cef0e h1:PgFshw1L5TVdiDRLgr/bSotPGaGXYzbtn5cDBBvpL6U=
|
||||
github.com/Mrs4s/MiraiGo v0.0.0-20210726103104-1d68826cef0e/go.mod h1:CPaznIPn415uQqxJgjyMHLqGLkvLS6R6+bkW3/fe08Q=
|
||||
github.com/Mrs4s/MiraiGo v0.0.0-20210803073620-cb396f0f5649 h1:9aEo50MD/QMHExoBxeUu/oLrs8gKzuyKWZ2+t+8AaOQ=
|
||||
github.com/Mrs4s/MiraiGo v0.0.0-20210803073620-cb396f0f5649/go.mod h1:5V3f/+mTYtrI/+hLqbdzZQXuLMl2RyLfx0XYYjCQ90Q=
|
||||
github.com/bits-and-blooms/bitset v1.2.0 h1:Kn4yilvwNtMACtf1eYDlG8H77R07mZSPbMjLyS07ChA=
|
||||
github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA=
|
||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||
@ -139,8 +139,6 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
|
||||
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e h1:gsTQYXdTw2Gq7RBsWvlQ91b+aEQ6bXFUngBGuR8sPpI=
|
||||
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d h1:RNPAfi2nHY7C2srAV8A49jpsYr0ADedCk1wq6fTMTvs=
|
||||
golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
|
||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
||||
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||
@ -158,6 +156,8 @@ golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAG
|
||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
|
Loading…
x
Reference in New Issue
Block a user