diff --git a/modules/room.py b/modules/room.py index 3c25dcb..4b3133b 100644 --- a/modules/room.py +++ b/modules/room.py @@ -19,6 +19,8 @@ class MatrixModule(BotModule): await MatrixModule.joined_members(bot, room) elif args[0] == 'banned': await MatrixModule.banned_members(bot, room) + elif args[0] == 'kicked': + await MatrixModule.kicked_members(bot, room) @staticmethod async def servers_in_room(bot, room: nio.MatrixRoom): @@ -61,3 +63,23 @@ class MatrixModule(BotModule): count += 1 banned_members = f"({count}) {banned_members}" await bot.send_text(room, banned_members) + + @staticmethod + async def kicked_members(bot, room: nio.MatrixRoom): + kicked_members = "Kicked members:\n" + count = 0 + res = await bot.client.room_get_state(room.room_id) + + if isinstance(res, nio.RoomGetStateError): + raise res + else: + for state in res.events: + if state["type"] == "m.room.member": + content = state["content"] + if content.get("reason") is not None: + name = state["state_key"] + reason = content.get("reason") + kicked_members += f" - {name}: \"{reason}\"\n" + count += 1 + kicked_members = f"({count}) {kicked_members}" + await bot.send_text(room, kicked_members)