Files
ASF-Control-Bot/bot/handlers/start.py
T

37 lines
1.3 KiB
Python

from aiogram import Router
from aiogram.types import Message
from aiogram.filters import Command
from bot.filters import AdminFilter
from bot.services.users import upsert_user_from_telegram
from bot.ui.keyboards import main_keyboard
from bot.ui.formatters import get_asf_status_text
from bot.logging_utils import describe_user, get_logger
router = Router()
logger = get_logger(__name__)
@router.message(Command("start"), AdminFilter())
async def start_handler(message: Message) -> None:
user = describe_user(message.from_user.id if message.from_user else None)
await upsert_user_from_telegram(message.from_user)
logger.info("Получена команда /start: %s", user)
try:
await message.delete()
logger.info("Сообщение /start удалено: %s", user)
except Exception:
logger.exception("Не удалось удалить сообщение /start: %s", user)
try:
await message.answer(get_asf_status_text(), reply_markup=main_keyboard())
logger.info("Главное меню отправлено: %s", user)
except Exception as error:
logger.exception("Не удалось отправить главное меню: %s", user)
await message.answer(f"Ошибка: {error}")