diff --git a/bot/handlers/start.py b/bot/handlers/start.py index 5975188..f8ab611 100644 --- a/bot/handlers/start.py +++ b/bot/handlers/start.py @@ -13,14 +13,19 @@ router = Router() async def cmd_start(message: Message, state: FSMContext): """Обработчик команды /start""" async with async_session_maker() as session: + # Проверяем, существует ли пользователь + existing_user = await UserService.get_user_by_telegram_id(session, message.from_user.id) + is_new_user = existing_user is None + + # Создаём или получаем пользователя 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): - # Новый пользователь (создан менее минуты назад) + if is_new_user: + # Новый пользователь await message.answer( f"👋 Привет, {message.from_user.first_name}!\n\n" f"Я бот для изучения английского языка. Помогу тебе:\n" @@ -28,15 +33,17 @@ async def cmd_start(message: Message, state: FSMContext): f"✍️ Выполнять интерактивные задания\n" f"💬 Практиковать язык в диалоге с AI\n" f"📊 Отслеживать свой прогресс\n\n" - f"Основные команды:\n" - f"/add [слово] - добавить слово в словарь\n" - f"/words [тема] - тематическая подборка\n" - f"/vocabulary - мой словарь\n" - f"/task - получить задание\n" - f"/practice - диалог с AI\n" - f"/stats - статистика\n" - f"/settings - настройки\n" - f"/help - справка\n\n" + f"Команды:\n" + f"• /add [слово] - добавить слово\n" + f"• /words [тема] - тематическая подборка\n" + f"• /import - импорт из текста\n" + f"• /vocabulary - мой словарь\n" + f"• /task - задания\n" + f"• /practice - диалог с AI\n" + f"• /stats - статистика\n" + f"• /settings - настройки\n" + f"• /reminder - напоминания\n" + f"• /help - полная справка" ) # Предлагаем пройти тест уровня @@ -56,11 +63,14 @@ async def cmd_start(message: Message, state: FSMContext): # Существующий пользователь await message.answer( f"С возвращением, {message.from_user.first_name}! 👋\n\n" - f"Готов продолжить обучение?\n" - f"/vocabulary - посмотреть словарь\n" - f"/task - получить задание\n" - f"/practice - практика диалога\n" - f"/stats - статистика" + f"Готов продолжить обучение?\n\n" + f"Быстрый доступ:\n" + f"• /vocabulary - посмотреть словарь\n" + f"• /task - получить задание\n" + f"• /practice - практика диалога\n" + f"• /words [тема] - тематическая подборка\n" + f"• /stats - статистика\n" + f"• /help - все команды" ) @@ -70,19 +80,20 @@ async def cmd_help(message: Message): await message.answer( "📖 Справка по командам:\n\n" "Управление словарём:\n" - "/add [слово] - добавить слово в словарь\n" - "/vocabulary - просмотр словаря\n" - "/words [тема] - тематическая подборка слов\n" - "/import - импортировать слова из текста\n\n" + "• /add [слово] - добавить слово в словарь\n" + "• /vocabulary - просмотр словаря\n" + "• /words [тема] - тематическая подборка слов\n" + "• /import - импортировать слова из текста\n\n" "Обучение:\n" - "/task - получить задание (перевод, заполнение пропусков)\n" - "/practice - диалоговая практика с ИИ (6 сценариев)\n\n" + "• /task - задание (перевод, заполнение пропусков)\n" + "• /practice - диалог с ИИ (6 сценариев)\n" + "• /level_test - тест определения уровня\n\n" "Статистика:\n" - "/stats - твой прогресс\n\n" + "• /stats - твой прогресс\n\n" "Настройки:\n" - "/settings - настройки бота\n" - "/reminder - ежедневные напоминания\n\n" - "Ты также можешь просто отправить мне слово, и я предложу добавить его в словарь!" + "• /settings - уровень и язык\n" + "• /reminder - ежедневные напоминания\n\n" + "💡 Ты также можешь просто отправить мне слово, и я предложу добавить его в словарь!" ) diff --git a/config/settings.py b/config/settings.py index 73881d9..1102dc1 100644 --- a/config/settings.py +++ b/config/settings.py @@ -16,6 +16,10 @@ class Settings(BaseSettings): # Database database_url: str + postgres_user: str = "botuser" + postgres_password: str = "botpassword" + postgres_db: str = "language_bot" + db_port: str = "15433" # App settings debug: bool = False diff --git a/requirements.txt b/requirements.txt index d645cd2..7d24786 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,3 +7,4 @@ openai==1.57.3 pydantic>=2.4.1,<2.10 pydantic-settings==2.6.1 apscheduler==3.10.4 +greenlet==3.1.1