1
0
mirror of https://github.com/Mrs4s/MiraiGo.git synced 2025-05-05 03:23:50 +08:00

Merge branch 'master' of github.com:/Mrs4s/MiraiGo

This commit is contained in:
Mrs4s 2021-11-14 17:17:16 +08:00
commit baf792f68a
No known key found for this signature in database
GPG Key ID: 3186E98FA19CE3A7

View File

@ -52,18 +52,18 @@ func (c *QQClient) SendGroupMessage(groupCode int64, m *message.SendingMessage,
return nil return nil
} }
if !useFram && (msgLen > 100 || imgCount > 2) { if !useFram && (msgLen > 100 || imgCount > 2) {
ret := c.sendGroupMessage(groupCode, false, lmsg, err := c.uploadGroupLongMessage(groupCode,
&message.SendingMessage{Elements: []message.IMessageElement{ message.NewForwardMessage().AddNode(&message.ForwardNode{
c.uploadGroupLongMessage(groupCode, SenderId: c.Uin,
message.NewForwardMessage().AddNode(&message.ForwardNode{ SenderName: c.Nickname,
SenderId: c.Uin, Time: int32(time.Now().Unix()),
SenderName: c.Nickname, Message: m.Elements,
Time: int32(time.Now().Unix()), }))
Message: m.Elements, if err != nil {
}), c.Error("%v", err)
), return nil
}}, }
) ret := c.sendGroupMessage(groupCode, false, &message.SendingMessage{Elements: []message.IMessageElement{lmsg}})
ret.Elements = m.Elements ret.Elements = m.Elements
return ret return ret
} }
@ -160,17 +160,13 @@ func (c *QQClient) sendGroupMessage(groupCode int64, forward bool, m *message.Se
} }
} }
func (c *QQClient) uploadGroupLongMessage(groupCode int64, m *message.ForwardMessage) *message.ServiceElement { func (c *QQClient) uploadGroupLongMessage(groupCode int64, m *message.ForwardMessage) (*message.ServiceElement, error) {
if m.Length() >= 200 {
return nil
}
ts := time.Now().UnixNano() ts := time.Now().UnixNano()
seq := c.nextGroupSeq() seq := c.nextGroupSeq()
data, hash := m.CalculateValidationData(seq, rand.Int31(), groupCode) data, hash := m.CalculateValidationData(seq, rand.Int31(), groupCode)
rsp, body, err := c.multiMsgApplyUp(groupCode, data, hash, 1) rsp, body, err := c.multiMsgApplyUp(groupCode, data, hash, 1)
if err != nil { if err != nil {
c.Error("upload long message error: %v", err) return nil, errors.Errorf("upload long message error: %v", err)
return nil
} }
for i, ip := range rsp.Uint32UpIp { for i, ip := range rsp.Uint32UpIp {
err := c.highwayUpload(uint32(ip), int(rsp.Uint32UpPort[i]), rsp.MsgSig, body, 27) err := c.highwayUpload(uint32(ip), int(rsp.Uint32UpPort[i]), rsp.MsgSig, body, 27)
@ -178,10 +174,9 @@ func (c *QQClient) uploadGroupLongMessage(groupCode int64, m *message.ForwardMes
c.Error("highway upload long message error: %v", err) c.Error("highway upload long message error: %v", err)
continue continue
} }
return genLongTemplate(rsp.MsgResid, m.Brief(), ts) return genLongTemplate(rsp.MsgResid, m.Brief(), ts), nil
} }
c.Error("upload long message error: highway server list is empty or not available server.") return nil, errors.New("upload long message error: highway server list is empty or not available server.")
return nil
} }
func (c *QQClient) UploadGroupForwardMessage(groupCode int64, m *message.ForwardMessage) *message.ForwardElement { func (c *QQClient) UploadGroupForwardMessage(groupCode int64, m *message.ForwardMessage) *message.ForwardElement {