forked from FOSS/ASF-Control-Bot
37 lines
1.3 KiB
Python
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}")
|