Skip to content

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

Notifications You must be signed in to change notification settings

Urantij/Dota2Dispenser

Repository files navigation

Обработчик запросов к стимкиту с запущенным клиентом доты.

Принимает запросы о слежении за игроком, а также выдаёт матчи, в которых игрок был обнаружен.

Сама логика клиента доты в отдельном проекте SteamKitDota2

Принцип работы

Приложение запускает стимкит, после чего начинает взаимодействовать с серверами доты.
Используя стим айди игроков, за которыми нужно следить, приложение делает запросы к серверам игры, чтобы узнавать состояние этих игроков - играют ли, в каких матчах, на каких героях.
Вся эта информация обновляется и хранится.

Апи

Точные названия апи точек, а также модели ответов, хранятся в отдельном проекте Dota2Dispenser.Shared

Для добавления игрока в систему нужно сделать post запрос
/accounts
В теле запроса должна быть модель Models/PostAccountModel.cs, и обязательный хедер id

id - произвольное число, которое клиент присваивает себе сам. Предполагается, что приложение работает только с доверенными клиентами, и попыток подменить свой айди на чужой не будет.

Для удаления аккаунта из системы delete запрос
/accounts
Указанный ранее id клиента должен быть в хедере авторизации, стимайди игрока в самом запросе в аргументе id

Для получения информации о матчах нужно сделать get запрос
/matches
Возможные аргументы
dmatchid - поиск по айди матча (айди в системе, а не айди, данный самой игрой)
matchid - поиск по айди матча (айди в самой доте, а не в системе)
steamid - поиск по стимайди игрока
after - поиск после указанной даты (время unix секунды)
limit - ограничение на количество отправляемых матчей, максимум 20

Конфигурация

Для работы приложения в настройки appsettings.json нужно добавить секцию с информацией об аккаунте стима, который будет использоваться стимкитом, а также ключ апи стима.

"Options": {
  "SteamUsername": "BotName",
  "SteamPassword": "Password",
  "ApiKey": "ApiKey"
}

Нюансы

Следить за игроком возможно, если он не ограничил видимость своего профиля стим. Используется информация из пакетов rich presence, которую можно увидеть, зайдя в профиль игрока в стиме (Играет в Dota 2)
Если игрок скрыл эту информацию, то он должен добавить аккаунт бота в друзья.
Бот автоматически принимает все запросы дружбы.

Если игрок находится в друзьях, новая информация становится доступной почти сразу. Иначе может быть задержка до минуты.
Почти вся информация о матче имеет задержку в 2 минуты, так как задержка дота тв.

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages