SavRatingBot/README.md
2025-05-03 21:47:53 +03:00

4.1 KiB
Raw Blame History

SavRatingBot

Описание

SavRatingBot - это Telegram бот для шахматистов, который помогает отслеживать рейтинги и проверять выполнение разрядных норм.

Основные функции:

  • Отображение рейтингов ФШР (Федерация шахмат России) и ФИДЕ
  • Отображение рейтингов Lichess
  • Проверка выполнения разрядных норм (включая КМС)
  • Автоматическое уведомление об изменениях рейтинга

Установка и запуск

Предварительные требования

  • Docker и Docker Compose
  • Токен Telegram бота (получить у @BotFather)

Шаги по установке

  1. Клонируйте репозиторий:
git clone https://github.com/yourusername/SavRatingBot.git
cd SavRatingBot
  1. Создайте файл .env в корневой директории проекта со следующим содержимым:
TG_TOKEN=ваш_токен_телеграм_бота
  1. Запустите бота с помощью Docker Compose:
docker-compose up -d

Запуск без Docker

  1. Установите Python 3.10 или выше

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

pip install -r requirements.txt
  1. Экспортируйте переменную окружения с токеном бота:
export TG_TOKEN=ваш_токен_телеграм_бота
  1. Запустите бота:
python MyRatingSuperBot.py

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

Команды бота

  • /start - Начать работу с ботом
  • /delete_fshr_id - Удалить сохраненный ФШР ID
  • /delete_lichess_username - Удалить сохраненный ник Lichess
  • /bot_info - Получить информацию о боте

Функции бота

  1. Проверка рейтинга ФШР и ФИДЕ

    • Нажмите кнопку "МОЙ РЕЙТИНГ ФШР"
    • Введите свой ID ФШР (если не вводили ранее)
    • Бот покажет ваши текущие рейтинги ФШР и ФИДЕ
  2. Проверка рейтинга Lichess

    • Нажмите кнопку "МОЙ РЕЙТИНГ LICHESS"
    • Введите свой ник на Lichess (если не вводили ранее)
    • Бот покажет ваши текущие рейтинги на Lichess
  3. Проверка выполнения разрядной нормы

    • Нажмите кнопку "ПРОВЕРИТЬ РАЗРЯДНУЮ НОРМУ"
    • Следуйте инструкциям бота для ввода информации о турнире
    • Бот проверит, выполнили ли вы норму на разряд или КМС
  4. Автоматические уведомления

    • Бот автоматически проверяет изменения рейтинга два раза в день
    • При изменении рейтинга вы получите уведомление

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

  • MyRatingSuperBot.py - Основной файл бота
  • normy.csv - Данные о разрядных нормах
  • data/users.db - База данных пользователей (создается автоматически)
  • Dockerfile и docker-compose.yml - Файлы для запуска в Docker
  • requirements.txt - Зависимости Python

Технические детали

Бот использует:

  • Python 3.10
  • pyTelegramBotAPI для работы с Telegram API
  • BeautifulSoup и requests для парсинга данных с сайтов ФШР и Lichess
  • SQLite для хранения данных пользователей
  • APScheduler для периодической проверки изменений рейтинга