SteamTokenDumperPlugin ru RU - IES-Rafael-Alberti/wiki-multi-language-example GitHub Wiki
SteamTokenDumperPlugin
это официальный плагин для ASF, доступный начиная с версии ASF V4.2.2.2, разработанный нами, который позволяет вам внести свой вклад в работу прокета SteamDB путём передачи токенов пакетов, токенов приложений и ключей хранилища к которым имеет доступ ваша учетная запись Steam. Подробную информацию о собираемых данных, и о том почему SteamDB нуждается в них вы можете найти на странице Token Dumper в SteamDB. Передаваемые данные не включают в себя никакой потенциально конфиденциальной информации, и не представляют риска для безопасности/приватности, как указано в описании выше.
ASF уже включает в себя плагин SteamTokenDumperPlugin
, однако сам плагин по умолчанию отключен. Вы можете включить плагин, установив параметр SteamTokenDumperPluginEnabled
в глобальной конфигурации ASF равным true
, в соответствии с форматом JSON:
{
"SteamTokenDumperPluginEnabled": true
}
При запуске ASF плагин сообщит что он был успешно включен через стандартный механизм журналирования ASF. Вы также можете включить плагин через наш cетевой генератор конфигураций.
После активации, плагин будет использовать ботов, запущенных в вашем ASF, для сбора информации в виде токенов пакетов, токенов приложений и ключей хранилища к которым ваши боты имеют доступ. Модуль сбора информации включает в себя пассивные и активные процедуры, которые должны минимизировать дополнительную нагрузку, вызванную сбором данных.
Для выполнения поставленных задач, в дополнение к процедурам сбора информации, описанным выше, также инициализируется процедура передачи информации, ответственная за определение того, какие именно данные следует передавать в SteamDB на периодическом основании. Эта процедура будет запускаться примерно через 1
после запуска ASF, а затем будет повторяться каждые 24
часа. Плагин будет делать всё возможное, чтобы минимизировать количество данных, которые необходимо передать, поэтому возможно что часть данных, собранных плагином, будет оценена как бесполезная к передаче, и потому проигнорирована (например, обновление приложения, которое не меняет токен доступа).
Плагин использует базу данных постоянного хранения, расположенную в файле config/SteamTokenDumper.cache
, она выполняет роль, аналогичную config/ASF.db
в ASF. Этот файл используется чтобы записывать собранную и переданную информацию, и минимизировать количество работы, которую необходимо выполнить в разных запусках ASF. Удаление этого файла приведёт к тому, что процесс запускается с самого начала, чего по возможности следует избегать.
ASF включает в запрос steamID
участника, который определяется как SteamOwnerID
, который вы установили в ASF, либо, если его нет, то как идентификатор Steam бота, у которого больше всего лицензий. Указанный участник может получить дополнительные привилегии от SteamDB за помощь в работе (как например, статус "donator" на сайте), но это остаётся полностью на усмотрение SteamDB.
В любом случае, администрация SteamDB заранее благодарит вас за вашу помощь. Переданные данные позволяют SteamDB работать, в частности, отслеживать информацию о пакетах, приложениях и хранилищах, что было бы невозможно без вашей помощи.
Начиная с ASF V5.1.0.0, наш плагин поддерживает расширенную конфигурацию, которая может оказаться полезной для людей, которые хотели бы настроить внутреннее устройство по своему усмотрению.
Расширенная конфигурация имеет следующую структуру, расположенную в ASF.json
:
{
"SteamTokenDumperPlugin": {
"Enabled": false,
"SecretAppIDs": [],
"SecretDepotIDs": [],
"SecretPackageIDs": [],
"SkipAutoGrantPackages": true
}
}
Все параметры описаны ниже:
Параметр типа bool
со значением по-умолчанию false
. This property acts the same as SteamTokenDumperPluginEnabled
root-level property explained above, and can be used instead, dedicated to people that would prefer to have entire plugin-related config in its own structure (so most likely those already using other advanced properties explained below).
Параметр типа ImmutableHashSet<uint>
с пустым значением по-умолчанию. Это свойство указывает appID
, которые плагин не разрешит, и, если они уже разрешены, не будет отправлять токен для. Это свойство может быть полезно для людей, имеющих доступ к потенциально конфиденциальной информации о неопубликованных элементах, особенно для разработчиков, издателей или участников закрытого бета-тестирования.
Параметр типа ImmutableHashSet<uint>
с пустым значением по-умолчанию. This property specifies depotIDs
that the plugin won't resolve, and if they're already resolved, won't submit the key for. Это свойство может быть полезно для людей, имеющих доступ к потенциально конфиденциальной информации о неопубликованных элементах, особенно для разработчиков, издателей или участников закрытого бета-тестирования.
Параметр типа ImmutableHashSet<uint>
с пустым значением по-умолчанию. This property specifies packageIDs
(also known as subIDs
) that the plugin won't resolve, and if they're already resolved, won't submit the token for. Это свойство может быть полезно для людей, имеющих доступ к потенциально конфиденциальной информации о неопубликованных элементах, особенно для разработчиков, издателей или участников закрытого бета-тестирования.
Параметр типа bool
со значением по-умолчанию true
. Это свойство действует очень похоже на SecretPackageIDs
и при включении будет вызывать пропуск пакетов с EPaymentMethod
из AutoGrant
во время процедуры разрешения, описанной ниже. Метод оплаты AutoGrant
используется Steamworks для автоматического предоставления пакетов в учетные записи разработчиков. Хотя это не так явно, как другие параметры Secret
, и поэтому ничего не гарантирует (поскольку у вас могут быть другие пакеты, кроме AutoGrant
, которые вы по-прежнему не хотите отправлять), этого должно быть достаточно для пропуска большинства, если не всех секретных пакетов. This option is enabled by default, as people that actually have access to AutoGrant
packages will almost never want to leak those to general public, and therefore using value of false
is very situational.
На корневом уровне каждая учетная запись Steam владеет набором пакетов (лицензий, подписок), которые классифицируются по их packageID
(также известный как subID
). Каждый пакет может содержать несколько приложений, классифицированных по их appID
. Каждое приложение может включать несколько хранилищ, классифицированных по их depotID
.
├── sub/124923
│ ├── app/292030
│ │ ├── depot/292031
│ │ ├── depot/378648
│ │ └── ...
│ ├── app/378649
│ └── ...
└── ...
Наш плагин включает две процедуры, которые учитывают пропущенные элементы - процедуру разрешения и процедуру отправки.
Процедура разрешения отвечает за разрешение дерева, которое вы видите выше. By blacklisting the packages/apps/depots in advance, you'll effectively cut the tree in the place of blacklisted branch/leaf without additional need of specifying the remaining parts of it. In our example above, if 124923
package was ignored, whether by SecretPackageIDs
or SkipAutoGrantPackages
, and it was the only package you own which linked to the 292030
appID, then appID 292030
wouldn't get resolved either, and by definition, if there were no other resolved apps which linked to the 292031
and 378648
depots, then they wouldn't get resolved either. Однако имейте в виду, что если плагин уже разрешил дерево, то фактически это остановит только обновление данного элемента (например, добавление новых приложений), это не заставит плагин «забыть» о существующих элементах, которые уже были разрешены (например, приложения, найденные в этом пакете до того, как вы решили его занести в черный список). If you've just enabled some skipping options, and would like to ensure that ASF doesn't traverse the already-resolved tree, you may consider one-time removing config/SteamTokenDumper.cache
file where the plugin keeps its cache.
Процедура отправки отвечает за отправку токенов пакетов, токенов приложений и ключей хранилища уже решенных элементов (с помощью процедуры разрешения выше). Здесь ваш черный список имеет немедленный эффект, так как даже если плагин уже разрешил информацию, процедура отправки фактически не отправит ее в SteamDB, если она у вас в черном списке, независимо от того, была она разрешена или нет. Однако имейте в виду, что мы больше не говорим о дереве на данный момент, процедура отправки не знает, исходит ли информация о приложении из того или иного пакета, поэтому она пропускает информацию только об определенных элементах, внесенных в черный список, независимо от отношения, в которых они находятся с другими.
For majority of the developers and publishers, it should be enough to enable SkipAutoGrantPackages
, potentially empowered with SecretPackageIDs
only, as it effectively cuts the tree at the beginning branch and guarantees that the apps and depots included further will not get submitted as long as there is no other package linking to the same app. Если вы хотите быть уверенным вдвойне, в дополнение к этому вы также можете использовать SecretAppIDs
, который пропустит разрешение приложения, даже если есть другие лицензии, которые вы не занесли в черный список, связанные с ним. Использование SecretDepotIDs
не требуется, если только у вас нет особой конкретной потребности (например, пропустить только конкретное хранилище при отправке информации о пакетах и приложениях) или если вы хотите добавить еще один уровень, будьте в безопасности втрое.