From 0dcd07a89f807bf023da7ef0bc4a1fd929083181 Mon Sep 17 00:00:00 2001 From: Joao Figueiredo Date: Mon, 28 Apr 2025 02:10:31 +0100 Subject: [PATCH] WIP> untested, will auto joint rooms when inveted --- main.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/main.py b/main.py index 213cd69..7259a8f 100644 --- a/main.py +++ b/main.py @@ -2,7 +2,7 @@ import os import asyncio import logging from dotenv import load_dotenv -from nio import AsyncClient, AsyncClientConfig, MatrixRoom, RoomMessageText +from nio import AsyncClient, AsyncClientConfig, MatrixRoom, RoomMessageText, InviteMemberEvent from nio.responses import LoginResponse # --- Load environment variables --- @@ -51,6 +51,15 @@ async def message_callback(room: MatrixRoom, event: RoomMessageText): ) logger.info("Replied with greeting to %s", event.sender) +async def invite_cb(room, event): + """ + Called when the bot is invited to a room. + """ + logger.debug("Invite callback triggered") + if event.state_key == USER_ID: + await client.join(room.room_id) + logger.info("Auto-joined invited room %s", room.room_id) + async def main(): global client logger.debug(HOMESERVER_URL) @@ -79,6 +88,7 @@ async def main(): # Register callback and start syncing client.add_event_callback(message_callback, RoomMessageText) + client.add_event_callback(invite_cb, InviteMemberEvent) logger.info("Starting sync loop with timeout=30000ms") await client.sync_forever(timeout=30000)