2025-12-04 11:09:54 +03:00
|
|
|
|
import asyncio
|
|
|
|
|
|
import logging
|
|
|
|
|
|
|
|
|
|
|
|
from aiogram import Bot, Dispatcher
|
|
|
|
|
|
from aiogram.client.default import DefaultBotProperties
|
|
|
|
|
|
from aiogram.enums import ParseMode
|
2025-12-04 17:15:49 +03:00
|
|
|
|
from aiogram.types import BotCommand
|
2025-12-04 11:09:54 +03:00
|
|
|
|
|
|
|
|
|
|
from config.settings import settings
|
2025-12-08 15:16:24 +03:00
|
|
|
|
from bot.handlers import start, vocabulary, tasks, settings as settings_handler, words, import_text, practice, reminder, level_test, admin
|
2025-12-04 11:09:54 +03:00
|
|
|
|
from database.db import init_db
|
Добавлены основные функции MVP: тематические подборки, импорт слов, диалоговая практика, напоминания и тест уровня
Новые команды:
- /words [тема] - AI-генерация тематических подборок слов (10 слов по теме с учётом уровня)
- /import - извлечение до 15 ключевых слов из текста (книги, статьи, песни)
- /practice - диалоговая практика с AI в 6 сценариях (ресторан, магазин, путешествие, работа, врач, общение)
- /reminder - настройка ежедневных напоминаний по расписанию
- /level_test - тест из 7 вопросов для определения уровня английского (A1-C2)
Основные изменения:
- AI сервис: добавлены методы generate_thematic_words, extract_words_from_text, start_conversation, continue_conversation, generate_level_test
- Диалоговая практика: исправление ошибок в реальном времени, подсказки, перевод реплик
- Напоминания: APScheduler для ежедневной отправки напоминаний в выбранное время
- Тест уровня: автоматическое определение уровня при регистрации, можно пропустить
- База данных: добавлены поля reminders_enabled, last_reminder_sent
- Vocabulary service: метод get_word_by_original для проверки дубликатов
- Зависимости: apscheduler==3.10.4
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 15:46:02 +03:00
|
|
|
|
from services.reminder_service import init_reminder_service
|
2025-12-04 11:09:54 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async def main():
|
|
|
|
|
|
"""Главная функция запуска бота"""
|
|
|
|
|
|
# Настройка логирования
|
|
|
|
|
|
logging.basicConfig(
|
|
|
|
|
|
level=logging.INFO if settings.debug else logging.WARNING,
|
|
|
|
|
|
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
# Инициализация бота и диспетчера
|
|
|
|
|
|
bot = Bot(
|
|
|
|
|
|
token=settings.bot_token,
|
|
|
|
|
|
default=DefaultBotProperties(parse_mode=ParseMode.HTML)
|
|
|
|
|
|
)
|
|
|
|
|
|
dp = Dispatcher()
|
|
|
|
|
|
|
2025-12-04 17:15:49 +03:00
|
|
|
|
# Команды бота для меню Telegram
|
|
|
|
|
|
await bot.set_my_commands([
|
|
|
|
|
|
BotCommand(command="start", description="Запустить бота"),
|
|
|
|
|
|
BotCommand(command="add", description="Добавить слово"),
|
|
|
|
|
|
BotCommand(command="words", description="Тематическая подборка слов"),
|
|
|
|
|
|
BotCommand(command="import", description="Импорт слов из текста"),
|
|
|
|
|
|
BotCommand(command="vocabulary", description="Мой словарь"),
|
|
|
|
|
|
BotCommand(command="task", description="Задания"),
|
|
|
|
|
|
BotCommand(command="practice", description="Диалог с AI"),
|
|
|
|
|
|
BotCommand(command="stats", description="Статистика"),
|
|
|
|
|
|
BotCommand(command="settings", description="Настройки"),
|
|
|
|
|
|
BotCommand(command="reminder", description="Напоминания"),
|
|
|
|
|
|
BotCommand(command="help", description="Справка"),
|
|
|
|
|
|
])
|
|
|
|
|
|
|
2025-12-04 11:09:54 +03:00
|
|
|
|
# Регистрация роутеров
|
|
|
|
|
|
dp.include_router(start.router)
|
Добавлены основные функции MVP: тематические подборки, импорт слов, диалоговая практика, напоминания и тест уровня
Новые команды:
- /words [тема] - AI-генерация тематических подборок слов (10 слов по теме с учётом уровня)
- /import - извлечение до 15 ключевых слов из текста (книги, статьи, песни)
- /practice - диалоговая практика с AI в 6 сценариях (ресторан, магазин, путешествие, работа, врач, общение)
- /reminder - настройка ежедневных напоминаний по расписанию
- /level_test - тест из 7 вопросов для определения уровня английского (A1-C2)
Основные изменения:
- AI сервис: добавлены методы generate_thematic_words, extract_words_from_text, start_conversation, continue_conversation, generate_level_test
- Диалоговая практика: исправление ошибок в реальном времени, подсказки, перевод реплик
- Напоминания: APScheduler для ежедневной отправки напоминаний в выбранное время
- Тест уровня: автоматическое определение уровня при регистрации, можно пропустить
- База данных: добавлены поля reminders_enabled, last_reminder_sent
- Vocabulary service: метод get_word_by_original для проверки дубликатов
- Зависимости: apscheduler==3.10.4
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 15:46:02 +03:00
|
|
|
|
dp.include_router(level_test.router)
|
2025-12-04 11:09:54 +03:00
|
|
|
|
dp.include_router(vocabulary.router)
|
2025-12-04 14:30:06 +03:00
|
|
|
|
dp.include_router(tasks.router)
|
2025-12-04 14:46:30 +03:00
|
|
|
|
dp.include_router(settings_handler.router)
|
Добавлены основные функции MVP: тематические подборки, импорт слов, диалоговая практика, напоминания и тест уровня
Новые команды:
- /words [тема] - AI-генерация тематических подборок слов (10 слов по теме с учётом уровня)
- /import - извлечение до 15 ключевых слов из текста (книги, статьи, песни)
- /practice - диалоговая практика с AI в 6 сценариях (ресторан, магазин, путешествие, работа, врач, общение)
- /reminder - настройка ежедневных напоминаний по расписанию
- /level_test - тест из 7 вопросов для определения уровня английского (A1-C2)
Основные изменения:
- AI сервис: добавлены методы generate_thematic_words, extract_words_from_text, start_conversation, continue_conversation, generate_level_test
- Диалоговая практика: исправление ошибок в реальном времени, подсказки, перевод реплик
- Напоминания: APScheduler для ежедневной отправки напоминаний в выбранное время
- Тест уровня: автоматическое определение уровня при регистрации, можно пропустить
- База данных: добавлены поля reminders_enabled, last_reminder_sent
- Vocabulary service: метод get_word_by_original для проверки дубликатов
- Зависимости: apscheduler==3.10.4
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 15:46:02 +03:00
|
|
|
|
dp.include_router(words.router)
|
|
|
|
|
|
dp.include_router(import_text.router)
|
|
|
|
|
|
dp.include_router(practice.router)
|
|
|
|
|
|
dp.include_router(reminder.router)
|
2025-12-08 15:16:24 +03:00
|
|
|
|
dp.include_router(admin.router)
|
2025-12-04 11:09:54 +03:00
|
|
|
|
|
|
|
|
|
|
# Инициализация базы данных
|
|
|
|
|
|
await init_db()
|
|
|
|
|
|
|
Добавлены основные функции MVP: тематические подборки, импорт слов, диалоговая практика, напоминания и тест уровня
Новые команды:
- /words [тема] - AI-генерация тематических подборок слов (10 слов по теме с учётом уровня)
- /import - извлечение до 15 ключевых слов из текста (книги, статьи, песни)
- /practice - диалоговая практика с AI в 6 сценариях (ресторан, магазин, путешествие, работа, врач, общение)
- /reminder - настройка ежедневных напоминаний по расписанию
- /level_test - тест из 7 вопросов для определения уровня английского (A1-C2)
Основные изменения:
- AI сервис: добавлены методы generate_thematic_words, extract_words_from_text, start_conversation, continue_conversation, generate_level_test
- Диалоговая практика: исправление ошибок в реальном времени, подсказки, перевод реплик
- Напоминания: APScheduler для ежедневной отправки напоминаний в выбранное время
- Тест уровня: автоматическое определение уровня при регистрации, можно пропустить
- База данных: добавлены поля reminders_enabled, last_reminder_sent
- Vocabulary service: метод get_word_by_original для проверки дубликатов
- Зависимости: apscheduler==3.10.4
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 15:46:02 +03:00
|
|
|
|
# Инициализация и запуск сервиса напоминаний
|
|
|
|
|
|
reminder_service = init_reminder_service(bot)
|
|
|
|
|
|
reminder_service.start()
|
|
|
|
|
|
|
2025-12-04 11:09:54 +03:00
|
|
|
|
# Запуск бота
|
|
|
|
|
|
logging.info("Бот запущен")
|
Добавлены основные функции MVP: тематические подборки, импорт слов, диалоговая практика, напоминания и тест уровня
Новые команды:
- /words [тема] - AI-генерация тематических подборок слов (10 слов по теме с учётом уровня)
- /import - извлечение до 15 ключевых слов из текста (книги, статьи, песни)
- /practice - диалоговая практика с AI в 6 сценариях (ресторан, магазин, путешествие, работа, врач, общение)
- /reminder - настройка ежедневных напоминаний по расписанию
- /level_test - тест из 7 вопросов для определения уровня английского (A1-C2)
Основные изменения:
- AI сервис: добавлены методы generate_thematic_words, extract_words_from_text, start_conversation, continue_conversation, generate_level_test
- Диалоговая практика: исправление ошибок в реальном времени, подсказки, перевод реплик
- Напоминания: APScheduler для ежедневной отправки напоминаний в выбранное время
- Тест уровня: автоматическое определение уровня при регистрации, можно пропустить
- База данных: добавлены поля reminders_enabled, last_reminder_sent
- Vocabulary service: метод get_word_by_original для проверки дубликатов
- Зависимости: apscheduler==3.10.4
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 15:46:02 +03:00
|
|
|
|
try:
|
|
|
|
|
|
await dp.start_polling(bot)
|
|
|
|
|
|
finally:
|
|
|
|
|
|
# Остановка планировщика при завершении
|
|
|
|
|
|
reminder_service.shutdown()
|
2025-12-04 11:09:54 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
|
|
asyncio.run(main())
|