@@ -119,3 +119,72 @@ class PBSsoInfoSyncResponse(ProtoStruct):
119119 reg_rsp : PBRegisterResponse = proto_field (7 )
120120 # f9: int = proto_field(9)
121121
122+
123+ # trpc.msg.register_proxy.RegisterProxy.InfoSyncPush: From Server
124+ class InfoSyncPushGrpInfo (ProtoStruct ):
125+ grp_id : int = proto_field (1 )
126+ last_msg_seq : int = proto_field (2 )
127+ last_msg_seq_read : int = proto_field (3 ) # bot最后一次标记已读
128+ f4 : int = proto_field (4 ) # 1
129+ last_msg_timestamp : int = proto_field (8 , default = 0 )
130+ grp_name : str = proto_field (9 )
131+ last_msg_seq_sent : int = proto_field (10 , default = 0 ) # bot最后一次发信 TODO: 可能不太对?确认下
132+ f10 : int = proto_field (10 , default = None ) # u32, unknown
133+ f12 : int = proto_field (12 , default = None ) # 1
134+ f13 : int = proto_field (13 , default = None ) # 1
135+ f14 : int = proto_field (14 , default = None ) # u16?
136+ f15 : int = proto_field (15 , default = None ) # 1
137+ f16 : int = proto_field (16 , default = None ) # u16?
138+
139+
140+ class InnerGrpMsg (ProtoStruct ):
141+ grp_id : int = proto_field (3 )
142+ start_seq : int = proto_field (4 )
143+ end_seq : int = proto_field (5 )
144+ msgs : list [MsgPushBody ] = proto_field (6 ) # last 30 msgs
145+ last_msg_time : int = proto_field (8 )
146+
147+
148+ class InfoSyncGrpMsgs (ProtoStruct ):
149+ inner : list [InnerGrpMsg ] = proto_field (3 )
150+
151+
152+ class InnerSysEvt (ProtoStruct ):
153+ grp_id : int = proto_field (1 )
154+ grp_id_str : str = proto_field (2 )
155+ last_evt_time : int = proto_field (5 )
156+ events : list [MsgPushBody ] = proto_field (8 ) # TODO: parse event (like MsgPush?)
157+
158+
159+ # with FriendMessage
160+ class InfoSyncSysEvents (ProtoStruct ):
161+ # f3: dict = proto_field(3) # {1: LAST_EVT_TIME}
162+ inner : list [InnerSysEvt ] = proto_field (4 )
163+ # f5: dict = proto_field(5) # {1: LAST_EVT_TIME}
164+
165+
166+ class PBSsoInfoSyncPush (ProtoStruct ):
167+ cmd_type : int = proto_field (3 ) # 5: GrpInfo(f6), 2: HUGE msg push block(f7&f8), 1&4: unknown(empty)
168+ f4 : int = proto_field (4 ) # 393
169+ grp_info : list [InfoSyncPushGrpInfo ] = proto_field (6 , default = None )
170+ grp_msgs : InfoSyncGrpMsgs = proto_field (7 , default = None )
171+ sys_events : InfoSyncSysEvents = proto_field (8 , default = None )
172+
173+
174+ # trpc.msg.register_proxy.RegisterProxy.PushParams
175+ class PPOnlineDevices (ProtoStruct ):
176+ sub_id : int = proto_field (1 )
177+ # f2: int = proto_field(2) # 2
178+ # f3: int = proto_field(3) # 1
179+ # f4: int = proto_field(4) # 109
180+ os_name : str = proto_field (5 )
181+ # f6:int = proto_field(6)
182+ device_name : str = proto_field (7 )
183+
184+
185+ class PBServerPushParams (ProtoStruct ):
186+ online_devices : list [PPOnlineDevices ] = proto_field (4 , default_factory = list )
187+ # f6: dict = proto_field(6) # {2: 9}
188+ # f7: str = proto_field(7) # value: ""(empty)
189+ # f8: list[int] = proto_field(8) # multi long int
190+ # f9: int = proto_field(9) # 8640000, 100days
0 commit comments