1
0
mirror of https://github.com/Mrs4s/MiraiGo.git synced 2025-05-08 04:55:56 +08:00

Merge pull request #4 from Mrs4s/master

21
This commit is contained in:
wdvxdr1123 2020-09-18 16:16:44 +08:00 committed by GitHub
commit b414e8256a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 3 deletions

View File

@ -965,6 +965,7 @@ func (c *QQClient) buildGroupInfoRequestPacket(groupCode int64) (uint16, []byte)
GroupCode: proto.Uint64(uint64(groupCode)), GroupCode: proto.Uint64(uint64(groupCode)),
Stgroupinfo: &oidb.D88DGroupInfo{ Stgroupinfo: &oidb.D88DGroupInfo{
GroupOwner: proto.Uint64(0), GroupOwner: proto.Uint64(0),
GroupUin: proto.Uint64(0),
GroupCreateTime: proto.Uint32(0), GroupCreateTime: proto.Uint32(0),
GroupFlag: proto.Uint32(0), GroupFlag: proto.Uint32(0),
GroupMemberMaxNum: proto.Uint32(0), GroupMemberMaxNum: proto.Uint32(0),

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{
@ -403,7 +403,7 @@ func decodeGroupInfoResponse(c *QQClient, _ uint16, payload []byte) (interface{}
} }
info := rsp.RspGroupInfo[0] info := rsp.RspGroupInfo[0]
return &GroupInfo{ return &GroupInfo{
Uin: utils.ToGroupUin(int64(*info.GroupCode)), Uin: int64(*info.GroupInfo.GroupUin),
Code: int64(*info.GroupCode), Code: int64(*info.GroupCode),
Name: string(info.GroupInfo.GroupName), Name: string(info.GroupInfo.GroupName),
Memo: string(info.GroupInfo.GroupMemo), Memo: string(info.GroupInfo.GroupMemo),

View File

@ -267,7 +267,22 @@ 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 {
return 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 var anonInfo *msg.AnonymousGroupMessage
for _, e := range m.Body.RichText.Elems { for _, e := range m.Body.RichText.Elems {