Skip to content

Commit 8684e24

Browse files
committed
Update state store after creating room
1 parent b2ad957 commit 8684e24

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

mautrix/client/api/rooms.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
66
from __future__ import annotations
77

8-
from typing import Any, Awaitable, Callable, Iterable
8+
from typing import Any, Awaitable, Callable
99
import asyncio
1010

1111
from 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,

mautrix/client/store_updater.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff 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,

0 commit comments

Comments
 (0)