Skip to content

Commit bafe720

Browse files
authored
Merge pull request #89 from geotribu/feat/filter-matrix-room
fix: filter messages from room in qmatrixchat web
2 parents ab9cd2e + 6403e39 commit bafe720

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

gischat/dispatchers.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,6 @@ def register_request(self, body: MatrixRegisterRequest) -> UUID:
302302
"""
303303
uuid = uuid4()
304304
mapping = body.model_dump()
305-
print(mapping)
306305
self.redis.hset(get_redis_matrix_registrations_key(uuid), mapping=mapping)
307306
return uuid
308307

@@ -357,7 +356,11 @@ async def accept_websocket(
357356
logger.info(f"🧑‍💻 Matrix client logged in: {login_result}")
358357

359358
client.add_event_callback(
360-
partial(self.on_matrix_text_message_received, websocket=websocket),
359+
partial(
360+
self.on_matrix_text_message_received,
361+
room_id=matrix_registration.room_id,
362+
websocket=websocket,
363+
),
361364
RoomMessageText,
362365
)
363366

@@ -381,7 +384,11 @@ async def remove_websocket(self, request_id: UUID, websocket: WebSocket) -> None
381384
await client.close()
382385

383386
async def on_matrix_text_message_received(
384-
self, room: MatrixRoom, event: RoomMessageText, websocket: WebSocket
387+
self,
388+
room: MatrixRoom,
389+
event: RoomMessageText,
390+
room_id: str,
391+
websocket: WebSocket,
385392
) -> None:
386393
"""
387394
Callback for when a text message is received in a Matrix room.
@@ -391,6 +398,9 @@ async def on_matrix_text_message_received(
391398
if not isinstance(event, RoomMessageText):
392399
return
393400

401+
if room.room_id != room_id:
402+
return
403+
394404
message = QMatrixChatTextMessage(
395405
author=room.user_name(event.sender),
396406
text=event.body,

gischat/models.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,9 @@ class MatrixRegisterRequest(BaseModel):
228228
description="Device ID to register on the Matrix server. If not provided, a random one will be generated.",
229229
default_factory=lambda: uuid4().hex,
230230
)
231+
room_id: str = Field(
232+
description="ID of the room to join on the Matrix server, e.g. '!abcdef:matrix.example.com'",
233+
)
231234

232235

233236
class MatrixRegisterResponse(BaseModel):

0 commit comments

Comments
 (0)