1
0
mirror of https://github.com/Mrs4s/MiraiGo.git synced 2025-05-04 19:17:38 +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
}
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{

View File

@ -267,8 +267,23 @@ func (c *QQClient) parseTempMessage(msg *msg.Message) *message.TempMessage {
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)
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
}
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
for _, e := range m.Body.RichText.Elems {
if e.AnonGroupMsg != nil {