Обработчик запросов к стимкиту с запущенным клиентом доты.
Принимает запросы о слежении за игроком, а также выдаёт матчи, в которых игрок был обнаружен.
Сама логика клиента доты в отдельном проекте 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 минуты, так как задержка дота тв.