diff --git a/core/commands/info.py b/core/commands/info.py new file mode 100644 index 0000000..9a74285 --- /dev/null +++ b/core/commands/info.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +""" +Команда !info – показывает краткую справку по всем командам бота. +Не зависит от комнаты – всегда одна и та же. +""" + +import logging +from core.commands.base import Command + +logger = logging.getLogger(__name__) + + +class InfoCommand(Command): + name = "!info" + aliases = ["/info", "!справка_краткая"] + + async def execute(self, msg, args: str, user_jid: str, room_jid: str = None): + """ + Отправляет пользователю краткую справку. + Параметр room_jid игнорируется. + """ + help_text = ( + "📚 **Управление знаниями:**\n" + "!learn [--global] [--title \"Название\"] – включить обучение (следующий файл/текст/ссылка добавятся в БЗ)\n" + "!stop_learn – выключить обучение\n" + "!clear – очистить ЛИЧНУЮ БЗ (в группе – БЗ комнаты)\n" + "!global_clear – очистить ГЛОБАЛЬНУЮ БЗ (админ)\n" + "!global_remove \"Название\" – удалить глобальный документ по названию (админ)\n" + "!kb – полный список документов в БЗ (личные и глобальные; в группе – документы комнаты)\n" + "!reset – сбросить историю диалога\n\n" + "💬 **Диалог:**\n" + "!stats – статистика работы бота (админ)\n" + "!status – статус сервисов (админ)\n" + "!clean – очистить временные файлы (админ)\n\n" + "🔬 **Экспертные команды:**\n" + "!summary – суммаризация последнего документа\n" + "!metrics – извлечь KPI из всей базы знаний (кэш 5 мин)\n\n" + "🌐 **Обучение по ссылкам (в режиме `!learn`):**\n" + "https://example.com [--recursive] [--depth N] [--max M] – рекурсивная загрузка сайта\n\n" + "❓ **Справка:**\n" + "!help – подробный список команд с синтаксисом\n" + "!help команда – справка по конкретной команде" + ) + reply = msg.reply(help_text) + if reply: + reply.send() # <-- УБРАЛИ await + else: + logger.error("Не удалось отправить справку info") + + def get_help(self) -> str: + return "Показывает краткую справку. Использование: `!info`" \ No newline at end of file