mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-04 19:17:38 +08:00
Revert "supported group msg multi seq."
This reverts commit 9ac5ce95
This commit is contained in:
parent
9ac5ce958c
commit
afe4132a38
@ -379,7 +379,7 @@ func (c *QQClient) SendGroupMessage(groupCode int64, m *message.SendingMessage,
|
||||
Message: m.Elements,
|
||||
},
|
||||
}})
|
||||
if ret != nil && ret.Sources[0] == -1 {
|
||||
if ret != nil && ret.Id == -1 {
|
||||
c.Error("long message send error. trying fragmented sending...")
|
||||
return c.SendGroupMessage(groupCode, m, true)
|
||||
}
|
||||
@ -417,7 +417,7 @@ func (c *QQClient) sendGroupMessage(groupCode int64, forward bool, m *message.Se
|
||||
}
|
||||
var mid int32
|
||||
ret := &message.GroupMessage{
|
||||
Sources: []int32{-1},
|
||||
Id: -1,
|
||||
InternalId: mr,
|
||||
GroupCode: groupCode,
|
||||
Sender: &message.Sender{
|
||||
@ -433,7 +433,7 @@ func (c *QQClient) sendGroupMessage(groupCode int64, forward bool, m *message.Se
|
||||
case <-time.After(time.Second * 5):
|
||||
return ret
|
||||
}
|
||||
ret.Sources = []int32{mid}
|
||||
ret.Id = mid
|
||||
return ret
|
||||
}
|
||||
|
||||
|
@ -316,25 +316,25 @@ func decodeGroupMessagePacket(c *QQClient, _ uint16, payload []byte) (interface{
|
||||
return nil, nil
|
||||
}
|
||||
if pkt.Message.Content != nil && pkt.Message.Content.PkgNum > 1 {
|
||||
var builder *groupMessageBuilder
|
||||
var builder *groupMessageBuilder // TODO: 支持多SEQ
|
||||
i, ok := c.groupMsgBuilders.Load(pkt.Message.Content.DivSeq)
|
||||
if !ok {
|
||||
builder = &groupMessageBuilder{
|
||||
SliceSeq: pkt.Message.Content.DivSeq,
|
||||
SliceCount: pkt.Message.Content.PkgNum,
|
||||
MessageSeq: pkt.Message.Content.DivSeq,
|
||||
MessageCount: pkt.Message.Content.PkgNum,
|
||||
}
|
||||
c.groupMsgBuilders.Store(pkt.Message.Content.DivSeq, builder)
|
||||
} else {
|
||||
builder = i.(*groupMessageBuilder)
|
||||
}
|
||||
builder.MessageSlices = append(builder.MessageSlices, pkt.Message)
|
||||
if int32(len(builder.MessageSlices)) >= builder.SliceCount {
|
||||
if int32(len(builder.MessageSlices)) >= builder.MessageCount {
|
||||
c.groupMsgBuilders.Delete(pkt.Message.Content.DivSeq)
|
||||
c.dispatchGroupMessage(c.parseGroupMessage(builder.build(), builder.seqs()))
|
||||
c.dispatchGroupMessage(c.parseGroupMessage(builder.build()))
|
||||
}
|
||||
return nil, nil
|
||||
}
|
||||
c.dispatchGroupMessage(c.parseGroupMessage(pkt.Message, nil))
|
||||
c.dispatchGroupMessage(c.parseGroupMessage(pkt.Message))
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
|
@ -63,9 +63,8 @@ type DeviceInfoFile struct {
|
||||
}
|
||||
|
||||
type groupMessageBuilder struct {
|
||||
SliceSeq int32
|
||||
SliceCount int32
|
||||
|
||||
MessageSeq int32
|
||||
MessageCount int32
|
||||
MessageSlices []*msg.Message
|
||||
}
|
||||
|
||||
@ -244,11 +243,11 @@ func (c *QQClient) parsePrivateMessage(msg *msg.Message) *message.PrivateMessage
|
||||
return ret
|
||||
}
|
||||
|
||||
func (c *QQClient) parseTempMessage(m *msg.Message) *message.TempMessage {
|
||||
group := c.FindGroupByUin(m.Head.C2CTmpMsgHead.GroupUin)
|
||||
mem := group.FindMember(m.Head.FromUin)
|
||||
func (c *QQClient) parseTempMessage(msg *msg.Message) *message.TempMessage {
|
||||
group := c.FindGroupByUin(msg.Head.C2CTmpMsgHead.GroupUin)
|
||||
mem := group.FindMember(msg.Head.FromUin)
|
||||
sender := &message.Sender{
|
||||
Uin: m.Head.FromUin,
|
||||
Uin: msg.Head.FromUin,
|
||||
Nickname: "Unknown",
|
||||
IsFriend: false,
|
||||
}
|
||||
@ -257,15 +256,15 @@ func (c *QQClient) parseTempMessage(m *msg.Message) *message.TempMessage {
|
||||
sender.CardName = mem.CardName
|
||||
}
|
||||
return &message.TempMessage{
|
||||
Id: m.Head.MsgSeq,
|
||||
Id: msg.Head.MsgSeq,
|
||||
GroupCode: group.Code,
|
||||
GroupName: group.Name,
|
||||
Sender: sender,
|
||||
Elements: message.ParseMessageElems(m.Body.RichText.Elems),
|
||||
Elements: message.ParseMessageElems(msg.Body.RichText.Elems),
|
||||
}
|
||||
}
|
||||
|
||||
func (c *QQClient) parseGroupMessage(m *msg.Message, seqs []int32) *message.GroupMessage {
|
||||
func (c *QQClient) parseGroupMessage(m *msg.Message) *message.GroupMessage {
|
||||
group := c.FindGroup(m.Head.GroupInfo.GroupCode)
|
||||
if group == nil {
|
||||
c.Debug("sync group %v.", m.Head.GroupInfo.GroupCode)
|
||||
@ -320,14 +319,8 @@ func (c *QQClient) parseGroupMessage(m *msg.Message, seqs []int32) *message.Grou
|
||||
}
|
||||
}
|
||||
var g *message.GroupMessage
|
||||
seq := func() []int32 {
|
||||
if len(seqs) == 0 {
|
||||
return []int32{m.Head.MsgSeq}
|
||||
}
|
||||
return seqs
|
||||
}()
|
||||
g = &message.GroupMessage{
|
||||
Sources: seq,
|
||||
Id: m.Head.MsgSeq,
|
||||
GroupCode: group.Code,
|
||||
GroupName: string(m.Head.GroupInfo.GroupName),
|
||||
Sender: sender,
|
||||
@ -340,7 +333,7 @@ func (c *QQClient) parseGroupMessage(m *msg.Message, seqs []int32) *message.Grou
|
||||
if elem.GeneralFlags != nil && elem.GeneralFlags.LongTextResid != "" {
|
||||
if f := c.GetForwardMessage(elem.GeneralFlags.LongTextResid); f != nil && len(f.Nodes) == 1 {
|
||||
g = &message.GroupMessage{
|
||||
Sources: seq,
|
||||
Id: m.Head.MsgSeq,
|
||||
GroupCode: group.Code,
|
||||
GroupName: string(m.Head.GroupInfo.GroupName),
|
||||
Sender: sender,
|
||||
@ -377,16 +370,6 @@ func (b *groupMessageBuilder) build() *msg.Message {
|
||||
return base
|
||||
}
|
||||
|
||||
func (b *groupMessageBuilder) seqs() (r []int32) {
|
||||
sort.Slice(b.MessageSlices, func(i, j int) bool {
|
||||
return b.MessageSlices[i].Content.PkgIndex < b.MessageSlices[i].Content.PkgIndex
|
||||
})
|
||||
for _, m := range b.MessageSlices {
|
||||
r = append(r, m.Head.MsgSeq)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func packRequestDataV3(data []byte) (r []byte) {
|
||||
r = append([]byte{0x0A}, data...)
|
||||
r = append(r, 0x0B)
|
||||
|
@ -168,7 +168,7 @@ func AtAll() *AtElement {
|
||||
|
||||
func NewReply(m *GroupMessage) *ReplyElement {
|
||||
return &ReplyElement{
|
||||
ReplySeq: m.Sources[0],
|
||||
ReplySeq: m.Id,
|
||||
Sender: m.Sender.Uin,
|
||||
Time: m.Time,
|
||||
//original: m.OriginalElements,
|
||||
|
@ -33,7 +33,7 @@ type (
|
||||
}
|
||||
|
||||
GroupMessage struct {
|
||||
Sources []int32
|
||||
Id int32
|
||||
InternalId int32
|
||||
GroupCode int64
|
||||
GroupName string
|
||||
|
Loading…
x
Reference in New Issue
Block a user