Skip to content

Repository files navigation

🤖 Learning English Bot

Telegram-бот для изучения английского языка с интерактивной тренировкой и алгоритмом интервального повторения (SRS).

Примечание: Это индивидуальный бот - каждый устанавливает его для себя.

✨ Возможности

  • 📝 Добавление слов и фраз с транскрипцией и темами
  • ✏️ Редактирование и удаление добавленных слов
  • 🎯 Интерактивная тренировка с выбором вариантов ответа
  • 🔔 Просмотр случайных слов (5 слов по запросу)
  • 📊 Статистика обучения
  • 🧠 Алгоритм интервального повторения (SRS)
  • 📄 Пагинация списков слов

🚀 Быстрая установка

1. Клонируй репозиторий

git clone <your-repo-url>
cd learning_en_bot

2. Установи зависимости

# Используя uv (рекомендуется)
curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync

# Или используя pip
pip install -e .

3. Создай .env файл

cat > .env << EOF
TELEGRAM_TOKEN=твой_токен_от_BotFather
EOF

Где взять токен:

  1. Открой Telegram и найди @BotFather
  2. Отправь /newbot и следуй инструкциям
  3. Скопируй полученный токен в .env

4. Запусти бота

# С uv
uv run python -m src.learning_en_bot.main

# Или с pip
python -m src.learning_en_bot.main

Готово! 🎉 Бот запущен.

📱 Использование

  1. Найди своего бота в Telegram (имя из BotFather)
  2. Нажми /start
  3. Добавь слова: cat - кот или hello - привет - həˈləʊ
  4. Добавь фразы: a black cat - чёрная кошка или break a leg - удачи! #idioms
  5. Редактируй: ✏️ Редактировать → введи слово для поиска → выбери из результатов
  6. Просматривай: 📖 Мои слова (список по 50 слов на страницу)
  7. Тренируйся: 🎯 Тренировка
  8. Повторяй: 🔔 Напоминания (5 случайных слов)

🔧 Развёртывание на VPS

Полная инструкция: См. DEPLOY.md

Быстрый старт:

  1. Клонируй на сервер: git clone <repo> && cd learning_en_bot
  2. Создай .env: echo "TELEGRAM_TOKEN=токен\nALLOWED_USER_ID=твой_id" > .env
  3. Запусти с Docker: docker-compose up -d

Или без Docker:

python3.11 -m venv venv && source venv/bin/activate
pip install -e .
screen -S bot
python -m src.learning_en_bot.main

🔒 Приватный бот

Чтобы только ты мог пользоваться ботом:

  1. Узнай свой Telegram User ID: напиши @userinfobot
  2. Добавь в .env: ALLOWED_USER_ID=твой_id
  3. Бот будет доступен только тебе!

Без ALLOWED_USER_ID - бот публичный (доступен всем).

📁 Структура проекта

learning_en_bot/
├── src/learning_en_bot/
│   ├── handlers/      # Обработчики команд
│   ├── services/      # Бизнес-логика (SRS, Quiz)
│   ├── utils/         # Утилиты (пагинация)
│   └── main.py        # Точка входа
├── data/              # База данных (создаётся автоматически)
└── .env               # Токен бота (создай сам)

🐛 Решение проблем

Бот не отвечает:

  • Проверь, что TELEGRAM_TOKEN правильный в .env
  • Убедись, что бот запущен (нет ошибок в консоли)

Ошибки при установке:

  • Нужен Python 3.11+
  • Проверь: python3 --version

📝 Переменные окружения

Переменная Обязательная По умолчанию Описание
TELEGRAM_TOKEN ✅ Да - Токен бота от @BotFather

Остальные настройки опциональны и имеют разумные значения по умолчанию.

📚 Для разработчиков

  • Ревью кода: См. FINAL_CODE_REVIEW.md (внутренний документ)
  • Тесты: pytest tests/ (требует pytest: pip install pytest)

📄 Лицензия

MIT License

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages