This commit is contained in:
夜坂雅 2023-06-13 09:40:42 +08:00
parent eafcf2b389
commit b6c7ae2c5a
2 changed files with 27 additions and 3 deletions

View File

@ -15,7 +15,7 @@ def run():
from . import main
# Run the main function of the bot
asyncio.run(main.main())
asyncio.get_event_loop().run_until_complete(main.main())
except ImportError as e:
print("Unable to import nyx_box.main:", e)
except KeyboardInterrupt:

View File

@ -1,7 +1,15 @@
import asyncio
import logging
from nio import AsyncClient, MatrixRoom, RoomMemberEvent, RoomMessageText, UnknownEvent
from nio import (
AsyncClient,
MatrixRoom,
PowerLevels,
RoomGetStateEventError,
RoomMemberEvent,
RoomMessageText,
UnknownEvent,
)
from nyx_bot.bot_commands import Command
from nyx_bot.config import Config
@ -132,6 +140,22 @@ class Callbacks:
):
content = event.content or {}
name = content.get("displayname")
logger.info(
logger.debug(
f"New user joined in {room.display_name}: {name} ({event.state_key})"
)
state_resp = await self.client.room_get_state_event(
room.room_id, "m.room.power_levels"
)
if isinstance(state_resp, RoomGetStateEventError):
logger.debug(
f"Failed to get power level data in room {room.display_name} ({room.room_id}). Stop processing."
)
return
content = state_resp.content
powers = PowerLevels(
events=content.get("events"), users=content.get("users")
)
if not powers.can_user_send_state(self.client.user, "m.room.power_levels"):
logger.debug(
f"Bot is unable to update power levels in {room.display_name} ({room.room_id}). Stop processing."
)