mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-04 19:17:38 +08:00
feat group name updated event.
This commit is contained in:
parent
c04b18af70
commit
5648912288
@ -105,6 +105,13 @@ type (
|
|||||||
Member *GroupMemberInfo
|
Member *GroupMemberInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GroupNameUpdatedEvent struct {
|
||||||
|
Group *GroupInfo
|
||||||
|
OldName string
|
||||||
|
NewName string
|
||||||
|
OperatorUin int64
|
||||||
|
}
|
||||||
|
|
||||||
MemberCardUpdatedEvent struct {
|
MemberCardUpdatedEvent struct {
|
||||||
Group *GroupInfo
|
Group *GroupInfo
|
||||||
OldCard string
|
OldCard string
|
||||||
|
@ -21,6 +21,7 @@ type eventHandlers struct {
|
|||||||
memberJoinedHandlers []func(*QQClient, *MemberJoinGroupEvent)
|
memberJoinedHandlers []func(*QQClient, *MemberJoinGroupEvent)
|
||||||
memberLeavedHandlers []func(*QQClient, *MemberLeaveGroupEvent)
|
memberLeavedHandlers []func(*QQClient, *MemberLeaveGroupEvent)
|
||||||
memberCardUpdatedHandlers []func(*QQClient, *MemberCardUpdatedEvent)
|
memberCardUpdatedHandlers []func(*QQClient, *MemberCardUpdatedEvent)
|
||||||
|
groupNameUpdatedHandlers []func(*QQClient, *GroupNameUpdatedEvent)
|
||||||
permissionChangedHandlers []func(*QQClient, *MemberPermissionChangedEvent)
|
permissionChangedHandlers []func(*QQClient, *MemberPermissionChangedEvent)
|
||||||
groupInvitedHandlers []func(*QQClient, *GroupInvitedRequest)
|
groupInvitedHandlers []func(*QQClient, *GroupInvitedRequest)
|
||||||
joinRequestHandlers []func(*QQClient, *UserJoinGroupRequest)
|
joinRequestHandlers []func(*QQClient, *UserJoinGroupRequest)
|
||||||
@ -85,6 +86,10 @@ func (c *QQClient) OnGroupMemberCardUpdated(f func(*QQClient, *MemberCardUpdated
|
|||||||
c.eventHandlers.memberCardUpdatedHandlers = append(c.eventHandlers.memberCardUpdatedHandlers, f)
|
c.eventHandlers.memberCardUpdatedHandlers = append(c.eventHandlers.memberCardUpdatedHandlers, f)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *QQClient) OnGroupNameUpdated(f func(*QQClient, *GroupNameUpdatedEvent)) {
|
||||||
|
c.eventHandlers.groupNameUpdatedHandlers = append(c.eventHandlers.groupNameUpdatedHandlers, f)
|
||||||
|
}
|
||||||
|
|
||||||
func (c *QQClient) OnGroupMemberPermissionChanged(f func(*QQClient, *MemberPermissionChangedEvent)) {
|
func (c *QQClient) OnGroupMemberPermissionChanged(f func(*QQClient, *MemberPermissionChangedEvent)) {
|
||||||
c.eventHandlers.permissionChangedHandlers = append(c.eventHandlers.permissionChangedHandlers, f)
|
c.eventHandlers.permissionChangedHandlers = append(c.eventHandlers.permissionChangedHandlers, f)
|
||||||
}
|
}
|
||||||
@ -292,6 +297,17 @@ func (c *QQClient) dispatchMemberCardUpdatedEvent(e *MemberCardUpdatedEvent) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *QQClient) dispatchGroupNameUpdatedEvent(e *GroupNameUpdatedEvent) {
|
||||||
|
if e == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
for _, f := range c.eventHandlers.groupNameUpdatedHandlers {
|
||||||
|
cover(func() {
|
||||||
|
f(c, e)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (c *QQClient) dispatchPermissionChanged(e *MemberPermissionChangedEvent) {
|
func (c *QQClient) dispatchPermissionChanged(e *MemberPermissionChangedEvent) {
|
||||||
if e == nil {
|
if e == nil {
|
||||||
return
|
return
|
||||||
|
@ -2,6 +2,7 @@ package client
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"github.com/Mrs4s/MiraiGo/client/pb/msgtype0x210"
|
||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -169,11 +170,28 @@ func msgType0x210SubD4Decoder(c *QQClient, protobuf []byte) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func msgType0x210Sub27Decoder(c *QQClient, protobuf []byte) error {
|
func msgType0x210Sub27Decoder(c *QQClient, protobuf []byte) error {
|
||||||
s27 := pb.Sub27{}
|
s27 := msgtype0x210.SubMsg0X27Body{}
|
||||||
if err := proto.Unmarshal(protobuf, &s27); err != nil {
|
if err := proto.Unmarshal(protobuf, &s27); err != nil {
|
||||||
return errors.Wrap(err, "failed to unmarshal protobuf message")
|
return errors.Wrap(err, "failed to unmarshal protobuf message")
|
||||||
}
|
}
|
||||||
for _, m := range s27.ModInfos {
|
for _, m := range s27.ModInfos {
|
||||||
|
if m.ModGroupProfile != nil {
|
||||||
|
for _, info := range m.ModGroupProfile.GroupProfileInfos {
|
||||||
|
switch info.GetField() {
|
||||||
|
case 1:
|
||||||
|
if g := c.FindGroup(int64(m.ModGroupProfile.GetGroupCode())); g != nil {
|
||||||
|
old := g.Name
|
||||||
|
g.Name = string(info.GetValue())
|
||||||
|
c.dispatchGroupNameUpdatedEvent(&GroupNameUpdatedEvent{
|
||||||
|
Group: g,
|
||||||
|
OldName: old,
|
||||||
|
NewName: g.Name,
|
||||||
|
OperatorUin: int64(m.ModGroupProfile.GetCmdUin()),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
if m.DelFriend != nil {
|
if m.DelFriend != nil {
|
||||||
frdUin := m.DelFriend.Uins[0]
|
frdUin := m.DelFriend.Uins[0]
|
||||||
if frd := c.FindFriend(int64(frdUin)); frd != nil {
|
if frd := c.FindFriend(int64(frdUin)); frd != nil {
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -235,18 +235,6 @@ message MessageItem {
|
|||||||
bytes sig = 7;
|
bytes sig = 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
message Sub27DelFriend {
|
|
||||||
repeated uint64 uins = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message Sub27ForwardBody {
|
|
||||||
Sub27DelFriend delFriend = 14;
|
|
||||||
}
|
|
||||||
|
|
||||||
message Sub27 {
|
|
||||||
repeated Sub27ForwardBody modInfos = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message SubD4 {
|
message SubD4 {
|
||||||
int64 uin = 1;
|
int64 uin = 1;
|
||||||
}
|
}
|
||||||
|
4614
client/pb/msgtype0x210/subMsgType0x27.pb.go
Normal file
4614
client/pb/msgtype0x210/subMsgType0x27.pb.go
Normal file
File diff suppressed because it is too large
Load Diff
341
client/pb/msgtype0x210/subMsgType0x27.proto
Normal file
341
client/pb/msgtype0x210/subMsgType0x27.proto
Normal file
@ -0,0 +1,341 @@
|
|||||||
|
syntax = "proto2";
|
||||||
|
|
||||||
|
option go_package = ".;msgtype0x210";
|
||||||
|
|
||||||
|
message AddGroup {
|
||||||
|
optional uint32 groupid = 1;
|
||||||
|
optional uint32 sortid = 2;
|
||||||
|
optional bytes groupname = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message AppointmentNotify {
|
||||||
|
optional uint64 fromUin = 1;
|
||||||
|
optional string appointId = 2;
|
||||||
|
optional uint32 notifytype = 3;
|
||||||
|
optional string tipsContent = 4;
|
||||||
|
optional uint32 unreadCount = 5;
|
||||||
|
optional string joinWording = 6;
|
||||||
|
optional string viewWording = 7;
|
||||||
|
optional bytes sig = 8;
|
||||||
|
optional bytes eventInfo = 9;
|
||||||
|
optional bytes nearbyEventInfo = 10;
|
||||||
|
optional bytes feedEventInfo = 11;
|
||||||
|
}
|
||||||
|
|
||||||
|
message BinaryMsg {
|
||||||
|
optional uint32 opType = 1;
|
||||||
|
optional bytes opValue = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ChatMatchInfo {
|
||||||
|
optional bytes sig = 1;
|
||||||
|
optional uint64 uin = 2;
|
||||||
|
optional uint64 matchUin = 3;
|
||||||
|
optional bytes tipsWording = 4;
|
||||||
|
optional uint32 leftChatTime = 5;
|
||||||
|
optional uint64 timeStamp = 6;
|
||||||
|
optional uint32 matchExpiredTime = 7;
|
||||||
|
optional uint32 c2CExpiredTime = 8;
|
||||||
|
optional uint32 matchCount = 9;
|
||||||
|
optional bytes nick = 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ConfMsgRoamFlag {
|
||||||
|
optional uint64 confid = 1;
|
||||||
|
optional uint32 flag = 2;
|
||||||
|
optional uint64 timestamp = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message DaRenNotify {
|
||||||
|
optional uint64 uin = 1;
|
||||||
|
optional uint32 loginDays = 2;
|
||||||
|
optional uint32 days = 3;
|
||||||
|
optional uint32 isYestodayLogin = 4;
|
||||||
|
optional uint32 isTodayLogin = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
message DelFriend {
|
||||||
|
repeated uint64 uins = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message DelGroup {
|
||||||
|
optional uint32 groupid = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message FanpaiziNotify {
|
||||||
|
optional uint64 fromUin = 1;
|
||||||
|
optional string fromNick = 2;
|
||||||
|
optional bytes tipsContent = 3;
|
||||||
|
optional bytes sig = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ForwardBody {
|
||||||
|
optional uint32 notifyType = 1;
|
||||||
|
optional uint32 opType = 2;
|
||||||
|
optional AddGroup addGroup = 3;
|
||||||
|
optional DelGroup delGroup = 4;
|
||||||
|
optional ModGroupName modGroupName = 5;
|
||||||
|
optional ModGroupSort modGroupSort = 6;
|
||||||
|
optional ModFriendGroup modFriendGroup = 7;
|
||||||
|
optional ModProfile modProfile = 8;
|
||||||
|
optional ModFriendRemark modFriendRemark = 9;
|
||||||
|
optional ModLongNick modLongNick = 10;
|
||||||
|
optional ModCustomFace modCustomFace = 11;
|
||||||
|
optional ModGroupProfile modGroupProfile = 12;
|
||||||
|
optional ModGroupMemberProfile modGroupMemberProfile = 13;
|
||||||
|
optional DelFriend delFriend = 14;
|
||||||
|
optional ModFrdRoamPriv roamPriv = 15;
|
||||||
|
optional GrpMsgRoamFlag grpMsgRoamFlag = 16;
|
||||||
|
optional ConfMsgRoamFlag confMsgRoamFlag = 17;
|
||||||
|
optional ModLongNick modRichLongNick = 18;
|
||||||
|
optional BinaryMsg binPkg = 19;
|
||||||
|
optional ModSnsGeneralInfo modFriendRings = 20;
|
||||||
|
optional ModConfProfile modConfProfile = 21;
|
||||||
|
optional SnsUpdateFlag modFriendFlag = 22;
|
||||||
|
optional AppointmentNotify appointmentNotify = 23;
|
||||||
|
optional DaRenNotify darenNotify = 25;
|
||||||
|
optional NewComeinUserNotify newComeinUserNotify = 26;
|
||||||
|
optional PushSearchDev pushSearchDev = 200;
|
||||||
|
optional PushReportDev pushReportDev = 201;
|
||||||
|
optional QQPayPush qqPayPush = 202;
|
||||||
|
optional bytes redpointInfo = 203;
|
||||||
|
optional HotFriendNotify hotFriendNotify = 204;
|
||||||
|
optional PraiseRankNotify praiseRankNotify = 205;
|
||||||
|
optional MQQCampusNotify campusNotify = 210;
|
||||||
|
optional ModLongNick modRichLongNickEx = 211;
|
||||||
|
optional ChatMatchInfo chatMatchInfo = 212;
|
||||||
|
optional FrdCustomOnlineStatusChange frdCustomOnlineStatusChange = 214;
|
||||||
|
optional FanpaiziNotify fanpanziNotify = 2000;
|
||||||
|
}
|
||||||
|
|
||||||
|
message FrdCustomOnlineStatusChange {
|
||||||
|
optional uint64 uin = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message FriendGroup {
|
||||||
|
optional uint64 fuin = 1;
|
||||||
|
repeated uint32 oldGroupId = 2;
|
||||||
|
repeated uint32 newGroupId = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message FriendRemark {
|
||||||
|
optional uint32 type = 1;
|
||||||
|
optional uint64 fuin = 2;
|
||||||
|
optional bytes rmkName = 3;
|
||||||
|
optional uint64 groupCode = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
message GPS {
|
||||||
|
optional int32 lat = 1;
|
||||||
|
optional int32 lon = 2;
|
||||||
|
optional int32 alt = 3;
|
||||||
|
optional int32 type = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
message GroupMemberProfileInfo {
|
||||||
|
optional uint32 field = 1;
|
||||||
|
optional bytes value = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message GroupProfileInfo {
|
||||||
|
optional uint32 field = 1;
|
||||||
|
optional bytes value = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message GroupSort {
|
||||||
|
optional uint32 groupid = 1;
|
||||||
|
optional uint32 sortid = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message GrpMsgRoamFlag {
|
||||||
|
optional uint64 groupcode = 1;
|
||||||
|
optional uint32 flag = 2;
|
||||||
|
optional uint64 timestamp = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message HotFriendNotify {
|
||||||
|
optional uint64 dstUin = 1;
|
||||||
|
optional uint32 praiseHotLevel = 2;
|
||||||
|
optional uint32 chatHotLevel = 3;
|
||||||
|
optional uint32 praiseHotDays = 4;
|
||||||
|
optional uint32 chatHotDays = 5;
|
||||||
|
optional uint32 closeLevel = 6;
|
||||||
|
optional uint32 closeDays = 7;
|
||||||
|
optional uint32 praiseFlag = 8;
|
||||||
|
optional uint32 chatFlag = 9;
|
||||||
|
optional uint32 closeFlag = 10;
|
||||||
|
optional uint64 notifyTime = 11;
|
||||||
|
optional uint64 lastPraiseTime = 12;
|
||||||
|
optional uint64 lastChatTime = 13;
|
||||||
|
optional uint32 qzoneHotLevel = 14;
|
||||||
|
optional uint32 qzoneHotDays = 15;
|
||||||
|
optional uint32 qzoneFlag = 16;
|
||||||
|
optional uint64 lastQzoneTime = 17;
|
||||||
|
}
|
||||||
|
|
||||||
|
message MQQCampusNotify {
|
||||||
|
optional uint64 fromUin = 1;
|
||||||
|
optional string wording = 2;
|
||||||
|
optional string target = 3;
|
||||||
|
optional uint32 type = 4;
|
||||||
|
optional string source = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ModConfProfile {
|
||||||
|
optional uint64 uin = 1;
|
||||||
|
optional uint32 confUin = 2;
|
||||||
|
repeated ProfileInfo profileInfos = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ModCustomFace {
|
||||||
|
optional uint32 type = 1;
|
||||||
|
optional uint64 uin = 2;
|
||||||
|
optional uint64 groupCode = 3;
|
||||||
|
optional uint64 cmdUin = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ModFrdRoamPriv {
|
||||||
|
repeated OneRoamPriv roamPriv = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ModFriendGroup {
|
||||||
|
repeated FriendGroup frdGroup = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ModFriendRemark {
|
||||||
|
repeated FriendRemark frdRmk = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ModGroupMemberProfile {
|
||||||
|
optional uint64 groupUin = 1;
|
||||||
|
optional uint64 uin = 2;
|
||||||
|
repeated GroupMemberProfileInfo groupMemberProfileInfos = 3;
|
||||||
|
optional uint64 groupCode = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ModGroupName {
|
||||||
|
optional uint32 groupid = 1;
|
||||||
|
optional bytes groupname = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ModGroupProfile {
|
||||||
|
optional uint64 groupUin = 1;
|
||||||
|
repeated GroupProfileInfo groupProfileInfos = 2;
|
||||||
|
optional uint64 groupCode = 3;
|
||||||
|
optional uint64 cmdUin = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ModGroupSort {
|
||||||
|
repeated GroupSort groupsort = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ModLongNick {
|
||||||
|
optional uint64 uin = 1;
|
||||||
|
optional bytes value = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ModProfile {
|
||||||
|
optional uint64 uin = 1;
|
||||||
|
repeated ProfileInfo profileInfos = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ModSnsGeneralInfo {
|
||||||
|
repeated SnsUpateBuffer snsGeneralInfos = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message SubMsg0x27Body {
|
||||||
|
repeated ForwardBody modInfos = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message NewComeinUser {
|
||||||
|
optional uint64 uin = 1;
|
||||||
|
optional uint32 isFrd = 2;
|
||||||
|
optional bytes remark = 3;
|
||||||
|
optional bytes nick = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
message NewComeinUserNotify {
|
||||||
|
optional uint32 msgType = 1;
|
||||||
|
optional bool ongNotify = 2;
|
||||||
|
optional uint32 pushTime = 3;
|
||||||
|
optional NewComeinUser newComeinUser = 4;
|
||||||
|
optional NewGroup newGroup = 5;
|
||||||
|
optional NewGroupUser newGroupUser = 6;
|
||||||
|
}
|
||||||
|
|
||||||
|
message NewGroup {
|
||||||
|
optional uint64 groupCode = 1;
|
||||||
|
optional bytes groupName = 2;
|
||||||
|
optional uint64 ownerUin = 3;
|
||||||
|
optional bytes ownerNick = 4;
|
||||||
|
optional bytes distance = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
message NewGroupUser {
|
||||||
|
optional uint64 uin = 1;
|
||||||
|
optional int32 sex = 2;
|
||||||
|
optional int32 age = 3;
|
||||||
|
optional string nick = 4;
|
||||||
|
optional bytes distance = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
message OneRoamPriv {
|
||||||
|
optional uint64 fuin = 1;
|
||||||
|
optional uint32 privTag = 2;
|
||||||
|
optional uint32 privValue = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message PraiseRankNotify {
|
||||||
|
optional uint32 isChampion = 11;
|
||||||
|
optional uint32 rankNum = 12;
|
||||||
|
optional string msg = 13;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ProfileInfo {
|
||||||
|
optional uint32 field = 1;
|
||||||
|
optional bytes value = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message PushReportDev {
|
||||||
|
optional uint32 msgType = 1;
|
||||||
|
optional bytes cookie = 4;
|
||||||
|
optional uint32 reportMaxNum = 5;
|
||||||
|
optional bytes sn = 6;
|
||||||
|
}
|
||||||
|
|
||||||
|
message PushSearchDev {
|
||||||
|
optional uint32 msgType = 1;
|
||||||
|
optional GPS gpsInfo = 2;
|
||||||
|
optional uint32 devTime = 3;
|
||||||
|
optional uint32 pushTime = 4;
|
||||||
|
optional uint64 din = 5;
|
||||||
|
optional string data = 6;
|
||||||
|
}
|
||||||
|
|
||||||
|
message QQPayPush {
|
||||||
|
optional uint64 uin = 1;
|
||||||
|
optional bool payOk = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message SnsUpateBuffer {
|
||||||
|
optional uint64 uin = 1;
|
||||||
|
optional uint64 code = 2;
|
||||||
|
optional uint32 result = 3;
|
||||||
|
repeated SnsUpdateItem snsUpdateItem = 400;
|
||||||
|
repeated uint32 idlist = 401;
|
||||||
|
}
|
||||||
|
|
||||||
|
message SnsUpdateFlag {
|
||||||
|
repeated SnsUpdateOneFlag updateSnsFlag = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message SnsUpdateItem {
|
||||||
|
optional uint32 updateSnsType = 1;
|
||||||
|
optional bytes value = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message SnsUpdateOneFlag {
|
||||||
|
optional uint64 XUin = 1;
|
||||||
|
optional uint64 id = 2;
|
||||||
|
optional uint32 flag = 3;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user