|
21 | 21 | from gischat.dispatchers import ( |
22 | 22 | MatrixDispatcher, |
23 | 23 | RedisDispatcher, |
| 24 | + forward_message_to_matrix_channel, |
24 | 25 | get_redis_channel_key, |
25 | 26 | ) |
26 | 27 | from gischat.env import ( |
27 | | - MATRIX_ENABLED, |
| 28 | + MATRIX_CHAT_ENABLED, |
| 29 | + MATRIX_PING_HOMESERVER, |
| 30 | + MATRIX_PING_MESSAGE_PREFIX, |
| 31 | + MATRIX_PING_ROOMID, |
| 32 | + MATRIX_PING_TOKEN, |
28 | 33 | REDIS_HOST, |
29 | 34 | REDIS_PORT, |
30 | 35 | REDIS_URL, |
@@ -283,6 +288,18 @@ async def websocket_endpoint(websocket: WebSocket, channel: str) -> None: |
283 | 288 | if message.text not in QCHAT_CHEATCODES: |
284 | 289 | redis_dispatcher.store_message(channel, message) |
285 | 290 |
|
| 291 | + if ( |
| 292 | + message.text.startswith(MATRIX_PING_MESSAGE_PREFIX) |
| 293 | + and MATRIX_PING_MESSAGE_PREFIX |
| 294 | + and MATRIX_PING_HOMESERVER |
| 295 | + and MATRIX_PING_ROOMID |
| 296 | + and MATRIX_PING_TOKEN |
| 297 | + ): |
| 298 | + logger.info( |
| 299 | + f"🏓 [{channel}]: Matrix ping received, forwarding to Matrix channel." |
| 300 | + ) |
| 301 | + await forward_message_to_matrix_channel(message, channel) |
| 302 | + |
286 | 303 | # image message |
287 | 304 | if message.type == QChatMessageTypeEnum.IMAGE: |
288 | 305 | message = QChatImageMessage(**payload) |
@@ -420,7 +437,7 @@ async def websocket_endpoint(websocket: WebSocket, channel: str) -> None: |
420 | 437 | matrix_dispatcher = MatrixDispatcher.instance() |
421 | 438 |
|
422 | 439 |
|
423 | | -if MATRIX_ENABLED: |
| 440 | +if MATRIX_CHAT_ENABLED: |
424 | 441 |
|
425 | 442 | @app.get("/matrix", response_class=HTMLResponse) |
426 | 443 | async def get_matrix_ws_page(request: Request): |
@@ -475,7 +492,6 @@ async def matrix_websocket_endpoint(websocket: WebSocket, request_id: UUID) -> N |
475 | 492 |
|
476 | 493 | # text message |
477 | 494 | if message.type == QChatMessageTypeEnum.TEXT: |
478 | | - print("payload: ", payload) |
479 | 495 | message = QMatrixChatTextMessage(**payload) |
480 | 496 |
|
481 | 497 | logger.info( |
|
0 commit comments