from aiogram import Router, F
from aiogram.filters import CommandStart, Command
from aiogram.types import Message
from aiogram.fsm.context import FSMContext
from database.db import async_session_maker
from services.user_service import UserService
router = Router()
@router.message(CommandStart())
async def cmd_start(message: Message, state: FSMContext):
"""Обработчик команды /start"""
async with async_session_maker() as session:
user = await UserService.get_or_create_user(
session,
telegram_id=message.from_user.id,
username=message.from_user.username
)
if user.created_at.timestamp() > (message.date.timestamp() - 60):
# Новый пользователь (создан менее минуты назад)
await message.answer(
f"👋 Привет, {message.from_user.first_name}!\n\n"
f"Я бот для изучения английского языка. Помогу тебе:\n"
f"📚 Пополнять словарный запас\n"
f"✍️ Выполнять ежедневные задания\n"
f"💬 Практиковать язык в диалоге\n\n"
f"Основные команды:\n"
f"/add [слово] - добавить слово в словарь\n"
f"/vocabulary - мой словарь\n"
f"/task - получить задание\n"
f"/stats - статистика\n"
f"/help - справка\n\n"
f"Давай начнём! Отправь мне слово, которое хочешь выучить, или используй команду /add"
)
else:
# Существующий пользователь
await message.answer(
f"С возвращением, {message.from_user.first_name}! 👋\n\n"
f"Готов продолжить обучение?\n"
f"/vocabulary - посмотреть словарь\n"
f"/task - получить задание\n"
f"/stats - статистика"
)
@router.message(Command("help"))
async def cmd_help(message: Message):
"""Обработчик команды /help"""
await message.answer(
"📖 Справка по командам:\n\n"
"Управление словарём:\n"
"/add [слово] - добавить слово в словарь\n"
"/vocabulary - просмотр словаря\n"
"/import - импортировать слова из текста\n\n"
"Обучение:\n"
"/task - получить задание\n"
"/practice - практика с ИИ\n\n"
"Статистика:\n"
"/stats - твой прогресс\n\n"
"Настройки:\n"
"/settings - настройки бота\n\n"
"Ты также можешь просто отправить мне слово, и я предложу добавить его в словарь!"
)