From 2d19affee88f01bdd9a1dd86c2243d57e527f0e9 Mon Sep 17 00:00:00 2001 From: Ville Ranki Date: Sun, 12 Sep 2021 14:03:14 +0300 Subject: [PATCH] Fixes to users, better room listing in bot module. --- README.md | 5 ++++- modules/bot.py | 6 +++--- modules/users.py | 11 ++++++++--- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 5a23f02..d6e8e68 100644 --- a/README.md +++ b/README.md @@ -525,6 +525,8 @@ Example: ### Gfycat +NOTE: This module is not working at the moment - gfycat now needs API key + Can be used to post a picture from Gfycat given a query string. Commands: @@ -631,10 +633,11 @@ You can classify users based on MXID to get stats on where users come from. #### Usage * !users list [pattern] - List users matching wildcard pattern in this room (must be owner) +* !users listall [pattern] - List users matching wildcard pattern globally (must be owner) * !users kick [pattern] - Kick users matching wildcard pattern from room (must be admin in room) * !users classify add [name] [pattern] - Add a classification pattern (must be owner) * !users classify list - List classifications -* !users classify del [name] - Delete classification +* !users classify del [name] - Delete classification (must be owner) * !users roomstats - List how many users are in each class in this room * !users stats - List how many users are in each class globally as seen by bot diff --git a/modules/bot.py b/modules/bot.py index 0150d46..e28eec7 100644 --- a/modules/bot.py +++ b/modules/bot.py @@ -301,11 +301,11 @@ class MatrixModule(BotModule): async def rooms(self, bot, room, event): bot.must_be_owner(event) - rooms = [] + output = f'I\'m in following {len(bot.client.rooms)} rooms:\n' for croomid in bot.client.rooms: roomobj = bot.get_room_by_id(croomid) - rooms.append(roomobj.machine_name) - await bot.send_text(room, f'I\'m in following {len(rooms)} rooms: {rooms}') + output = output + f' - {roomobj.display_name} ( {roomobj.machine_name} )\n' + await bot.send_text(room, output) def disable(self): raise ModuleCannotBeDisabled diff --git a/modules/users.py b/modules/users.py index 482cbe1..c36651c 100644 --- a/modules/users.py +++ b/modules/users.py @@ -45,9 +45,13 @@ class MatrixModule(BotModule): await bot.send_text(room, reply) return if len(args) == 2: - if args[0] == 'list': + if args[0] == 'list' or args[0] == 'listall': bot.must_be_owner(event) - users = self.search_users(bot, args[1]) + search_room = None + if args[0] == 'list': + search_room = room.room_id + allusers = self.get_users(bot, search_room) + users = fnmatch.filter(allusers, args[1]) if len(users): await bot.send_text(room, ' '.join(users)) else: @@ -55,7 +59,8 @@ class MatrixModule(BotModule): return if args[0] == 'kick': bot.must_be_admin(room, event) - users = self.search_users(bot, args[1]) + allusers = self.get_users(bot, room.room_id) + users = fnmatch.filter(allusers, args[1]) if len(users): for user in users: self.logger.debug(f"Kicking {user} from {room.room_id} as requested by {event.sender}")