122 lines
2.7 KiB
Markdown
122 lines
2.7 KiB
Markdown
|
|
# Lichess Statistics API
|
|||
|
|
|
|||
|
|
REST API сервис для получения статистики игроков Lichess.org по играм и решению задач.
|
|||
|
|
|
|||
|
|
## Возможности
|
|||
|
|
|
|||
|
|
- Получение статистики за сегодняшний день
|
|||
|
|
- Получение статистики за вчерашний день
|
|||
|
|
- Получение статистики за последние 7 дней
|
|||
|
|
- Поддержка режимов игры: Bullet, Blitz, Rapid
|
|||
|
|
- Статистика по решению задач (пазлов)
|
|||
|
|
- Расчет изменения рейтинга
|
|||
|
|
- Подсчет побед, поражений и ничьих
|
|||
|
|
|
|||
|
|
## Запуск с Docker
|
|||
|
|
|
|||
|
|
### 1. Сборка и запуск контейнера
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# Сборка образа
|
|||
|
|
docker-compose build
|
|||
|
|
|
|||
|
|
# Запуск сервиса
|
|||
|
|
docker-compose up -d
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. Проверка работы
|
|||
|
|
|
|||
|
|
Сервис будет доступен по адресу: http://localhost:8000
|
|||
|
|
|
|||
|
|
- Документация API: http://localhost:8000/docs
|
|||
|
|
- Проверка здоровья: http://localhost:8000/health
|
|||
|
|
|
|||
|
|
## API Endpoints
|
|||
|
|
|
|||
|
|
### Получить статистику за сегодня
|
|||
|
|
```
|
|||
|
|
GET /stats/{username}/today
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Получить статистику за вчера
|
|||
|
|
```
|
|||
|
|
GET /stats/{username}/yesterday
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Получить статистику за неделю
|
|||
|
|
```
|
|||
|
|
GET /stats/{username}/week
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Примеры использования
|
|||
|
|
|
|||
|
|
### Статистика за сегодня
|
|||
|
|
```bash
|
|||
|
|
curl http://localhost:8000/stats/vrubelroman/today
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Статистика за вчера
|
|||
|
|
```bash
|
|||
|
|
curl http://localhost:8000/stats/vrubelroman/yesterday
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Статистика за неделю
|
|||
|
|
```bash
|
|||
|
|
curl http://localhost:8000/stats/vrubelroman/week
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Формат ответа
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"message": "Статистика за сегодняшний день",
|
|||
|
|
"data": {
|
|||
|
|
"username": "vrubelroman",
|
|||
|
|
"tasks": {
|
|||
|
|
"total": 28,
|
|||
|
|
"solved": 25,
|
|||
|
|
"unsolved": 3
|
|||
|
|
},
|
|||
|
|
"games": {
|
|||
|
|
"bullet": {
|
|||
|
|
"games_played": 7,
|
|||
|
|
"rating_change": 30,
|
|||
|
|
"final_rating": 2320,
|
|||
|
|
"wins": 5,
|
|||
|
|
"losses": 0,
|
|||
|
|
"draws": 0
|
|||
|
|
},
|
|||
|
|
"blitz": {
|
|||
|
|
"games_played": 5,
|
|||
|
|
"rating_change": 32,
|
|||
|
|
"final_rating": 2224,
|
|||
|
|
"wins": 5,
|
|||
|
|
"losses": 0,
|
|||
|
|
"draws": 0
|
|||
|
|
},
|
|||
|
|
"rapid": {
|
|||
|
|
"games_played": 2,
|
|||
|
|
"rating_change": -10,
|
|||
|
|
"final_rating": 2210,
|
|||
|
|
"wins": 1,
|
|||
|
|
"losses": 1,
|
|||
|
|
"draws": 0
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Остановка сервиса
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
docker-compose down
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Логи
|
|||
|
|
|
|||
|
|
Для просмотра логов:
|
|||
|
|
```bash
|
|||
|
|
docker-compose logs -f
|
|||
|
|
```
|