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:
parent
2b2be6693d
commit
cb56240978
@ -35,6 +35,8 @@ type QQClient struct {
|
||||
|
||||
// option
|
||||
AllowSlider bool
|
||||
UseHighwayMessage bool
|
||||
UseFragmentMessage bool
|
||||
|
||||
// account info
|
||||
Online atomic.Bool
|
||||
|
@ -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 {
|
||||
|
Loading…
x
Reference in New Issue
Block a user