- Объединены три проекта в один репозиторий - LichessWebServices - REST API для статистики - LichessClientTG_bot - Telegram бот с поддержкой множества пользователей - LichessWebView - Веб-интерфейс для просмотра пользователей и игроков - Добавлен общий docker-compose.yml для запуска всех сервисов - Добавлен скрипт start.sh для удобного запуска - Добавлен README с полным описанием проекта
116 lines
4.6 KiB
Markdown
116 lines
4.6 KiB
Markdown
# Lichess Telegram Bot
|
||
|
||
Телеграм бот для получения статистики игроков Lichess с использованием вашего веб-сервиса.
|
||
|
||
## Возможности
|
||
|
||
- **Добавление пользователей**: Добавление игроков Lichess с токеном или без
|
||
- **Выбор активного игрока**: Глобальный выбор активного игрока для всех чатов
|
||
- **Статистика**: Получение статистики за сегодня, вчера и неделю
|
||
- **Периодические уведомления**: Настройка автоматических уведомлений о активности игрока
|
||
|
||
## Команды
|
||
|
||
- `/start` - Начать работу с ботом
|
||
- `/adduser` - Добавить нового игрока Lichess
|
||
- `/getgamers` - Выбрать активного игрока
|
||
- `/today` - Статистика за сегодня
|
||
- `/yesterday` - Статистика за вчера
|
||
- `/week` - Статистика за неделю
|
||
- `/setperiod` - Настроить периодические уведомления
|
||
|
||
## Установка и запуск
|
||
|
||
### С помощью Docker (рекомендуется)
|
||
|
||
1. Убедитесь, что ваш Lichess API сервис запущен на `http://localhost:8001`
|
||
|
||
2. Запустите бота:
|
||
```bash
|
||
docker-compose up -d
|
||
```
|
||
|
||
3. Проверьте логи:
|
||
```bash
|
||
docker-compose logs -f lichess-bot
|
||
```
|
||
|
||
### Локальная установка
|
||
|
||
1. Установите зависимости:
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
2. Скопируйте файл конфигурации:
|
||
```bash
|
||
cp .env.example .env
|
||
```
|
||
|
||
3. Запустите бота:
|
||
```bash
|
||
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` - Игроки Lichess
|
||
- `chat_active_gamers` - Активные игроки по чатам (не используется для глобального режима)
|
||
|
||
## Логирование
|
||
|
||
Бот ведет подробные логи всех операций. В Docker контейнере логи можно просмотреть командой:
|
||
|
||
```bash
|
||
docker-compose logs -f lichess-bot
|
||
```
|
||
|
||
## Мониторинг
|
||
|
||
Docker Compose включает health checks для мониторинга состояния сервисов.
|
||
|
||
## Поддержка
|
||
|
||
При возникновении проблем проверьте:
|
||
|
||
1. Запущен ли ваш Lichess API сервис на порту 8001
|
||
2. Правильность токена телеграм бота
|
||
3. Логи контейнера на наличие ошибок
|