Compare commits

...

2 Commits

2 changed files with 11 additions and 4 deletions

View File

@@ -3,6 +3,3 @@ HOMESERVER_URL = "https://matrix.org"
USER_ID = "@botbot_user:matrix.org"
PASSWORD = "botbot_password"
LOG_LEVEL=INFO
# comma-separated list of rooms or aliases to join on startup
BOT_ROOMS=!room1:matrix.org,!another-room:matrix.org,!someroomalias:matrix.org

12
main.py
View File

@@ -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)