1
0
mirror of https://github.com/Mrs4s/MiraiGo.git synced 2025-05-05 03:23:50 +08:00

supported: group list lazy loading.

This commit is contained in:
Mrs4s 2020-09-18 15:01:15 +08:00
parent eae57aabf1
commit 5c4991c14f
2 changed files with 17 additions and 2 deletions

View File

@ -291,7 +291,7 @@ func decodeGroupMessagePacket(c *QQClient, _ uint16, payload []byte) (interface{
return nil, nil return nil, nil
} }
if pkt.Message.Content != nil && pkt.Message.Content.PkgNum > 1 { 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) i, ok := c.groupMsgBuilders.Load(pkt.Message.Content.DivSeq)
if !ok { if !ok {
builder = &groupMessageBuilder{ builder = &groupMessageBuilder{

View File

@ -267,8 +267,23 @@ func (c *QQClient) parseTempMessage(msg *msg.Message) *message.TempMessage {
func (c *QQClient) parseGroupMessage(m *msg.Message) *message.GroupMessage { func (c *QQClient) parseGroupMessage(m *msg.Message) *message.GroupMessage {
group := c.FindGroup(m.Head.GroupInfo.GroupCode) group := c.FindGroup(m.Head.GroupInfo.GroupCode)
if group == nil { if group == nil {
c.Debug("sync group %v.", m.Head.GroupInfo.GroupCode)
info, err := c.GetGroupInfo(m.Head.GroupInfo.GroupCode)
if err != nil {
c.Error("error to sync group %v : %v", m.Head.GroupInfo.GroupCode, err)
return nil return nil
} }
group = info
c.GroupList = append(c.GroupList, info)
}
if len(group.Members) == 0 {
mem, err := c.GetGroupMembers(group)
if err != nil {
c.Error("error to sync group %v member : %v", m.Head.GroupInfo.GroupCode, err)
return nil
}
group.Members = mem
}
var anonInfo *msg.AnonymousGroupMessage var anonInfo *msg.AnonymousGroupMessage
for _, e := range m.Body.RichText.Elems { for _, e := range m.Body.RichText.Elems {
if e.AnonGroupMsg != nil { if e.AnonGroupMsg != nil {