Телеграм-Бот проект для Яндекс Лицея 2022/2023, работающий на
Шахматном API.
Бот позволяет играть в шахматы с движком Stockfish в Telegram.
- Асинхронная работа за счёт библиотеки aiogram
- Интерфейс с помощью inline-кнопок
- Гибкая настройка уровня игры движка
- Кастомизация изображения доски
- Хранение информации о пользователе при помощи sqlalchemy
- Личная и глобальная статистика побед, поражений и ничьей
- Возможность получить подсказку и сдаться
-
Склонировать репозиторий и перейти в него:
git clone https://github.com/K1rL3s/Telegram-Chess-Bot.git cd ./Telegram-Chess-Bot
-
Создать и заполнить файл
.env
в корневой папке (пример:.env.example
):CHESS_TG_TOKEN=<tg-bot-token> API_URL=http://ip:port/api/chess/ API_AUTH_KEY=<token> LOG_CHAT=<chat-id> UPS=<int> CACHE_LIMIT_REQUEST=<int> CACHE_GLOBAL_TOP=<int> GLOBAL_TOP=<int>
-
Иметь установленный Docker Engine
-
Собрать и запустить:
docker compose up -d --build
-
Установить python версии 3.10 (Тестировалось на версии 3.10.8)
-
Создать и активировать виртуальное окружение:
# Windows: python -m venv venv venv\Scripts\activate.bat # Linux: virtualenv venv --no-setuptools source venv\Scripts\activate curl -O https://bootstrap.pypa.io/get-pip.py python ./get-pip.py
-
Установить все нужные библиотеки.
# Windows: pip install -r ./requirements.txt # Linux: python -m pip install -r ./requirements.txt
-
Запустить бота:
python ./main.py
Проект "Шахматный Телеграм Бот" был разработан Лесовым Кириллом по программе второго года Яндекс Лицея.
Идея сделать бота возникла после создания шахматного API, которое использовалось на хакатоне ИТМО и Яндекса по созданию навыков для Алисы.
Проект реализован при помощи асинхронной библиотеки aiogram, что позволило сделать такую интересную фичу,
как "загружающееся сообщение" - те точки, которые обновляются в конце сообщения во время загрузки.
Для всех вычислений и изображений используется шахматное API, про которое написано подробнее в нём самом.