34 lines
1.3 KiB
Python
34 lines
1.3 KiB
Python
from aiogram import Router
|
|
from aiogram.filters import Command
|
|
from aiogram.types import Message
|
|
|
|
from bot.access import access_denied_text, is_allowed
|
|
from bot.config import Settings
|
|
from bot.ha_client import HaClient
|
|
from bot.storage import Storage
|
|
|
|
router = Router()
|
|
|
|
|
|
@router.message(Command("newchat"))
|
|
async def cmd_newchat(message: Message, settings: Settings, storage: Storage) -> None:
|
|
if not is_allowed(message, settings):
|
|
await message.answer(access_denied_text())
|
|
return
|
|
if not message.from_user:
|
|
return
|
|
|
|
linked = await storage.get_user(message.from_user.id)
|
|
if not linked:
|
|
await message.answer("Сначала привяжи API-токен (/start).")
|
|
return
|
|
|
|
client = HaClient(settings.ha_api_base_url, linked.api_token)
|
|
try:
|
|
session = await client.create_session("Telegram")
|
|
session_id = int(session["id"])
|
|
await storage.set_session_id(message.from_user.id, session_id)
|
|
await message.answer(f"Новая сессия создана: #{session_id}. История с прошлой сессии здесь не продолжается.")
|
|
except Exception as exc:
|
|
await message.answer(f"Не удалось создать сессию: {exc}")
|