96 lines
4.1 KiB
Markdown
96 lines
4.1 KiB
Markdown
# SavRatingBot
|
||
|
||
## Описание
|
||
SavRatingBot - это Telegram бот для шахматистов, который помогает отслеживать рейтинги и проверять выполнение разрядных норм.
|
||
|
||
### Основные функции:
|
||
- Отображение рейтингов ФШР (Федерация шахмат России) и ФИДЕ
|
||
- Отображение рейтингов Lichess
|
||
- Проверка выполнения разрядных норм (включая КМС)
|
||
- Автоматическое уведомление об изменениях рейтинга
|
||
|
||
## Установка и запуск
|
||
|
||
### Предварительные требования
|
||
- Docker и Docker Compose
|
||
- Токен Telegram бота (получить у [@BotFather](https://t.me/BotFather))
|
||
|
||
### Шаги по установке
|
||
|
||
1. Клонируйте репозиторий:
|
||
```bash
|
||
git clone https://github.com/yourusername/SavRatingBot.git
|
||
cd SavRatingBot
|
||
```
|
||
|
||
2. Создайте файл `.env` в корневой директории проекта со следующим содержимым:
|
||
```
|
||
TG_TOKEN=ваш_токен_телеграм_бота
|
||
```
|
||
|
||
3. Запустите бота с помощью Docker Compose:
|
||
```bash
|
||
docker-compose up -d
|
||
```
|
||
|
||
### Запуск без Docker
|
||
|
||
1. Установите Python 3.10 или выше
|
||
|
||
2. Установите зависимости:
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
3. Экспортируйте переменную окружения с токеном бота:
|
||
```bash
|
||
export TG_TOKEN=ваш_токен_телеграм_бота
|
||
```
|
||
|
||
4. Запустите бота:
|
||
```bash
|
||
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 для периодической проверки изменений рейтинга |