def load(bot: Bot, update: Update): message = update.effective_message text = message.text.split(" ", 1)[1] load_messasge = message.reply_text(f"Mencoba memuat modul : <b>{text}</b>", parse_mode=ParseMode.HTML) try: imported_module = importlib.import_module("tg_bot.modules." + text) except: load_messasge.edit_text("Apakah modul itu ada?") return if not hasattr(imported_module, "__mod_name__"): imported_module.__mod_name__ = imported_module.__name__ if not imported_module.__mod_name__.lower() in IMPORTED: IMPORTED[imported_module.__mod_name__.lower()] = imported_module else: load_messasge.edit_text("Modul sudah dimuat.") return if "__handlers__" in dir(imported_module): handlers = imported_module.__handlers__ for handler in handlers: if type(handler) != tuple: dispatcher.add_handler(handler) else: handler_name, priority = handler dispatcher.add_handler(handler_name, priority) else: IMPORTED.pop(imported_module.__mod_name__.lower()) load_messasge.edit_text("Modul tidak dapat dimuat.") return if hasattr(imported_module, "__help__") and imported_module.__help__: HELPABLE[imported_module.__mod_name__.lower()] = imported_module # Chats to migrate on chat_migrated events if hasattr(imported_module, "__migrate__"): MIGRATEABLE.append(imported_module) if hasattr(imported_module, "__stats__"): STATS.append(imported_module) if hasattr(imported_module, "__user_info__"): USER_INFO.append(imported_module) if hasattr(imported_module, "__import_data__"): DATA_IMPORT.append(imported_module) if hasattr(imported_module, "__export_data__"): DATA_EXPORT.append(imported_module) if hasattr(imported_module, "__chat_settings__"): CHAT_SETTINGS[imported_module.__mod_name__.lower()] = imported_module if hasattr(imported_module, "__user_settings__"): USER_SETTINGS[imported_module.__mod_name__.lower()] = imported_module load_messasge.edit_text("Modul berhasil dimuat : <b>{}</b>".format(text), parse_mode=ParseMode.HTML)
def unload(bot: Bot, update: Update): message = update.effective_message text = message.text.split(" ", 1)[1] unload_messasge = message.reply_text(f"Attempting to unload module : <b>{text}</b>", parse_mode=ParseMode.HTML) try: imported_module = importlib.import_module("tg_bot.modules." + text) except: unload_messasge.edit_text("Does that module even exist?") return if not hasattr(imported_module, "__mod_name__"): imported_module.__mod_name__ = imported_module.__name__ if imported_module.__mod_name__.lower() in IMPORTED: IMPORTED.pop(imported_module.__mod_name__.lower()) else: unload_messasge.edit_text("Can't unload something that isn't loaded.") return if "__handlers__" in dir(imported_module): handlers = imported_module.__handlers__ for handler in handlers: if type(handler) == bool: unload_messasge.edit_text("This module can't be unloaded!") return elif type(handler) != tuple: dispatcher.remove_handler(handler) else: handler_name, priority = handler dispatcher.remove_handler(handler_name, priority) else: unload_messasge.edit_text("The module cannot be unloaded.") return if hasattr(imported_module, "__help__") and imported_module.__help__: HELPABLE.pop(imported_module.__mod_name__.lower()) # Chats to migrate on chat_migrated events if hasattr(imported_module, "__migrate__"): MIGRATEABLE.remove(imported_module) if hasattr(imported_module, "__stats__"): STATS.remove(imported_module) if hasattr(imported_module, "__user_info__"): USER_INFO.remove(imported_module) if hasattr(imported_module, "__import_data__"): DATA_IMPORT.remove(imported_module) if hasattr(imported_module, "__export_data__"): DATA_EXPORT.remove(imported_module) if hasattr(imported_module, "__chat_settings__"): CHAT_SETTINGS.pop(imported_module.__mod_name__.lower()) if hasattr(imported_module, "__user_settings__"): USER_SETTINGS.pop(imported_module.__mod_name__.lower()) unload_messasge.edit_text(f"Successfully unloaded module : <b>{text}</b>", parse_mode=ParseMode.HTML)
def load(bot: Bot, update: Update): message = update.effective_message text = message.text[len('/load '):] message.reply_text("Attempting to load a new module") imported_module = importlib.import_module("tg_bot.modules." + text) if not hasattr(imported_module, "__mod_name__"): imported_module.__mod_name__ = imported_module.__name__ if not imported_module.__mod_name__.lower() in IMPORTED: IMPORTED[imported_module.__mod_name__.lower()] = imported_module else: raise Exception( "Can't have two modules with the same name! Please change one") if hasattr(imported_module, "__help__") and imported_module.__help__: HELPABLE[imported_module.__mod_name__.lower()] = imported_module # Chats to migrate on chat_migrated events if hasattr(imported_module, "__migrate__"): MIGRATEABLE.append(imported_module) if hasattr(imported_module, "__stats__"): STATS.append(imported_module) if hasattr(imported_module, "__user_info__"): USER_INFO.append(imported_module) if hasattr(imported_module, "__import_data__"): DATA_IMPORT.append(imported_module) if hasattr(imported_module, "__export_data__"): DATA_EXPORT.append(imported_module) if hasattr(imported_module, "__chat_settings__"): CHAT_SETTINGS[imported_module.__mod_name__.lower()] = imported_module if hasattr(imported_module, "__user_settings__"): USER_SETTINGS[imported_module.__mod_name__.lower()] = imported_module update.effective_message.reply_text( "Successfully loaded module: {}".format(text))
def load(update: Update, context: CallbackContext): message = update.effective_message text = message.text.split(" ", 1)[1] load_messasge = message.reply_text( f"Attempting to load module : <b>{text}</b>", parse_mode=ParseMode.HTML) try: imported_module = importlib.import_module("tg_bot.modules." + text) except: load_messasge.edit_text("Does that module even exist?") return if not hasattr(imported_module, "__mod_name__"): imported_module.__mod_name__ = imported_module.__name__ if not imported_module.__mod_name__.lower() in IMPORTED: IMPORTED[imported_module.__mod_name__.lower()] = imported_module else: load_messasge.edit_text("Module already loaded.") return if "__handlers__" in dir(imported_module): handlers = imported_module.__handlers__ for handler in handlers: if type(handler) != tuple: dispatcher.add_handler(handler) else: handler_name, priority = handler dispatcher.add_handler(handler_name, priority) else: IMPORTED.pop(imported_module.__mod_name__.lower()) load_messasge.edit_text("The module cannot be loaded.") return if hasattr(imported_module, "__help__") and imported_module.__help__: HELPABLE[imported_module.__mod_name__.lower()] = imported_module # Chats to migrate on chat_migrated events if hasattr(imported_module, "__migrate__"): MIGRATEABLE.append(imported_module) if hasattr(imported_module, "__stats__"): STATS.append(imported_module) if hasattr(imported_module, "__user_info__"): USER_INFO.append(imported_module) if hasattr(imported_module, "__import_data__"): DATA_IMPORT.append(imported_module) if hasattr(imported_module, "__export_data__"): DATA_EXPORT.append(imported_module) if hasattr(imported_module, "__chat_settings__"): CHAT_SETTINGS[imported_module.__mod_name__.lower()] = imported_module if hasattr(imported_module, "__user_settings__"): USER_SETTINGS[imported_module.__mod_name__.lower()] = imported_module load_messasge.edit_text( "Successfully loaded module : <b>{}</b>".format(text), parse_mode=ParseMode.HTML)
def unload(bot: Bot, update: Update): message = update.effective_message text = message.text.split(" ", 1)[1] unload_messasge = message.reply_text( f"Mencoba membongkar modul : <b>{text}</b>", parse_mode=ParseMode.HTML) try: imported_module = importlib.import_module("tg_bot.modules." + text) except: unload_messasge.edit_text("Apakah modul itu ada?") return if not hasattr(imported_module, "__mod_name__"): imported_module.__mod_name__ = imported_module.__name__ if imported_module.__mod_name__.lower() in IMPORTED: IMPORTED.pop(imported_module.__mod_name__.lower()) else: unload_messasge.edit_text( "Tidak dapat membongkar sesuatu yang tidak dimuat.") return if "__handlers__" in dir(imported_module): handlers = imported_module.__handlers__ for handler in handlers: if type(handler) == bool: unload_messasge.edit_text("Modul ini tidak dapat dibongkar!") return elif type(handler) != tuple: dispatcher.remove_handler(handler) else: handler_name, priority = handler dispatcher.remove_handler(handler_name, priority) else: unload_messasge.edit_text("Modul tidak dapat dibongkar.") return if hasattr(imported_module, "__help__") and imported_module.__help__: HELPABLE.pop(imported_module.__mod_name__.lower()) # Chats to migrate on chat_migrated events if hasattr(imported_module, "__migrate__"): MIGRATEABLE.remove(imported_module) if hasattr(imported_module, "__stats__"): STATS.remove(imported_module) if hasattr(imported_module, "__user_info__"): USER_INFO.remove(imported_module) if hasattr(imported_module, "__import_data__"): DATA_IMPORT.remove(imported_module) if hasattr(imported_module, "__export_data__"): DATA_EXPORT.remove(imported_module) if hasattr(imported_module, "__chat_settings__"): CHAT_SETTINGS.pop(imported_module.__mod_name__.lower()) if hasattr(imported_module, "__user_settings__"): USER_SETTINGS.pop(imported_module.__mod_name__.lower()) unload_messasge.edit_text(f"Modul berhasil diturunkan : <b>{text}</b>", parse_mode=ParseMode.HTML)