diff --git a/README.md b/README.md new file mode 100644 index 0000000..7e90ce0 --- /dev/null +++ b/README.md @@ -0,0 +1,96 @@ +# 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 для периодической проверки изменений рейтинга \ No newline at end of file