Skip to content

ar1ocker/Playtime-Service

Repository files navigation

Playtime-Service

Сервис который получает и хранит игровое время игроков в определенной игре

Сервис получает игровое время через вебхуки от Battemetrics (с проверкой HMAC) Сервис самостоятельно получает игровое время указанное в Steam через официальный API при запросе

API ручки:

http://your-site.ru/get-playtime/<str:path>/

http://your-site.ru/set-playtime/bm/<str:path>/

Где <path> это взятый из базы путь для которого установлен HMAC ключ

изображение изображение

HMAC проверяется на обоих API, разница лишь в том, что для Battlemetrics проверяется timestamp в HMAC, а для запроса get-playtime - нет https://learn.battlemetrics.com/article/47-webhooks#x-signature

При вычислении HMAC должен быть использован алгоритм SHA256, а сам HMAC должен быть вставлен как hex в заголовок X-SIGNATURE

Запускаем

  • Копируем и переименовываем configs/playtime/config-example.toml в configs/playtime/config.toml
  • Вводим свои значения везде куда нужно (секретный ключ для Django, пароль от Postgres, ключ для Steam)
  • Копируем и переименовываем configs/postgres/postgres-example.env в configs/postgres/postgres.env
  • Вводим пароль от Postgres, такой же как и до этого
  • docker compose up -d

Запросы

От Battlemetrics Webhook должен быть вот такого вида

{
  "steam_id": "{{player.steamID}}",
  "playtime": "{{player.game.timePlayed}}",
  "game_id": 393380
}

Ключ для HMAC вам также даст сам Battlemetrics при вводе Webhook

От скриптов запрос должен быть вот такого вида

{
  "steam_ids": ["7600000000000123", "7600000000000123", "7600000000000123"],
  "game_id": 393380,
  "is_need_update": false
}

is_need_update - опционален, время из Steam будет запрашиваться в двух случаях, когда is_need_update == True или когда Steam ID не найден

game_id - опционален если он установлен в "Подключения скриптов" или "Подключения Battlemetrics"

Разработка

Compose с автоматической перезагрузкой при изменениях в коде

sudo docker compose -f docker-compose-dev.yml up --watch

About

Сервис для хранения времени игроков из Steam и Battlemetrics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors