1
0
mirror of https://github.com/Mrs4s/MiraiGo.git synced 2025-05-04 11:07:40 +08:00

client: remove (*QQClient).UseHighwayMessage

This commit is contained in:
wdvxdr 2023-02-10 23:39:12 +08:00
parent aa5a8c45fc
commit 7f557c197c
2 changed files with 0 additions and 50 deletions

View File

@ -36,7 +36,6 @@ type QQClient struct {
// option
AllowSlider bool
UseHighwayMessage bool
UseFragmentMessage bool
// account info

View File

@ -2,7 +2,6 @@ package client
import (
"bytes"
"crypto/md5"
"encoding/base64"
"encoding/json"
"math"
@ -13,7 +12,6 @@ import (
"github.com/pkg/errors"
"github.com/Mrs4s/MiraiGo/client/internal/highway"
"github.com/Mrs4s/MiraiGo/client/internal/network"
"github.com/Mrs4s/MiraiGo/client/pb/cmd0x388"
"github.com/Mrs4s/MiraiGo/client/pb/longmsg"
@ -36,36 +34,17 @@ func init() {
// SendGroupMessage 发送群消息
func (c *QQClient) SendGroupMessage(groupCode int64, m *message.SendingMessage) *message.GroupMessage {
useHighwayMessage := false
imgCount := 0
for _, e := range m.Elements {
switch e.Type() {
case message.Image:
imgCount++
case message.Reply:
useHighwayMessage = true
}
}
msgLen := message.EstimateLength(m.Elements)
if msgLen > message.MaxMessageSize || imgCount > 50 {
return nil
}
useHighwayMessage = useHighwayMessage || msgLen > 100 || imgCount > 2
if useHighwayMessage && c.UseHighwayMessage {
lmsg, err := c.uploadGroupLongMessage(groupCode,
message.NewForwardMessage().AddNode(&message.ForwardNode{
SenderId: c.Uin,
SenderName: c.Nickname,
Time: int32(time.Now().Unix()),
Message: m.Elements,
}))
if err == nil {
ret := c.sendGroupMessage(groupCode, false, &message.SendingMessage{Elements: []message.IMessageElement{lmsg}})
ret.Elements = m.Elements
return ret
}
c.error("%v", err)
}
return c.sendGroupMessage(groupCode, false, m)
}
@ -159,34 +138,6 @@ func (c *QQClient) sendGroupMessage(groupCode int64, forward bool, m *message.Se
}
}
func (c *QQClient) uploadGroupLongMessage(groupCode int64, m *message.ForwardMessage) (*message.ServiceElement, error) {
ts := time.Now().UnixNano()
seq := c.nextGroupSeq()
data, hash := m.CalculateValidationData(seq, rand.Int31(), groupCode)
rsp, body, err := c.multiMsgApplyUp(groupCode, data, hash, 1)
if err != nil {
return nil, errors.Errorf("upload long message error: %v", err)
}
for i, ip := range rsp.Uint32UpIp {
addr := highway.Addr{IP: uint32(ip), Port: int(rsp.Uint32UpPort[i])}
hash := md5.Sum(body)
input := highway.Transaction{
CommandID: 27,
Ticket: rsp.MsgSig,
Body: bytes.NewReader(body),
Size: int64(len(body)),
Sum: hash[:],
}
err := c.highwaySession.Upload(addr, input)
if err != nil {
c.error("highway upload long message error: %v", err)
continue
}
return genLongTemplate(rsp.MsgResid, m.Brief(), ts), nil
}
return nil, errors.New("upload long message error: highway server list is empty or not available server.")
}
func (c *QQClient) multiMsgApplyUp(groupCode int64, data []byte, hash []byte, buType int32) (*multimsg.MultiMsgApplyUpRsp, []byte, error) {
i, err := c.sendAndWait(c.buildMultiApplyUpPacket(data, hash, buType, utils.ToGroupUin(groupCode)))
if err != nil {