/
basswan
/
py_bot
Обзор
Документация
Войти
/
basswan
/
py_bot
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
models/base/invoke.py
45 строк
2 KB
basswan
create: logmanager.py, abstractcommand.py, executor.py, invoke.py, main.py
09 апр 2026, 15:59
Верифицирован
09 апр 2026, 15:59
821d5d8
Код
Авторство
О чём код?
from logmanager.logmanager import add_info_to_log, add_error_to_log import importlib import sys import os def execute_command(command_name: str) -> bool: """ Выполняет команду по её имени (названию файла). Ожидается, что команда — это модуль с одноимённым классом, унаследованным от Command. :param command_name: Название команды (имя файла и класса) :return: True при успешном выполнении, иначе False """ try: # Добавляем путь к модулям, если ещё не добавлен module_path = f"models.commands.{command_name}" # Динамический импорт модуля module = importlib.import_module(module_path) # Получаем класс по имени (предполагается, что имя класса совпадает с именем файла) command_class = getattr(module, command_name) # Создаём экземпляр и выполняем command_instance = command_class() add_info_to_log(f"Запуск команды: {command_name}", __name__) command_instance.execute() return True except ModuleNotFoundError: error_msg = f"Модуль команды не найден: {command_name}" add_error_to_log(error_msg, __name__) print(error_msg) return False except AttributeError as e: error_msg = f"Класс {command_name} не найден в модуле или не унаследован от Command: {e}" add_error_to_log(error_msg, __name__) print(error_msg) return False except Exception as e: error_msg = f"Ошибка при выполнении команды {command_name}: {e}" add_error_to_log(error_msg, __name__) print(error_msg) return False