Files
fckbot/rag/commands/create.py
2026-06-30 09:49:14 +00:00

60 lines
2.1 KiB
Python

# -*- coding: utf-8 -*-
from core.commands.base import Command
from core.functions.generate_document import generate_document_from_template
import asyncio
import logging
logger = logging.getLogger(__name__)
class CreateCommand(Command):
name = "!create"
aliases = ["/create"]
async def execute(self, msg, args: str, user_jid: str, room_jid: str = None):
if not room_jid:
reply = msg.reply("⚠️ Команда !create работает только в комнатах.")
if reply:
reply.send()
return
clean_args = args.strip()
if clean_args.startswith(self.name):
clean_args = clean_args[len(self.name):].lstrip()
name = clean_args.strip()
if name.startswith('"') and name.endswith('"'):
name = name[1:-1]
if not name:
reply = msg.reply("Укажите название шаблона: !create \"Название\"")
if reply:
reply.send()
return
template_info = await self.bot.db.get_template(room_jid, name)
if not template_info:
reply = msg.reply(f"❌ Шаблон '{name}' не найден.")
if reply:
reply.send()
return
reply = msg.reply("🔄 Начинаю генерацию документа. Это может занять несколько минут. Я сообщу, когда будет готово.")
if reply:
reply.send()
asyncio.create_task(
generate_document_from_template(
bot=self.bot,
msg=msg,
room_jid=room_jid,
template_path=template_info['file_path'],
template_name=name,
user_jid=user_jid
)
)
def get_help(self) -> str:
return (
"Генерирует документ по шаблону из базы знаний. "
"Использование: `!create \"Название шаблона\"` (только в комнате)"
)