modules/room: Added kicked command

This commit is contained in:
Dylan Hackworth 2020-03-31 23:58:04 -05:00
parent 98ba1bc6c0
commit 2289aa335f
1 changed files with 22 additions and 0 deletions

View File

@ -19,6 +19,8 @@ class MatrixModule(BotModule):
await MatrixModule.joined_members(bot, room) await MatrixModule.joined_members(bot, room)
elif args[0] == 'banned': elif args[0] == 'banned':
await MatrixModule.banned_members(bot, room) await MatrixModule.banned_members(bot, room)
elif args[0] == 'kicked':
await MatrixModule.kicked_members(bot, room)
@staticmethod @staticmethod
async def servers_in_room(bot, room: nio.MatrixRoom): async def servers_in_room(bot, room: nio.MatrixRoom):
@ -61,3 +63,23 @@ class MatrixModule(BotModule):
count += 1 count += 1
banned_members = f"({count}) {banned_members}" banned_members = f"({count}) {banned_members}"
await bot.send_text(room, 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)