From fba27e799b9840babb43effddc12c5c94e5f7974 Mon Sep 17 00:00:00 2001 From: Nick80835 Date: Fri, 17 Apr 2020 16:47:19 -0400 Subject: [PATCH] simplify command handling --- ubot/command_handler.py | 17 ++++++++--------- ubot/loader.py | 1 - 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/ubot/command_handler.py b/ubot/command_handler.py index e4c003b..a61dfbe 100644 --- a/ubot/command_handler.py +++ b/ubot/command_handler.py @@ -8,31 +8,30 @@ from telethon import events class CommandHandler(): def __init__(self, client, logger, settings): self.pattern_template = "(?is)^{0}{1}(?: |$)(.*)" - self.outgoing_commands = {} self.incoming_commands = {} self.logger = logger self.settings = settings client.add_event_handler(self.handle_incoming, events.NewMessage(incoming=True)) async def handle_incoming(self, event): + if event.via_bot_id: + return + prefix = escape(self.settings.get_config("cmd_prefix") or '.') for key, value in self.incoming_commands.items(): - pattern = self.pattern_template.format("" if value["noprefix"] else prefix, key) - - if search(pattern, event.text): - event.pattern_match = search(pattern, event.text) + pattern_match = search(self.pattern_template.format("" if value["noprefix"] else prefix, key), event.text) + if pattern_match: if value["sudo"] and str(event.from_id) != self.settings.get_config("owner_id"): print(f"Attempted sudo command ({event.text}) from ID {event.from_id}") - return + continue + + event.pattern_match = pattern_match try: await value["function"](event) - return except Exception as exception: self.logger.warn(f"{value['function'].__name__} - {exception}") await event.reply(f"`An error occurred in {value['function'].__name__}: {exception}`") raise exception - - break diff --git a/ubot/loader.py b/ubot/loader.py index 311201d..b46d564 100644 --- a/ubot/loader.py +++ b/ubot/loader.py @@ -27,7 +27,6 @@ class Loader(): self.loaded_modules.append(import_module("ubot.modules." + module_name)) def reload_all_modules(self): - self.command_handler.outgoing_commands = {} self.command_handler.incoming_commands = {} errors = ""