LichessStatTgWeb/LichessClientTG_bot/README.md

117 lines
4.6 KiB
Markdown
Raw Permalink Normal View History

# 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. Логи контейнера на наличие ошибок