1717 PBGroupAlbumUpdate ,
1818 PBGroupInvite ,
1919)
20+ from lagrange .pb .status .friend import (
21+ PBFriendRecall
22+ )
2023from lagrange .utils .binary .protobuf import proto_decode , ProtoStruct , proto_encode
2124from lagrange .utils .binary .reader import Reader
2225from lagrange .utils .operator import unpack_dict , timestamp
3437 GroupReaction ,
3538 GroupSign ,
3639 GroupAlbumUpdate ,
40+ GroupInviteAccept
41+ )
42+ from ..events .friend import (
43+ FriendRecall
3744)
3845from ..wtlogin .sso import SSOPacket
3946from .log import logger
@@ -90,7 +97,18 @@ async def msg_push_handler(client: "Client", sso: SSOPacket):
9097 if pb .cmd == 87 :
9198 inn = pb .info .inner
9299 return GroupMemberJoinRequest (grp_id = inn .grp_id , uid = inn .uid , invitor_uid = inn .invitor_uid )
93- elif typ == 0x210 : # friend event / group file upload notice event
100+ elif typ == 0x210 : # friend event, 528 / group file upload notice event
101+ if sub_typ == 138 : # friend recall
102+ pb = PBFriendRecall .decode (pkg .message .buf2 )
103+ return FriendRecall (
104+ pkg .response_head .from_uin ,
105+ pb .info .from_uid ,
106+ pkg .response_head .to_uin ,
107+ pb .info .to_uid ,
108+ pb .info .seq ,
109+ pb .info .random ,
110+ pb .info .time
111+ )
94112 logger .debug (f"unhandled friend event / group file upload notice event: { pkg } " ) # TODO: paste
95113 elif typ == 0x2DC : # grp event, 732
96114 if sub_typ == 20 : # nudge and group_sign(群打卡)
@@ -106,6 +124,12 @@ async def msg_push_handler(client: "Client", sso: SSOPacket):
106124 attrs [k .decode ()] = int (v .decode ())
107125 else :
108126 attrs [k .decode ()] = v .decode ()
127+ if pb .body .type == 1 :
128+ return GroupInviteAccept (
129+ grp_id ,
130+ attrs ["invitor" ],
131+ attrs ["invitee" ]
132+ )
109133 if pb .body .type == 12 :
110134 return GroupNudge (
111135 grp_id ,
0 commit comments