mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-04 19:17:38 +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
|
// option
|
||||||
AllowSlider bool
|
AllowSlider bool
|
||||||
|
UseHighwayMessage bool
|
||||||
|
UseFragmentMessage bool
|
||||||
|
|
||||||
// account info
|
// account info
|
||||||
Online atomic.Bool
|
Online atomic.Bool
|
||||||
|
@ -34,25 +34,23 @@ func init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// SendGroupMessage 发送群消息
|
// SendGroupMessage 发送群消息
|
||||||
func (c *QQClient) SendGroupMessage(groupCode int64, m *message.SendingMessage, f ...bool) *message.GroupMessage {
|
func (c *QQClient) SendGroupMessage(groupCode int64, m *message.SendingMessage) *message.GroupMessage {
|
||||||
useFram := false
|
useHighwayMessage := false
|
||||||
if len(f) > 0 {
|
|
||||||
useFram = f[0]
|
|
||||||
}
|
|
||||||
imgCount := 0
|
imgCount := 0
|
||||||
for _, e := range m.Elements {
|
for _, e := range m.Elements {
|
||||||
switch e.Type() {
|
switch e.Type() {
|
||||||
case message.Image:
|
case message.Image:
|
||||||
imgCount++
|
imgCount++
|
||||||
case message.Reply:
|
case message.Reply:
|
||||||
useFram = false
|
useHighwayMessage = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
msgLen := message.EstimateLength(m.Elements)
|
msgLen := message.EstimateLength(m.Elements)
|
||||||
if msgLen > message.MaxMessageSize || imgCount > 50 {
|
if msgLen > message.MaxMessageSize || imgCount > 50 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if !useFram && (msgLen > 100 || imgCount > 2) {
|
useHighwayMessage = useHighwayMessage || msgLen > 100 || imgCount > 2
|
||||||
|
if useHighwayMessage && c.UseHighwayMessage {
|
||||||
lmsg, err := c.uploadGroupLongMessage(groupCode,
|
lmsg, err := c.uploadGroupLongMessage(groupCode,
|
||||||
message.NewForwardMessage().AddNode(&message.ForwardNode{
|
message.NewForwardMessage().AddNode(&message.ForwardNode{
|
||||||
SenderId: c.Uin,
|
SenderId: c.Uin,
|
||||||
@ -118,7 +116,7 @@ func (c *QQClient) sendGroupMessage(groupCode int64, forward bool, m *message.Se
|
|||||||
serviceFlag = false
|
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())
|
div := int32(rand.Uint32())
|
||||||
fragmented := m.ToFragmented()
|
fragmented := m.ToFragmented()
|
||||||
for i, elems := range fragmented {
|
for i, elems := range fragmented {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user