WIP> untested, will auto joint rooms when inveted

This commit is contained in:
2025-04-28 02:10:31 +01:00
parent e10db9b674
commit 0dcd07a89f

12
main.py
View File

@@ -2,7 +2,7 @@ import os
import asyncio import asyncio
import logging import logging
from dotenv import load_dotenv 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 from nio.responses import LoginResponse
# --- Load environment variables --- # --- Load environment variables ---
@@ -51,6 +51,15 @@ async def message_callback(room: MatrixRoom, event: RoomMessageText):
) )
logger.info("Replied with greeting to %s", event.sender) 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(): async def main():
global client global client
logger.debug(HOMESERVER_URL) logger.debug(HOMESERVER_URL)
@@ -79,6 +88,7 @@ async def main():
# Register callback and start syncing # Register callback and start syncing
client.add_event_callback(message_callback, RoomMessageText) client.add_event_callback(message_callback, RoomMessageText)
client.add_event_callback(invite_cb, InviteMemberEvent)
logger.info("Starting sync loop with timeout=30000ms") logger.info("Starting sync loop with timeout=30000ms")
await client.sync_forever(timeout=30000) await client.sync_forever(timeout=30000)