File tree Expand file tree Collapse file tree 2 files changed +24
-2
lines changed
Expand file tree Collapse file tree 2 files changed +24
-2
lines changed Original file line number Diff line number Diff line change 55# file, You can obtain one at http://mozilla.org/MPL/2.0/.
66from __future__ import annotations
77
8- from typing import Any , Awaitable , Callable , Iterable
8+ from typing import Any , Awaitable , Callable
99import asyncio
1010
1111from multidict import CIMultiDict
@@ -64,7 +64,7 @@ async def create_room(
6464 topic : str | None = None ,
6565 is_direct : bool = False ,
6666 invitees : list [UserID ] | None = None ,
67- initial_state : Iterable [StateEvent | StrippedStateEvent | dict [str , JSON ]] | None = None ,
67+ initial_state : list [StateEvent | StrippedStateEvent | dict [str , JSON ]] | None = None ,
6868 room_version : str = None ,
6969 creation_content : RoomCreateStateEventContent | dict [str , JSON ] | None = None ,
7070 power_level_override : PowerLevelStateEventContent | dict [str , JSON ] | None = None ,
Original file line number Diff line number Diff line change @@ -149,6 +149,28 @@ async def get_state(self, room_id: RoomID) -> list[StateEvent]:
149149 )
150150 return state
151151
152+ async def create_room (self , * args , ** kwargs ) -> RoomID :
153+ room_id = await super ().create_room (* args , ** kwargs )
154+ if self .state_store :
155+ invitee_membership = Membership .INVITE
156+ if kwargs .get ("beeper_auto_join_invites" ):
157+ invitee_membership = Membership .JOIN
158+ for user_id in kwargs .get ("invitees" , []):
159+ await self .state_store .set_membership (room_id , user_id , invitee_membership )
160+ for evt in kwargs .get ("initial_state" , []):
161+ await self .state_store .update_state (
162+ StateEvent (
163+ type = EventType .find (evt ["type" ], t_class = EventType .Class .STATE ),
164+ room_id = room_id ,
165+ event_id = EventID ("$fake-create-id" ),
166+ sender = self .mxid ,
167+ state_key = evt .get ("state_key" , "" ),
168+ timestamp = 0 ,
169+ content = evt ["content" ],
170+ )
171+ )
172+ return room_id
173+
152174 async def send_state_event (
153175 self ,
154176 room_id : RoomID ,
You can’t perform that action at this time.
0 commit comments