@@ -107,14 +107,14 @@ async def handle_kick(self, room_id: RoomID, user_id: UserID, kicked_by: UserID,
107107 event_id : EventID ) -> None :
108108 pass
109109
110- async def handle_raw_leave (self , room_id : RoomID , user_id : UserID , sender : UserID , reason : str ,
111- event_id : EventID ) -> None :
112- pass
113-
114110 async def handle_ban (self , room_id : RoomID , user_id : UserID , banned_by : UserID , reason : str ,
115111 event_id : EventID ) -> None :
116112 pass
117113
114+ async def handle_unban (self , room_id : RoomID , user_id : UserID , unbanned_by : UserID ,
115+ reason : str , event_id : EventID ) -> None :
116+ pass
117+
118118 async def handle_join (self , room_id : RoomID , user_id : UserID , event_id : EventID ) -> None :
119119 pass
120120
@@ -128,10 +128,18 @@ async def handle_puppet_invite(self, room_id: RoomID, puppet: 'BasePuppet',
128128 invited_by : 'BaseUser' , event_id : EventID ) -> None :
129129 pass
130130
131- async def handle_invite (self , room_id : RoomID , user_id : UserID , invited_by : 'BaseUser' ,
131+ async def handle_invite (self , room_id : RoomID , user_id : UserID , invited_by : UserID ,
132132 event_id : EventID ) -> None :
133133 pass
134134
135+ async def handle_reject (self , room_id : RoomID , user_id : UserID , reason : str , event_id : EventID
136+ ) -> None :
137+ pass
138+
139+ async def handle_disinvite (self , room_id : RoomID , user_id : UserID , disinvited_by : UserID ,
140+ reason : str , event_id : EventID ) -> None :
141+ pass
142+
135143 async def handle_event (self , evt : Event ) -> None :
136144 """Called by :meth:`int_handle_event` for message events other than m.room.message."""
137145
@@ -280,13 +288,21 @@ async def int_handle_event(self, evt: Event) -> None:
280288 await self .int_handle_invite (evt .room_id , UserID (evt .state_key ), evt .sender ,
281289 evt .event_id )
282290 elif evt .content .membership == Membership .LEAVE :
283- await self .handle_raw_leave (evt .room_id , UserID (evt .state_key ), evt .sender ,
291+ if prev_membership == Membership .BAN :
292+ await self .handle_unban (evt .room_id , UserID (evt .state_key ), evt .sender ,
284293 evt .content .reason , evt .event_id )
285- if evt .sender != evt .state_key :
294+ elif prev_membership == Membership .INVITE :
295+ if evt .sender == evt .state_key :
296+ await self .handle_reject (evt .room_id , UserID (evt .state_key ),
297+ evt .content .reason , evt .event_id )
298+ else :
299+ await self .handle_disinvite (evt .room_id , UserID (evt .state_key ), evt .sender ,
300+ evt .content .reason , evt .event_id )
301+ elif evt .sender == evt .state_key :
302+ await self .handle_leave (evt .room_id , UserID (evt .state_key ), evt .event_id )
303+ else :
286304 await self .handle_kick (evt .room_id , UserID (evt .state_key ), evt .sender ,
287305 evt .content .reason , evt .event_id )
288- else :
289- await self .handle_leave (evt .room_id , UserID (evt .state_key ), evt .event_id )
290306 elif evt .content .membership == Membership .BAN :
291307 await self .handle_ban (evt .room_id , UserID (evt .state_key ), evt .sender ,
292308 evt .content .reason , evt .event_id )
0 commit comments