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

client: add option to highway message

This commit is contained in:
wdvxdr 2022-05-23 11:02:25 +08:00
parent 2b2be6693d
commit cb56240978
No known key found for this signature in database
GPG Key ID: 703F8C071DE7A1B6
2 changed files with 9 additions and 9 deletions

View File

@ -34,7 +34,9 @@ type QQClient struct {
once sync.Once
// option
AllowSlider bool
AllowSlider bool
UseHighwayMessage bool
UseFragmentMessage bool
// account info
Online atomic.Bool

View File

@ -34,25 +34,23 @@ func init() {
}
// SendGroupMessage 发送群消息
func (c *QQClient) SendGroupMessage(groupCode int64, m *message.SendingMessage, f ...bool) *message.GroupMessage {
useFram := false
if len(f) > 0 {
useFram = f[0]
}
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:
useFram = false
useHighwayMessage = true
}
}
msgLen := message.EstimateLength(m.Elements)
if msgLen > message.MaxMessageSize || imgCount > 50 {
return nil
}
if !useFram && (msgLen > 100 || imgCount > 2) {
useHighwayMessage = useHighwayMessage || msgLen > 100 || imgCount > 2
if useHighwayMessage && c.UseHighwayMessage {
lmsg, err := c.uploadGroupLongMessage(groupCode,
message.NewForwardMessage().AddNode(&message.ForwardNode{
SenderId: c.Uin,
@ -118,7 +116,7 @@ func (c *QQClient) sendGroupMessage(groupCode int64, forward bool, m *message.Se
serviceFlag = false
}
}
if !forward && serviceFlag && (imgCount > 1 || message.EstimateLength(m.Elements) > 100) {
if !forward && serviceFlag && c.UseFragmentMessage && (imgCount > 1 || message.EstimateLength(m.Elements) > 100) {
div := int32(rand.Uint32())
fragmented := m.ToFragmented()
for i, elems := range fragmented {