mirror of
https://github.com/williamkray/maubot-kickbot.git
synced 2024-09-30 01:35:34 +00:00
remember to wrap purging in admin check
This commit is contained in:
parent
161c6f04ad
commit
d02636d18a
@ -184,37 +184,41 @@ class KickBot(Plugin):
|
|||||||
@activity.subcommand("purge", help='kick users for excessive inactivity')
|
@activity.subcommand("purge", help='kick users for excessive inactivity')
|
||||||
async def kick_users(self, evt: MessageEvent) -> None:
|
async def kick_users(self, evt: MessageEvent) -> None:
|
||||||
await evt.mark_read()
|
await evt.mark_read()
|
||||||
msg = await evt.respond("starting the purge...")
|
if evt.sender in self.config["admins"]:
|
||||||
report = await self.generate_report()
|
msg = await evt.respond("starting the purge...")
|
||||||
purgeable = report['kick_inactive']
|
report = await self.generate_report()
|
||||||
roomlist = await self.get_space_roomlist()
|
purgeable = report['kick_inactive']
|
||||||
# don't forget to kick from the space itself
|
roomlist = await self.get_space_roomlist()
|
||||||
roomlist.append(self.config["master_room"])
|
# don't forget to kick from the space itself
|
||||||
purge_list = {}
|
roomlist.append(self.config["master_room"])
|
||||||
error_list = {}
|
purge_list = {}
|
||||||
|
error_list = {}
|
||||||
|
|
||||||
for user in purgeable:
|
for user in purgeable:
|
||||||
purge_list[user] = []
|
purge_list[user] = []
|
||||||
for room in roomlist:
|
for room in roomlist:
|
||||||
try:
|
try:
|
||||||
await self.client.get_state_event(room, EventType.ROOM_MEMBER, user)
|
await self.client.get_state_event(room, EventType.ROOM_MEMBER, user)
|
||||||
await self.client.kick_user(room, user, reason='inactivity')
|
await self.client.kick_user(room, user, reason='inactivity')
|
||||||
purge_list[user].append(room)
|
purge_list[user].append(room)
|
||||||
time.sleep(0.5)
|
time.sleep(0.5)
|
||||||
except MNotFound:
|
except MNotFound:
|
||||||
pass
|
pass
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.log.warning(e)
|
self.log.warning(e)
|
||||||
error_list[user] = []
|
error_list[user] = []
|
||||||
error_list[user].append(room)
|
error_list[user].append(room)
|
||||||
|
|
||||||
|
results = "the following users were purged:<p><code>{purge_list}</code></p>the following errors were \
|
||||||
|
recorded:<p><code>{error_list}</code></p>".format(purge_list=purge_list, error_list=error_list)
|
||||||
|
await evt.respond(results, allow_html=True, edits=msg)
|
||||||
|
|
||||||
results = "the following users were purged:<p><code>{purge_list}</code></p>the following errors were \
|
# sync our database after we've made changes to room memberships
|
||||||
recorded:<p><code>{error_list}</code></p>".format(purge_list=purge_list, error_list=error_list)
|
await self.do_sync()
|
||||||
await evt.respond(results, allow_html=True, edits=msg)
|
|
||||||
|
else:
|
||||||
|
await evt.reply("lol you don't have permission to do that")
|
||||||
|
|
||||||
# sync our database after we've made changes to room memberships
|
|
||||||
await self.do_sync()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user