8000 GitHub - K1rL3s/Telegram-Chess-Bot: Телеграм-Бот проект для Яндекс Лицея 2022/2023
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Телеграм-Бот проект для Яндекс Лицея 2022/2023

License

Notifications You must be signed in to change notification settings

K1rL3s/Telegram-Chess-Bot

Repository files navigation

Telegram-Chess-Bot

Телеграм-Бот проект для Яндекс Лицея 2022/2023, работающий на Шахматном API.
Бот позволяет играть в шахматы с движком Stockfish в Telegram.

Функционал

  • Асинхронная работа за счёт библиотеки aiogram
  • Интерфейс с помощью inline-кнопок
  • Гибкая настройка уровня игры движка
  • Кастомизация изображения доски
  • Хранение информации о пользователе при помощи sqlalchemy
  • Личная и глобальная статистика побед, поражений и ничьей
  • Возможность получить подсказку и сдаться

Запуск

  1. Склонировать репозиторий и перейти в него:

    git clone https://github.com/K1rL3s/Telegram-Chess-Bot.git
    cd ./Telegram-Chess-Bot
    
  2. Создать и заполнить файл .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

  1. Иметь установленный Docker Engine

  2. Собрать и запустить:

    docker compose up -d --build
    
  • У себя

  1. Установить python версии 3.10+ (Тестировалось на версии 3.10.8)

  2. Создать и активировать виртуальное окружение:

    # 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
    
  3. Установить все нужные библиотеки.

    # Windows:
    pip install -r ./requirements.txt
    
    # Linux:
    python -m pip install -r ./requirements.txt
    
  4. Запустить бота:

    python ./main.py
    

Скриншоты работы

Telegram_WIFil9xgVJ Telegram_uX4z1D1z0H Telegram_FaI7A4F93h chess_diagram

Пояснительная часть

Проект "Шахматный Телеграм Бот" был разработан Лесовым Кириллом по программе второго года Яндекс Лицея.
Идея сделать бота возникла после создания шахматного API, которое использовало 58FB сь на хакатоне ИТМО и Яндекса по созданию навыков для Алисы.
Проект реализован при помощи асинхронной библиотеки aiogram, что позволило сделать такую интересную фичу, как "загружающееся сообщение" - те точки, которые обновляются в конце сообщения во время загрузки.
Для всех вычислений и изображений используется шахматное API, про которое написано подробнее в нём самом.

Releases

No releases published

Packages

No packages published

Languages

0