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