Теперь пользователь получает более подробную информацию: - Зачем нужен токен (для получения данных по задачам) - Где создать токен (настройки профиля) - Какие права дать (только puzzle:read) - Что делать если токен не нужен |
||
|---|---|---|
| .. | ||
| .gitignore | ||
| bot.py | ||
| config.py | ||
| database.py | ||
| docker-compose.yml | ||
| Dockerfile | ||
| formatters.py | ||
| lichess_api.py | ||
| README.md | ||
| requirements.txt | ||
| run.sh | ||
| view_db.py | ||
Lichess Telegram Bot
Телеграм бот для получения статистики игроков Lichess с использованием вашего веб-сервиса.
Возможности
- Добавление пользователей: Добавление игроков Lichess с токеном или без
- Выбор активного игрока: Глобальный выбор активного игрока для всех чатов
- Статистика: Получение статистики за сегодня, вчера и неделю
- Периодические уведомления: Настройка автоматических уведомлений о активности игрока
Команды
/start- Начать работу с ботом/adduser- Добавить нового игрока Lichess/getgamers- Выбрать активного игрока/today- Статистика за сегодня/yesterday- Статистика за вчера/week- Статистика за неделю/setperiod- Настроить периодические уведомления
Установка и запуск
С помощью Docker (рекомендуется)
-
Убедитесь, что ваш Lichess API сервис запущен на
http://localhost:8001 -
Запустите бота:
docker-compose up -d
- Проверьте логи:
docker-compose logs -f lichess-bot
Локальная установка
- Установите зависимости:
pip install -r requirements.txt
- Скопируйте файл конфигурации:
cp .env.example .env
- Запустите бота:
python bot.py
Конфигурация
Основные настройки находятся в файле config.py:
TELEGRAM_BOT_TOKEN- Токен вашего телеграм ботаLICHESS_STATS_API_BASE_URL- URL вашего веб-сервиса (по умолчаниюhttp://localhost:8001)PERIOD_OPTIONS- Доступные периоды для уведомленийPOLL_INTERVAL- Интервал опроса Telegram API (1.0 секунда)POLL_TIMEOUT- Таймаут для Long Polling (30 секунд)DROP_PENDING_UPDATES- Игнорировать накопившиеся обновления при запускеALLOWED_UPDATES- Типы обновлений для обработки
Структура проекта
├── bot.py # Основной файл бота
├── database.py # Работа с базой данных SQLite
├── lichess_api.py # API клиент для Lichess и вашего сервиса
├── formatters.py # Форматирование ответов
├── config.py # Конфигурация
├── requirements.txt # Python зависимости
├── Dockerfile # Docker образ
├── docker-compose.yml # Docker Compose конфигурация
└── README.md # Документация
API Endpoints
Бот использует следующие endpoints вашего сервиса:
GET /today/{username}- Статистика за сегодняGET /yesterday/{username}- Статистика за вчераGET /week/{username}- Статистика за неделюGET /games/{username}/period- Игры за периодGET /puzzle/period- Задачи за период (требует токен)
База данных
Используется SQLite база данных с таблицами:
gamers- Игроки Lichesschat_active_gamers- Активные игроки по чатам (не используется для глобального режима)
Логирование
Бот ведет подробные логи всех операций. В Docker контейнере логи можно просмотреть командой:
docker-compose logs -f lichess-bot
Мониторинг
Docker Compose включает health checks для мониторинга состояния сервисов.
Поддержка
При возникновении проблем проверьте:
- Запущен ли ваш Lichess API сервис на порту 8001
- Правильность токена телеграм бота
- Логи контейнера на наличие ошибок