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 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)