mirror of
https://github.com/JustArchiNET/ArchiSteamFarm.git
synced 2026-01-13 23:20:37 +00:00
Compare commits
37 Commits
6.3.1.6
...
renovate/w
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
13b1357510 | ||
|
|
12f6cffefd | ||
|
|
7818bf5a8e | ||
|
|
b86b515345 | ||
|
|
a773b06608 | ||
|
|
b272cff50d | ||
|
|
9f10570141 | ||
|
|
de3a402a5b | ||
|
|
809b9d7427 | ||
|
|
4c9b3c6962 | ||
|
|
897cccdce5 | ||
|
|
5fde8aa20c | ||
|
|
a837139b4a | ||
|
|
fde29cbae8 | ||
|
|
d6b2689a89 | ||
|
|
06a1c036b5 | ||
|
|
3444641a52 | ||
|
|
b45d78ced1 | ||
|
|
fd1a6aca0b | ||
|
|
9a3ea71f2d | ||
|
|
7b847ea80d | ||
|
|
c619828c55 | ||
|
|
4e74819240 | ||
|
|
bec4dbad84 | ||
|
|
7e9b5ee163 | ||
|
|
5c71752376 | ||
|
|
50e676a485 | ||
|
|
03504e959e | ||
|
|
6693432da5 | ||
|
|
e263093f25 | ||
|
|
6a29994904 | ||
|
|
250074356b | ||
|
|
52e89112ce | ||
|
|
379d3f04a9 | ||
|
|
d75028a1e9 | ||
|
|
10a7fe157b | ||
|
|
5563531170 |
2
ASF-ui
2
ASF-ui
Submodule ASF-ui updated: 8891c8b6d1...1a2588b77e
@@ -64,4 +64,20 @@
|
||||
<value>Per šį raundą iš viso suderinta {0} rinkinių.</value>
|
||||
<comment>{0} will be replaced by number of sets traded</comment>
|
||||
</data>
|
||||
<data name="ListingAnnouncing" xml:space="preserve">
|
||||
<value>Skelbiame apie {0} ({1}), kurio inventoriuje iš viso yra {2} prekių...</value>
|
||||
<comment>{0} will be replaced by steam ID (number), {1} will be replaced by user's nickname, {2} will be replaced with number of items in the inventory</comment>
|
||||
</data>
|
||||
<data name="MatchingFound" xml:space="preserve">
|
||||
<value>Surasta iš viso {0} daiktų su robotu {1} ({2}), siunčiamas mainų pasiūlymas...</value>
|
||||
<comment>{0} will be replaced by number of items matched, {1} will be replaced by steam ID (number), {2} will be replaced by user's nickname</comment>
|
||||
</data>
|
||||
<data name="TradeOfferFailed" xml:space="preserve">
|
||||
<value>Nepavyko išsiųsti mainų pasiūlymo robotui {0} ({1}), tęsiama...</value>
|
||||
<comment>{0} will be replaced by steam ID (number), {1} will be replaced by user's nickname'</comment>
|
||||
</data>
|
||||
<data name="ActivelyMatchingSomeConfirmationsFailed" xml:space="preserve">
|
||||
<value>Kai kurie patvirtinimai nepavyko, maždaug {0} iš {1} sandorių buvo sėkmingai išsiųsti.</value>
|
||||
<comment>{0} will be replaced by amount of the trade offers that succeeded (number), {1} will be replaced by amount of the trade offers that were supposed to be sent in total (number)</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -68,7 +68,6 @@
|
||||
<value>{0} в момента е деактивирана според вашата настройка. Ако искате да помогнете на SteamDB при подаването на данни, моля разгледайте нашата уикипедия.</value>
|
||||
<comment>{0} will be replaced by the name of the plugin (e.g. "SteamTokenDumperPlugin")</comment>
|
||||
</data>
|
||||
|
||||
<data name="FileCouldNotBeLoadedFreshInit" xml:space="preserve">
|
||||
<value>{0} не беше успешно заредена, вместо това ще бъде стартирана нова инстанция...</value>
|
||||
<comment>{0} will be replaced by the name of the file (e.g. "GlobalCache")</comment>
|
||||
@@ -104,7 +103,6 @@
|
||||
<value>Приключи събирането на {0} информация за играта или приложението.</value>
|
||||
<comment>{0} will be replaced by the number (count this batch) of app infos retrieved</comment>
|
||||
</data>
|
||||
|
||||
<data name="BotFinishedRetrievingTotalDepots" xml:space="preserve">
|
||||
<value>Приключи събирането на всички ключове за депа за общо {0} игри или проложения.</value>
|
||||
<comment>{0} will be replaced by the number (total count) of apps retrieved</comment>
|
||||
|
||||
@@ -68,26 +68,10 @@
|
||||
<value>{0} je trenutno onemogućen po vašoj konfiguraciji. Ako želite pomoći SteamDB u dostavljanju podataka, molimo pogledajte naš wiki.</value>
|
||||
<comment>{0} will be replaced by the name of the plugin (e.g. "SteamTokenDumperPlugin")</comment>
|
||||
</data>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<data name="BotRetrievingAppInfos" xml:space="preserve">
|
||||
<value>Preuzimanje informacija o {0} aplikaciji...</value>
|
||||
<comment>{0} will be replaced by the number (count this batch) of app infos being retrieved</comment>
|
||||
</data>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<data name="SubmissionSuccessfulNewApps" xml:space="preserve">
|
||||
<value>Nova aplikacija: {0}</value>
|
||||
<comment>{0} will be replaced by list of the apps (IDs, numbers), separated by a comma</comment>
|
||||
@@ -104,10 +88,4 @@
|
||||
<value>Verifikovani paketi: {0}</value>
|
||||
<comment>{0} will be replaced by list of the packages (IDs, numbers), separated by a comma</comment>
|
||||
</data>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</root>
|
||||
|
||||
@@ -68,7 +68,6 @@
|
||||
<value>A {0} jelenleg ki van kapcsolva a konfigurációid alapján. Ha szeretnéd segíteni a SteamDB-t adatok beküldésével, kérlek nézd meg a wikit.</value>
|
||||
<comment>{0} will be replaced by the name of the plugin (e.g. "SteamTokenDumperPlugin")</comment>
|
||||
</data>
|
||||
|
||||
<data name="FileCouldNotBeLoadedFreshInit" xml:space="preserve">
|
||||
<value>A(z) {0} nem tölthető be, új példány lesz inicializálva...</value>
|
||||
<comment>{0} will be replaced by the name of the file (e.g. "GlobalCache")</comment>
|
||||
@@ -92,7 +91,6 @@
|
||||
<value>Összesen {0} alkalmazás-hozzáférési token lekérése befejeződött.</value>
|
||||
<comment>{0} will be replaced by the number (total count) of app access tokens retrieved</comment>
|
||||
</data>
|
||||
|
||||
<data name="BotRetrievingAppInfos" xml:space="preserve">
|
||||
<value>{0} alkalmazás információinak lekérése...</value>
|
||||
<comment>{0} will be replaced by the number (count this batch) of app infos being retrieved</comment>
|
||||
@@ -101,8 +99,6 @@
|
||||
<value>{0} alkalmazás adatainak lekérése befejeződött.</value>
|
||||
<comment>{0} will be replaced by the number (count this batch) of app infos retrieved</comment>
|
||||
</data>
|
||||
|
||||
|
||||
<data name="SubmissionNoNewData" xml:space="preserve">
|
||||
<value>Nincs új beküldendő adat, minden naprakész.</value>
|
||||
</data>
|
||||
@@ -110,12 +106,10 @@
|
||||
<value>Nem sikerült elküldeni az adatokat, mert nincs olyan érvényes SteamID, amelyet közreműködőnek minősíthetnénk. Fontolja meg a(z) {0} tulajdon beállítását.</value>
|
||||
<comment>{0} will be replaced by the name of the config property (e.g. "SteamOwnerID") that the user is expected to set</comment>
|
||||
</data>
|
||||
|
||||
<data name="SubmissionFailedTooManyRequests" xml:space="preserve">
|
||||
<value>A beküldés meghiúsult, mert túl sok kérés érkezett. Körülbelül {0} múlva újra megpróbáljuk.</value>
|
||||
<comment>{0} will be replaced by translated TimeSpan string (such as "53 minutes")</comment>
|
||||
</data>
|
||||
|
||||
<data name="SubmissionSuccessfulNewApps" xml:space="preserve">
|
||||
<value>Új appok: {0}</value>
|
||||
<comment>{0} will be replaced by list of the apps (IDs, numbers), separated by a comma</comment>
|
||||
@@ -132,10 +126,4 @@
|
||||
<value>Ellenőrzött csomagok: {0}</value>
|
||||
<comment>{0} will be replaced by list of the packages (IDs, numbers), separated by a comma</comment>
|
||||
</data>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</root>
|
||||
|
||||
@@ -68,14 +68,6 @@
|
||||
<value>설정에 따라 {0} (이)가 현재 비활성화 되어 있습니다. SteamDB에 데이터 제공을 원하신다면, wiki를 참고하세요.</value>
|
||||
<comment>{0} will be replaced by the name of the plugin (e.g. "SteamTokenDumperPlugin")</comment>
|
||||
</data>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<data name="BotRetrievingAppInfos" xml:space="preserve">
|
||||
<value>{0} 개의 앱 정보를 불러오고 있습니다...</value>
|
||||
<comment>{0} will be replaced by the number (count this batch) of app infos being retrieved</comment>
|
||||
@@ -84,12 +76,9 @@
|
||||
<value>{0} 개의 앱 정보를 불러왔습니다.</value>
|
||||
<comment>{0} will be replaced by the number (count this batch) of app infos retrieved</comment>
|
||||
</data>
|
||||
|
||||
|
||||
<data name="SubmissionNoNewData" xml:space="preserve">
|
||||
<value>새로 등록할 데이터가 없습니다.</value>
|
||||
</data>
|
||||
|
||||
<data name="SubmissionInProgress" xml:space="preserve">
|
||||
<value>서버에 새로 등록하는 앱/패키지/depot은 다음과 같습니다: {0}/{1}/{2}</value>
|
||||
<comment>{0} will be replaced by the number of app access tokens being submitted, {1} will be replaced by the number of package access tokens being submitted, {2} will be replaced by the number of depot keys being submitted</comment>
|
||||
@@ -118,12 +107,7 @@
|
||||
<value>인증된 패키지: {0}</value>
|
||||
<comment>{0} will be replaced by list of the packages (IDs, numbers), separated by a comma</comment>
|
||||
</data>
|
||||
|
||||
|
||||
|
||||
<data name="LoadingGlobalCache" xml:space="preserve">
|
||||
<value>STD 글로벌 캐시 로드 중...</value>
|
||||
</data>
|
||||
|
||||
|
||||
</root>
|
||||
|
||||
@@ -64,8 +64,14 @@
|
||||
<value>{0} buvo išjungtas, dėl trūkstamos dalies</value>
|
||||
<comment>{0} will be replaced by the name of the plugin (e.g. "SteamTokenDumperPlugin")</comment>
|
||||
</data>
|
||||
|
||||
|
||||
<data name="PluginDisabledInConfig" xml:space="preserve">
|
||||
<value>Pagal jūsų konfigūraciją {0} šiuo metu yra išjungtas. Jei norite padėti SteamDB pateikti duomenis, peržiūrėkite mūsų wiki.</value>
|
||||
<comment>{0} will be replaced by the name of the plugin (e.g. "SteamTokenDumperPlugin")</comment>
|
||||
</data>
|
||||
<data name="PluginInitializedAndEnabled" xml:space="preserve">
|
||||
<value>{0} sėkmingai inicializuotas, iš anksto dėkojame už pagalbą. Pirmasis pateikimas bus atliktas maždaug po {1}.</value>
|
||||
<comment>{0} will be replaced by the name of the plugin (e.g. "SteamTokenDumperPlugin"), {1} will be replaced by translated TimeSpan string (such as "53 minutes")</comment>
|
||||
</data>
|
||||
<data name="FileCouldNotBeLoadedFreshInit" xml:space="preserve">
|
||||
<value>{0} nepavyko užkrauti, bus įrašyta nauja instancija...</value>
|
||||
<comment>{0} will be replaced by the name of the file (e.g. "GlobalCache")</comment>
|
||||
@@ -89,7 +95,10 @@
|
||||
<value>Iš viso baigta gauti {0} programos prieigos raktų.</value>
|
||||
<comment>{0} will be replaced by the number (total count) of app access tokens retrieved</comment>
|
||||
</data>
|
||||
|
||||
<data name="BotRetrievingTotalDepots" xml:space="preserve">
|
||||
<value>Gaunami visų {0} programų saugyklos raktai...</value>
|
||||
<comment>{0} will be replaced by the number (total count) of apps being retrieved</comment>
|
||||
</data>
|
||||
<data name="BotRetrievingAppInfos" xml:space="preserve">
|
||||
<value>Gaunama {0} programos informacijos...</value>
|
||||
<comment>{0} will be replaced by the number (count this batch) of app infos being retrieved</comment>
|
||||
@@ -98,18 +107,33 @@
|
||||
<value>Baigta gauti {0} programos informacijos.</value>
|
||||
<comment>{0} will be replaced by the number (count this batch) of app infos retrieved</comment>
|
||||
</data>
|
||||
|
||||
|
||||
<data name="BotFinishedRetrievingDepotKeys" xml:space="preserve">
|
||||
<value>Užbaigta {0} iš {1} saugyklos rakto užklausų.</value>
|
||||
<comment>{0} will be replaced by the number (count this batch) of depot key requests that were successfully answered, {1} will be replaced by the number (count this batch) of depot key requests that were supposed to be sent</comment>
|
||||
</data>
|
||||
<data name="BotFinishedRetrievingTotalDepots" xml:space="preserve">
|
||||
<value>Baigta gauti visų {0} programų saugyklos raktų paieška.</value>
|
||||
<comment>{0} will be replaced by the number (total count) of apps retrieved</comment>
|
||||
</data>
|
||||
<data name="SubmissionNoNewData" xml:space="preserve">
|
||||
<value>Nėra jokių naujų duomenų, kuriuos būtų galima pateikti, viskas jau atnaujinta.</value>
|
||||
</data>
|
||||
|
||||
|
||||
<data name="SubmissionNoContributorSet" xml:space="preserve">
|
||||
<value>Nepavyko pateikti duomenų, nes nėra nustatyto galiojančio SteamID, kurį galėtume klasifikuoti kaip bendraautorį. Apsvarstykite galimybę nustatyti {0} savybę.</value>
|
||||
<comment>{0} will be replaced by the name of the config property (e.g. "SteamOwnerID") that the user is expected to set</comment>
|
||||
</data>
|
||||
<data name="SubmissionInProgress" xml:space="preserve">
|
||||
<value>Pateikiamas bendras užregistruotų programų / paketų / saugyklų skaičius: {0}/{1}/{2}...</value>
|
||||
<comment>{0} will be replaced by the number of app access tokens being submitted, {1} will be replaced by the number of package access tokens being submitted, {2} will be replaced by the number of depot keys being submitted</comment>
|
||||
</data>
|
||||
<data name="SubmissionFailedTooManyRequests" xml:space="preserve">
|
||||
<value>Pateiktis nepavyko dėl per daug išsiustų prašymų, pradėsime iš naujo už maždaug {0} nuo dabar.</value>
|
||||
<comment>{0} will be replaced by translated TimeSpan string (such as "53 minutes")</comment>
|
||||
</data>
|
||||
|
||||
<data name="SubmissionSuccessful" xml:space="preserve">
|
||||
<value>Duomenys sėkmingai pateikti. Serveris užregistravo iš viso naujų programų / paketų / saugyklų: {0} ({1} patvirtinta) / {2} ({3} patvirtinta) / {4} ({5} patvirtinta).</value>
|
||||
<comment>{0} will be replaced by the number of new app access tokens that the server has registered, {1} will be replaced by the number of verified app access tokens that the server has registered, {2} will be replaced by the number of new package access tokens that the server has registered, {3} will be replaced by the number of verified package access tokens that the server has registered, {4} will be replaced by the number of new depot keys that the server has registered, {5} will be replaced by the number of verified depot keys that the server has registered</comment>
|
||||
</data>
|
||||
<data name="SubmissionSuccessfulNewApps" xml:space="preserve">
|
||||
<value>Naujos programos: {0}</value>
|
||||
<comment>{0} will be replaced by list of the apps (IDs, numbers), separated by a comma</comment>
|
||||
@@ -126,8 +150,14 @@
|
||||
<value>Patvirtinti paketai: {0}</value>
|
||||
<comment>{0} will be replaced by list of the packages (IDs, numbers), separated by a comma</comment>
|
||||
</data>
|
||||
|
||||
|
||||
<data name="SubmissionSuccessfulNewDepots" xml:space="preserve">
|
||||
<value>Naujos programos: {0}</value>
|
||||
<comment>{0} will be replaced by list of the depots (IDs, numbers), separated by a comma</comment>
|
||||
</data>
|
||||
<data name="SubmissionSuccessfulVerifiedDepots" xml:space="preserve">
|
||||
<value>Patvirtintos programos: {0}</value>
|
||||
<comment>{0} will be replaced by list of the depots (IDs, numbers), separated by a comma</comment>
|
||||
</data>
|
||||
<data name="PluginSecretListInitialized" xml:space="preserve">
|
||||
<value>{0} inicijuota, įskiepis neišspręs nė vieno iš šių dalykų: {1}.</value>
|
||||
<comment>{0} will be replaced by the name of the config property (e.g. "SecretPackageIDs"), {1} will be replaced by list of the objects (IDs, numbers), separated by a comma</comment>
|
||||
@@ -138,5 +168,7 @@
|
||||
<data name="ValidatingGlobalCacheIntegrity" xml:space="preserve">
|
||||
<value>Tvirtinamas STD global talpyklos vientisumas...</value>
|
||||
</data>
|
||||
|
||||
<data name="GlobalCacheIntegrityValidationFailed" xml:space="preserve">
|
||||
<value>Nepavyko patikrinti STD visuotinės talpyklos vientisumo. Tai rodo galimą failo / atminties sugadinimą, vietoj to bus inicijuota nauja instancija.</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -60,25 +60,6 @@
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
|
||||
</value>
|
||||
</resheader>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<data name="SubmissionSuccessfulNewApps" xml:space="preserve">
|
||||
<value>Nova aplikacija: {0}</value>
|
||||
<comment>{0} will be replaced by list of the apps (IDs, numbers), separated by a comma</comment>
|
||||
@@ -87,12 +68,4 @@
|
||||
<value>Verifikovana aplikacija: {0}</value>
|
||||
<comment>{0} will be replaced by list of the apps (IDs, numbers), separated by a comma</comment>
|
||||
</data>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</root>
|
||||
|
||||
@@ -60,33 +60,4 @@
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
|
||||
</value>
|
||||
</resheader>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</root>
|
||||
|
||||
@@ -116,8 +116,8 @@ public static class JsonUtilities {
|
||||
}
|
||||
|
||||
[UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2026:RequiresUnreferencedCode", Justification = "We don't care about trimmed assemblies, as we need it to work only with the known (used) ones")]
|
||||
private static JsonSerializerOptions CreateDefaultJsonSerializerOptions(bool writeIndented = false) =>
|
||||
new(JsonSerializerDefaults.Strict) {
|
||||
private static JsonSerializerOptions CreateDefaultJsonSerializerOptions(bool writeIndented = false) {
|
||||
JsonSerializerOptions result = new(JsonSerializerDefaults.Strict) {
|
||||
AllowTrailingCommas = true,
|
||||
Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping,
|
||||
IndentCharacter = '\t',
|
||||
@@ -129,6 +129,11 @@ public static class JsonUtilities {
|
||||
WriteIndented = writeIndented
|
||||
};
|
||||
|
||||
result.MakeReadOnly();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
[UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2070", Justification = "We don't care about trimmed methods, it's not like we can make it work differently anyway")]
|
||||
[UnconditionalSuppressMessage("AssemblyLoadTrimming", "IL2075", Justification = "We don't care about trimmed properties, it's not like we can make it work differently anyway")]
|
||||
private static MethodInfo? GetShouldSerializeMethod([SuppressMessage("ReSharper", "SuggestBaseTypeForParameter")] Type parent, JsonPropertyInfo property) {
|
||||
|
||||
@@ -280,6 +280,7 @@ internal static class ArchiKestrel {
|
||||
"/swagger", static options => {
|
||||
options.DefaultFonts = false;
|
||||
options.OpenApiRoutePattern = $"/swagger/{SharedInfo.ASF}/swagger.json";
|
||||
options.Telemetry = false;
|
||||
options.Theme = ScalarTheme.Kepler;
|
||||
options.Title = $"{SharedInfo.AssemblyName} API";
|
||||
}
|
||||
@@ -455,7 +456,7 @@ internal static class ArchiKestrel {
|
||||
}
|
||||
|
||||
// Set up custom config to be used
|
||||
builder.WebHost.UseConfiguration(new ConfigurationBuilder().SetBasePath(absoluteConfigDirectory).AddJsonFile(SharedInfo.IPCConfigFile, false, true).Build());
|
||||
builder.WebHost.UseConfiguration(new ConfigurationBuilder().SetBasePath(absoluteConfigDirectory).AddJsonFile(SharedInfo.IPCConfigFile, false, Program.ConfigWatch).Build());
|
||||
}
|
||||
|
||||
builder.WebHost.ConfigureKestrel(options => {
|
||||
@@ -533,15 +534,19 @@ internal static class ArchiKestrel {
|
||||
// Init history logger for /Api/Log usage
|
||||
Logging.InitHistoryLogger();
|
||||
|
||||
WebApplication webApplication = await CreateWebApplication().ConfigureAwait(false);
|
||||
WebApplication? webApplication = null;
|
||||
|
||||
try {
|
||||
// Start the server
|
||||
webApplication = await CreateWebApplication().ConfigureAwait(false);
|
||||
|
||||
await webApplication.StartAsync().ConfigureAwait(false);
|
||||
} catch (Exception e) {
|
||||
ASF.ArchiLogger.LogGenericException(e);
|
||||
|
||||
await webApplication.DisposeAsync().ConfigureAwait(false);
|
||||
if (webApplication != null) {
|
||||
await webApplication.DisposeAsync().ConfigureAwait(false);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text.Json;
|
||||
@@ -48,7 +49,7 @@ public sealed class BotController : ArchiController {
|
||||
[HttpPost("{botNames:required}/AddLicense")]
|
||||
[ProducesResponseType<GenericResponse<IReadOnlyDictionary<string, BotAddLicenseResponse>>>((int) HttpStatusCode.OK)]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.BadRequest)]
|
||||
public async Task<ActionResult<GenericResponse>> AddLicensePost(string botNames, [FromBody] BotAddLicenseRequest request) {
|
||||
public async Task<ActionResult<GenericResponse>> AddLicensePost([Description(WebUtilities.BotNamesParameterDescription)] string botNames, [FromBody] BotAddLicenseRequest request) {
|
||||
ArgumentException.ThrowIfNullOrEmpty(botNames);
|
||||
ArgumentNullException.ThrowIfNull(request);
|
||||
|
||||
@@ -77,7 +78,7 @@ public sealed class BotController : ArchiController {
|
||||
[HttpDelete("{botNames:required}")]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.OK)]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.BadRequest)]
|
||||
public async Task<ActionResult<GenericResponse>> BotDelete(string botNames) {
|
||||
public async Task<ActionResult<GenericResponse>> BotDelete([Description(WebUtilities.BotNamesParameterDescription)] string botNames) {
|
||||
ArgumentException.ThrowIfNullOrEmpty(botNames);
|
||||
|
||||
HashSet<Bot>? bots = Bot.GetBots(botNames);
|
||||
@@ -95,7 +96,7 @@ public sealed class BotController : ArchiController {
|
||||
[HttpGet("{botNames:required}")]
|
||||
[ProducesResponseType<GenericResponse<IReadOnlyDictionary<string, Bot>>>((int) HttpStatusCode.OK)]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.BadRequest)]
|
||||
public ActionResult<GenericResponse> BotGet(string botNames) {
|
||||
public ActionResult<GenericResponse> BotGet([Description(WebUtilities.BotNamesParameterDescription)] string botNames) {
|
||||
ArgumentException.ThrowIfNullOrEmpty(botNames);
|
||||
|
||||
HashSet<Bot>? bots = Bot.GetBots(botNames);
|
||||
@@ -111,7 +112,7 @@ public sealed class BotController : ArchiController {
|
||||
[HttpPost("{botNames:required}")]
|
||||
[ProducesResponseType<GenericResponse<IReadOnlyDictionary<string, bool>>>((int) HttpStatusCode.OK)]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.BadRequest)]
|
||||
public async Task<ActionResult<GenericResponse>> BotPost(string botNames, [FromBody] BotRequest request) {
|
||||
public async Task<ActionResult<GenericResponse>> BotPost([Description(WebUtilities.BotNamesParameterDescription)] string botNames, [FromBody] BotRequest request) {
|
||||
ArgumentException.ThrowIfNullOrEmpty(botNames);
|
||||
ArgumentNullException.ThrowIfNull(request);
|
||||
|
||||
@@ -185,7 +186,7 @@ public sealed class BotController : ArchiController {
|
||||
[HttpDelete("{botNames:required}/GamesToRedeemInBackground")]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.OK)]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.BadRequest)]
|
||||
public async Task<ActionResult<GenericResponse>> GamesToRedeemInBackgroundDelete(string botNames) {
|
||||
public async Task<ActionResult<GenericResponse>> GamesToRedeemInBackgroundDelete([Description(WebUtilities.BotNamesParameterDescription)] string botNames) {
|
||||
ArgumentException.ThrowIfNullOrEmpty(botNames);
|
||||
|
||||
HashSet<Bot>? bots = Bot.GetBots(botNames);
|
||||
@@ -203,7 +204,7 @@ public sealed class BotController : ArchiController {
|
||||
[HttpGet("{botNames:required}/GamesToRedeemInBackground")]
|
||||
[ProducesResponseType<GenericResponse<IReadOnlyDictionary<string, GamesToRedeemInBackgroundResponse>>>((int) HttpStatusCode.OK)]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.BadRequest)]
|
||||
public async Task<ActionResult<GenericResponse>> GamesToRedeemInBackgroundGet(string botNames) {
|
||||
public async Task<ActionResult<GenericResponse>> GamesToRedeemInBackgroundGet([Description(WebUtilities.BotNamesParameterDescription)] string botNames) {
|
||||
ArgumentException.ThrowIfNullOrEmpty(botNames);
|
||||
|
||||
HashSet<Bot>? bots = Bot.GetBots(botNames);
|
||||
@@ -228,7 +229,7 @@ public sealed class BotController : ArchiController {
|
||||
[HttpPost("{botNames:required}/GamesToRedeemInBackground")]
|
||||
[ProducesResponseType<GenericResponse<IReadOnlyDictionary<string, OrderedDictionary<string, string>>>>((int) HttpStatusCode.OK)]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.BadRequest)]
|
||||
public async Task<ActionResult<GenericResponse>> GamesToRedeemInBackgroundPost(string botNames, [FromBody] BotGamesToRedeemInBackgroundRequest request) {
|
||||
public async Task<ActionResult<GenericResponse>> GamesToRedeemInBackgroundPost([Description(WebUtilities.BotNamesParameterDescription)] string botNames, [FromBody] BotGamesToRedeemInBackgroundRequest request) {
|
||||
ArgumentException.ThrowIfNullOrEmpty(botNames);
|
||||
ArgumentNullException.ThrowIfNull(request);
|
||||
|
||||
@@ -263,7 +264,7 @@ public sealed class BotController : ArchiController {
|
||||
[HttpPost("{botNames:required}/Input")]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.OK)]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.BadRequest)]
|
||||
public async Task<ActionResult<GenericResponse>> InputPost(string botNames, [FromBody] BotInputRequest request) {
|
||||
public async Task<ActionResult<GenericResponse>> InputPost([Description(WebUtilities.BotNamesParameterDescription)] string botNames, [FromBody] BotInputRequest request) {
|
||||
ArgumentException.ThrowIfNullOrEmpty(botNames);
|
||||
ArgumentNullException.ThrowIfNull(request);
|
||||
|
||||
@@ -286,7 +287,7 @@ public sealed class BotController : ArchiController {
|
||||
[HttpGet("{botNames:required}/Inventory/{appID}/{contextID}")]
|
||||
[ProducesResponseType<GenericResponse<IReadOnlyDictionary<string, BotInventoryResponse>>>((int) HttpStatusCode.OK)]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.BadRequest)]
|
||||
public async Task<ActionResult<GenericResponse>> InventoryGet(string botNames, uint appID, ulong contextID, [FromQuery] string? language = null) {
|
||||
public async Task<ActionResult<GenericResponse>> InventoryGet([Description(WebUtilities.BotNamesParameterDescription)] string botNames, uint appID, ulong contextID, [FromQuery] string? language = null) {
|
||||
ArgumentException.ThrowIfNullOrEmpty(botNames);
|
||||
|
||||
if (appID == 0) {
|
||||
@@ -337,7 +338,7 @@ public sealed class BotController : ArchiController {
|
||||
[HttpGet("{botNames:required}/Inventory")]
|
||||
[ProducesResponseType<GenericResponse<IReadOnlyDictionary<string, ImmutableDictionary<uint, InventoryAppData>>>>((int) HttpStatusCode.OK)]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.BadRequest)]
|
||||
public async Task<ActionResult<GenericResponse>> InventoryInfoGet(string botNames) {
|
||||
public async Task<ActionResult<GenericResponse>> InventoryInfoGet([Description(WebUtilities.BotNamesParameterDescription)] string botNames) {
|
||||
ArgumentException.ThrowIfNullOrEmpty(botNames);
|
||||
|
||||
HashSet<Bot>? bots = Bot.GetBots(botNames);
|
||||
@@ -361,7 +362,7 @@ public sealed class BotController : ArchiController {
|
||||
[HttpPost("{botNames:required}/Pause")]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.OK)]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.BadRequest)]
|
||||
public async Task<ActionResult<GenericResponse>> PausePost(string botNames, [FromBody] BotPauseRequest request) {
|
||||
public async Task<ActionResult<GenericResponse>> PausePost([Description(WebUtilities.BotNamesParameterDescription)] string botNames, [FromBody] BotPauseRequest request) {
|
||||
ArgumentException.ThrowIfNullOrEmpty(botNames);
|
||||
ArgumentNullException.ThrowIfNull(request);
|
||||
|
||||
@@ -380,7 +381,7 @@ public sealed class BotController : ArchiController {
|
||||
[HttpPost("{botNames:required}/RedeemPoints/{definitionID:required}")]
|
||||
[ProducesResponseType<GenericResponse<IReadOnlyDictionary<string, EResult>>>((int) HttpStatusCode.OK)]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.BadRequest)]
|
||||
public async Task<ActionResult<GenericResponse>> RedeemPointsPost(string botNames, uint definitionID, [FromQuery] bool forced = false) {
|
||||
public async Task<ActionResult<GenericResponse>> RedeemPointsPost([Description(WebUtilities.BotNamesParameterDescription)] string botNames, uint definitionID, [FromQuery] bool forced = false) {
|
||||
ArgumentException.ThrowIfNullOrEmpty(botNames);
|
||||
ArgumentOutOfRangeException.ThrowIfZero(definitionID);
|
||||
|
||||
@@ -406,7 +407,7 @@ public sealed class BotController : ArchiController {
|
||||
[HttpPost("{botNames:required}/Redeem")]
|
||||
[ProducesResponseType<GenericResponse<IReadOnlyDictionary<string, IReadOnlyDictionary<string, CStore_RegisterCDKey_Response>>>>((int) HttpStatusCode.OK)]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.BadRequest)]
|
||||
public async Task<ActionResult<GenericResponse>> RedeemPost(string botNames, [FromBody] BotRedeemRequest request) {
|
||||
public async Task<ActionResult<GenericResponse>> RedeemPost([Description(WebUtilities.BotNamesParameterDescription)] string botNames, [FromBody] BotRedeemRequest request) {
|
||||
ArgumentException.ThrowIfNullOrEmpty(botNames);
|
||||
ArgumentNullException.ThrowIfNull(request);
|
||||
|
||||
@@ -442,7 +443,7 @@ public sealed class BotController : ArchiController {
|
||||
[HttpPost("{botNames:required}/RemoveLicense")]
|
||||
[ProducesResponseType<GenericResponse<IReadOnlyDictionary<string, BotRemoveLicenseResponse>>>((int) HttpStatusCode.OK)]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.BadRequest)]
|
||||
public async Task<ActionResult<GenericResponse>> RemoveLicensePost(string botNames, [FromBody] BotRemoveLicenseRequest request) {
|
||||
public async Task<ActionResult<GenericResponse>> RemoveLicensePost([Description(WebUtilities.BotNamesParameterDescription)] string botNames, [FromBody] BotRemoveLicenseRequest request) {
|
||||
ArgumentException.ThrowIfNullOrEmpty(botNames);
|
||||
ArgumentNullException.ThrowIfNull(request);
|
||||
|
||||
@@ -471,7 +472,7 @@ public sealed class BotController : ArchiController {
|
||||
[HttpPost("{botName:required}/Rename")]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.OK)]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.BadRequest)]
|
||||
public async Task<ActionResult<GenericResponse>> RenamePost(string botName, [FromBody] BotRenameRequest request) {
|
||||
public async Task<ActionResult<GenericResponse>> RenamePost([Description(WebUtilities.BotNamesParameterDescription)] string botName, [FromBody] BotRenameRequest request) {
|
||||
ArgumentException.ThrowIfNullOrEmpty(botName);
|
||||
ArgumentNullException.ThrowIfNull(request);
|
||||
|
||||
@@ -496,7 +497,7 @@ public sealed class BotController : ArchiController {
|
||||
[HttpPost("{botNames:required}/Resume")]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.OK)]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.BadRequest)]
|
||||
public async Task<ActionResult<GenericResponse>> ResumePost(string botNames) {
|
||||
public async Task<ActionResult<GenericResponse>> ResumePost([Description(WebUtilities.BotNamesParameterDescription)] string botNames) {
|
||||
ArgumentException.ThrowIfNullOrEmpty(botNames);
|
||||
|
||||
HashSet<Bot>? bots = Bot.GetBots(botNames);
|
||||
@@ -514,7 +515,7 @@ public sealed class BotController : ArchiController {
|
||||
[HttpPost("{botNames:required}/Start")]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.OK)]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.BadRequest)]
|
||||
public async Task<ActionResult<GenericResponse>> StartPost(string botNames) {
|
||||
public async Task<ActionResult<GenericResponse>> StartPost([Description(WebUtilities.BotNamesParameterDescription)] string botNames) {
|
||||
ArgumentException.ThrowIfNullOrEmpty(botNames);
|
||||
|
||||
HashSet<Bot>? bots = Bot.GetBots(botNames);
|
||||
@@ -532,7 +533,7 @@ public sealed class BotController : ArchiController {
|
||||
[HttpPost("{botNames:required}/Stop")]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.OK)]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.BadRequest)]
|
||||
public async Task<ActionResult<GenericResponse>> StopPost(string botNames) {
|
||||
public async Task<ActionResult<GenericResponse>> StopPost([Description(WebUtilities.BotNamesParameterDescription)] string botNames) {
|
||||
ArgumentException.ThrowIfNullOrEmpty(botNames);
|
||||
|
||||
HashSet<Bot>? bots = Bot.GetBots(botNames);
|
||||
|
||||
@@ -87,6 +87,8 @@ public sealed class NLogController : ArchiController {
|
||||
|
||||
[EndpointDescription("This API endpoint requires a websocket connection")]
|
||||
[EndpointSummary("Fetches ASF log in realtime")]
|
||||
[ProducesResponseType((int) HttpStatusCode.SwitchingProtocols)]
|
||||
[ProducesResponseType((int) HttpStatusCode.OK)]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.BadRequest)]
|
||||
public async Task<ActionResult> Get() {
|
||||
if (HttpContext == null) {
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Threading.Tasks;
|
||||
@@ -44,7 +45,7 @@ public sealed class TwoFactorAuthenticationController : ArchiController {
|
||||
[HttpGet("Confirmations")]
|
||||
[ProducesResponseType<GenericResponse<IReadOnlyDictionary<string, GenericResponse<IReadOnlyCollection<Confirmation>>>>>((int) HttpStatusCode.OK)]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.BadRequest)]
|
||||
public async Task<ActionResult<GenericResponse>> ConfirmationsGet(string botNames) {
|
||||
public async Task<ActionResult<GenericResponse>> ConfirmationsGet([Description(WebUtilities.BotNamesParameterDescription)] string botNames) {
|
||||
ArgumentException.ThrowIfNullOrEmpty(botNames);
|
||||
|
||||
HashSet<Bot>? bots = Bot.GetBots(botNames);
|
||||
@@ -69,7 +70,7 @@ public sealed class TwoFactorAuthenticationController : ArchiController {
|
||||
[HttpPost("Confirmations")]
|
||||
[ProducesResponseType<GenericResponse<IReadOnlyDictionary<string, GenericResponse<IReadOnlyCollection<Confirmation>>>>>((int) HttpStatusCode.OK)]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.BadRequest)]
|
||||
public async Task<ActionResult<GenericResponse>> ConfirmationsPost(string botNames, [FromBody] TwoFactorAuthenticationConfirmationsRequest request) {
|
||||
public async Task<ActionResult<GenericResponse>> ConfirmationsPost([Description(WebUtilities.BotNamesParameterDescription)] string botNames, [FromBody] TwoFactorAuthenticationConfirmationsRequest request) {
|
||||
ArgumentException.ThrowIfNullOrEmpty(botNames);
|
||||
ArgumentNullException.ThrowIfNull(request);
|
||||
|
||||
@@ -99,7 +100,7 @@ public sealed class TwoFactorAuthenticationController : ArchiController {
|
||||
[HttpDelete]
|
||||
[ProducesResponseType<GenericResponse<IReadOnlyDictionary<string, GenericResponse<string>>>>((int) HttpStatusCode.OK)]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.BadRequest)]
|
||||
public async Task<ActionResult<GenericResponse>> Delete(string botNames) {
|
||||
public async Task<ActionResult<GenericResponse>> Delete([Description(WebUtilities.BotNamesParameterDescription)] string botNames) {
|
||||
ArgumentException.ThrowIfNullOrEmpty(botNames);
|
||||
|
||||
HashSet<Bot>? bots = Bot.GetBots(botNames);
|
||||
@@ -124,7 +125,7 @@ public sealed class TwoFactorAuthenticationController : ArchiController {
|
||||
[HttpPost]
|
||||
[ProducesResponseType<GenericResponse<IReadOnlyDictionary<string, GenericResponse>>>((int) HttpStatusCode.OK)]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.BadRequest)]
|
||||
public async Task<ActionResult<GenericResponse>> Post(string botNames, [FromBody] MobileAuthenticator authenticator) {
|
||||
public async Task<ActionResult<GenericResponse>> Post([Description(WebUtilities.BotNamesParameterDescription)] string botNames, [FromBody] MobileAuthenticator authenticator) {
|
||||
ArgumentException.ThrowIfNullOrEmpty(botNames);
|
||||
ArgumentNullException.ThrowIfNull(authenticator);
|
||||
|
||||
@@ -150,7 +151,7 @@ public sealed class TwoFactorAuthenticationController : ArchiController {
|
||||
[HttpGet("Token")]
|
||||
[ProducesResponseType<GenericResponse<IReadOnlyDictionary<string, GenericResponse<string>>>>((int) HttpStatusCode.OK)]
|
||||
[ProducesResponseType<GenericResponse>((int) HttpStatusCode.BadRequest)]
|
||||
public async Task<ActionResult<GenericResponse>> TokenGet(string botNames) {
|
||||
public async Task<ActionResult<GenericResponse>> TokenGet([Description(WebUtilities.BotNamesParameterDescription)] string botNames) {
|
||||
ArgumentException.ThrowIfNullOrEmpty(botNames);
|
||||
|
||||
HashSet<Bot>? bots = Bot.GetBots(botNames);
|
||||
|
||||
@@ -85,6 +85,14 @@ internal sealed class DocumentTransformer : IOpenApiDocumentTransformer {
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
StatusCodes.Status200OK.ToString(CultureInfo.InvariantCulture),
|
||||
|
||||
new OpenApiResponse {
|
||||
Description = nameof(HttpStatusCode.OK)
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
StatusCodes.Status400BadRequest.ToString(CultureInfo.InvariantCulture),
|
||||
|
||||
|
||||
@@ -28,6 +28,8 @@ using System.Linq;
|
||||
namespace ArchiSteamFarm.IPC;
|
||||
|
||||
internal static class WebUtilities {
|
||||
internal const string BotNamesParameterDescription = "Plural argument accepting one or many bots, acts the same as [Bots] parameter in the commands - https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Commands#bots-argument";
|
||||
|
||||
internal static string? GetUnifiedName(this Type type) {
|
||||
ArgumentNullException.ThrowIfNull(type);
|
||||
|
||||
|
||||
@@ -803,7 +803,7 @@ Tiempo de actividad del proceso: {1}</value>
|
||||
<value>Declaraste --system-required, aunque tu sistema operativo no tiene las dependencias para que esa característica funcione. Considera instalar dbus, aunque también puedes ignorar esta advertencia si no requieres inhibición para trabajar correctamente.</value>
|
||||
</data>
|
||||
<data name="WarningBotDatabaseComponentDecryptionFailed" xml:space="preserve">
|
||||
<value>El descifrado del componente de base de datos {0} ha fallado. Esto puede estar bien si acabas de cambiar la {1}de tu bot, ya no deberías observar esta advertencia en la próxima ejecución entonces. De lo contrario, debería investigar y averiguar la razón exacta del fracaso.</value>
|
||||
<value>El descifrado del componente de la base de datos {0} ha fallado. Esto puede ser correcto si acabas de cambiar la {1} de tu bot, ya no deberías ver esta advertencia en la próxima ejecución. De lo contrario, deberías investigar y averiguar la razón exacta de la falla.</value>
|
||||
<comment>{0} will be replaced by bot database component's name (string), {1} will be replaced by bot config component's name (string).</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -87,6 +87,10 @@ StackTrace:
|
||||
{2}</value>
|
||||
<comment>{0} will be replaced by function name, {1} will be replaced by exception message, {2} will be replaced by entire stack trace. Please note that this string should include newlines for formatting.</comment>
|
||||
</data>
|
||||
<data name="ErrorExitingWithNonZeroErrorCode" xml:space="preserve">
|
||||
<value>Išjungiama su {0} klaidos kodu!</value>
|
||||
<comment>{0} will be replaced by error code (number)</comment>
|
||||
</data>
|
||||
<data name="ErrorFailingRequest" xml:space="preserve">
|
||||
<value>Užklausa nutrūksta: {0}</value>
|
||||
<comment>{0} will be replaced by URL of the request</comment>
|
||||
@@ -580,6 +584,10 @@ Proceso veikimo laikas: {1}</value>
|
||||
<value>Botas neturi {0} lygio.</value>
|
||||
<comment>{0} will be replaced by bot's level</comment>
|
||||
</data>
|
||||
<data name="BotInventory" xml:space="preserve">
|
||||
<value>{0}/{1} ({2}/{3}): {4} daiktai</value>
|
||||
<comment>{0} will be replaced by appID (number), {1} will be replaced by contextID (number), {2} will be replaced by app's name (string), {3} will be replaced by name of the context (string), {4} will be replaced by number of assets in the specified inventory (number).</comment>
|
||||
</data>
|
||||
<data name="ActivelyMatchingItems" xml:space="preserve">
|
||||
<value>Derinami Steam item'ai, #{0} raundas...</value>
|
||||
<comment>{0} will be replaced by round number</comment>
|
||||
@@ -679,6 +687,10 @@ Proceso veikimo laikas: {1}</value>
|
||||
<value>Jūsų šifravimo raktas yra per trumpas. Rekomenduojame naudoti raktą, kuris yra bent {0} baitų (simbolių) ilgio.</value>
|
||||
<comment>{0} will be replaced by the number of bytes (characters) recommended</comment>
|
||||
</data>
|
||||
<data name="WarningDefaultCryptKeyUsedForHashing" xml:space="preserve">
|
||||
<value>Jūs naudojate {0} nustatymą is {1} ypatybės, tačiau nenurodėte tinkintos --cryptkey savybės. Turėtumėte pateikti tinkintą --cryptkey savybę padidintai apsaugai.</value>
|
||||
<comment>{0} will be replaced by the name of a particular setting (e.g. "SCrypt"), {1} will be replaced by the name of the property (e.g. "IPCPassword")</comment>
|
||||
</data>
|
||||
<data name="WarningDefaultCryptKeyUsedForEncryption" xml:space="preserve">
|
||||
<value>Jūs naudojate {0} nustatymą is {1} ypatybės, tačiau nenurodėte tinkintos --cryptkey savybės. Tai prieštarauja apsaugai, kadangi ASF bus priversta naudoti savo (žinomą) raktą. Reiktų nurodyti tinkintą --cryptkey savybę, kad šio gautumėte šio nustatymo naudą.</value>
|
||||
<comment>{0} will be replaced by the name of a particular setting (e.g. "AES"), {1} will be replaced by the name of the property (e.g. "SteamPassword")</comment>
|
||||
@@ -698,6 +710,9 @@ Proceso veikimo laikas: {1}</value>
|
||||
<data name="ChecksumMissing" xml:space="preserve">
|
||||
<value>Nuotolinis serveris nežino apie išleidimą, į kurį bandote atsinaujinti. Ši situacija galima, jeigu išleidimas buvo neseniai paskelbtas - neleidžiama atnaujinti iš karto dėl papildomos apsaugos.</value>
|
||||
</data>
|
||||
<data name="ChecksumTimeout" xml:space="preserve">
|
||||
<value>Nepavyko gauti atsisiųsto dvejetainio failo kontrolinės sumos – dėl papildomos saugumo priemonės šiuo metu atsisakoma tęsti atnaujinimo procedūrą.</value>
|
||||
</data>
|
||||
<data name="ChecksumWrong" xml:space="preserve">
|
||||
<value>Nuotolinis serveris atsakė su nesutampančia kontroline suma. Tai gali būti dėl sugadinto atsisiuntimo arba MITM atakos. Atsisakoma tęsti atnaujinimo procesą!</value>
|
||||
</data>
|
||||
@@ -716,4 +731,80 @@ Proceso veikimo laikas: {1}</value>
|
||||
<value>Jūs bandote naudoti mokamą funkciją {0}, tačiau jūs neturite tinkamo LicenseID nustatyto globalioje konfigūracijoje. Prašome patikrinti savo konfigūraciją, kadangi funkcija neveiks be papildomų detalių.</value>
|
||||
<comment>{0} will be replaced by feature name (e.g. MatchActively)</comment>
|
||||
</data>
|
||||
<data name="WarningRegionRestrictedPackage" xml:space="preserve">
|
||||
<value>ASF negali paleisti programėlės {0}, nes jai taikomi su regionu susiję apribojimai {1} šalyje, kurie galioja iki {2}.</value>
|
||||
<comment>{0} will be replaced by app ID (number), {1} will be replaced by short country code (string, such as "PL"), {2} will be replaced by human-readable date (string).</comment>
|
||||
</data>
|
||||
<data name="WarningUnsupportedOfficialPlugins" xml:space="preserve">
|
||||
<value>Bandote paleisti oficialų {0} įskiepį, kuris neatitinka ASF versijos: {1} (tikėtasi {2}). Tai rodo, kad darote kažką labai negerai. Jei tikrai žinote, ką darote, pataisykite nustatymus arba pateikite argumentą --ignore-unsupported-environment.</value>
|
||||
<comment>{0} will be replaced by plugin name, {1} will be replaced by plugin's version number, {2} will be replaced by ASF's version number.</comment>
|
||||
</data>
|
||||
<data name="ErrorTooManyCrashes" xml:space="preserve">
|
||||
<value>Jūsų ASF pastaruoju metu per daug kartų užstrigo, todėl proceso inicijavimas buvo išjungtas. Arba ištirkite, pataisykite nustatymus, tada pašalinkite ASF.crash failą iš konfigūracijos katalogo, arba pateikite argumentą --ignore-unsupported-environment, jei tikrai žinote, ką darote.</value>
|
||||
</data>
|
||||
<data name="IdlingGameNotPossiblePrivate" xml:space="preserve">
|
||||
<value>Žaidimo {0} ({1}) farminimas yra išjungtas, nes šis žaidimas šiuo metu pažymėtas kaip privatus. Jei ketinate iš ASF farminti šiame žaidime, apsvarstykite galimybę pakeisti jo privatumo nustatymus.</value>
|
||||
<comment>{0} will be replaced by game's ID (number), {1} will be replaced by game's name</comment>
|
||||
</data>
|
||||
<data name="WarningSkipping" xml:space="preserve">
|
||||
<value>Praleidžiama: {0}...</value>
|
||||
<comment>{0} will be replaced by text value (string) of entry being skipped.</comment>
|
||||
</data>
|
||||
<data name="PluginUpdatesChecking" xml:space="preserve">
|
||||
<value>Ieškomi įskiepių atnaujinimai...</value>
|
||||
</data>
|
||||
<data name="PluginUpdateChecking" xml:space="preserve">
|
||||
<value>Ieškomas atnaujinimas {0} įskiepiui...</value>
|
||||
<comment>{0} will be replaced by plugin name (string).</comment>
|
||||
</data>
|
||||
<data name="PluginUpdateNotFound" xml:space="preserve">
|
||||
<value>Atnaujino įskiepiui {0} nėra: {1} ≥ {2}.</value>
|
||||
<comment>{0} will be replaced by plugin name (string), {1} will be replaced by current plugin's version, {2} will be replaced by remote plugin's version.</comment>
|
||||
</data>
|
||||
<data name="PluginUpdateNewVersionAvailable" xml:space="preserve">
|
||||
<value>Yra nauja {0} įskiepio versija! Apsvarstykite atsinaujinti!</value>
|
||||
<comment>{0} will be replaced by plugin name (string).</comment>
|
||||
</data>
|
||||
<data name="PluginUpdateFound" xml:space="preserve">
|
||||
<value>Galimas {0} įskiepio atnaujinimas iš {1} versijos į {2}...</value>
|
||||
<comment>{0} will be replaced by plugin name (string), {1} will be replaced by current plugin's version, {2} will be replaced by remote plugin's version.</comment>
|
||||
</data>
|
||||
<data name="PluginUpdateNoAssetFound" xml:space="preserve">
|
||||
<value>Nėra išteklių, skirtų {0} įskiepio atnaujinimui iš {1} versijos į {2}, tai paprastai reiškia, kad atnaujinimas bus pasiekiamas vėliau.</value>
|
||||
<comment>{0} will be replaced by plugin name (string), {1} will be replaced by current plugin's version, {2} will be replaced by remote plugin's version.</comment>
|
||||
</data>
|
||||
<data name="PluginUpdateConflictingAssetsFound" xml:space="preserve">
|
||||
<value>Nepavyko nustatyti jokio ištekliaus {0} įskiepio atnaujinimui iš {1} versijos į {2}. Taip gali nutikti, jei leidimas dar nebaigtas – jei tai kartojasi, turėtumėte apie tai pranešti įskiepio kūrėjui.</value>
|
||||
<comment>{0} will be replaced by plugin name (string), {1} will be replaced by current plugin's version, {2} will be replaced by remote plugin's version.</comment>
|
||||
</data>
|
||||
<data name="PluginUpdateInProgress" xml:space="preserve">
|
||||
<value>Atnaujinamas {0} įskiepis...</value>
|
||||
<comment>{0} will be replaced by plugin name (string).</comment>
|
||||
</data>
|
||||
<data name="PluginUpdateFinished" xml:space="preserve">
|
||||
<value>Įskiepio {0} atnaujinimas sėkmingas, pakeitimai bus įkelti kitą kartą paleidus ASF.</value>
|
||||
<comment>{0} will be replaced by plugin name (string).</comment>
|
||||
</data>
|
||||
<data name="PluginUpdateEnabled" xml:space="preserve">
|
||||
<value>{0}/{1} įskiepis užregistruotas ir įjungti automatiniai atnaujinimai.</value>
|
||||
<comment>{0} will be replaced by plugin name (string), {1} will be replaced by plugin assembly name (string).</comment>
|
||||
</data>
|
||||
<data name="PluginUpdateDisabled" xml:space="preserve">
|
||||
<value>{0} ({1}) įskiepio automatiniai atnaujinimai išjungti, nors palaiko šią funkciją.</value>
|
||||
<comment>{0} will be replaced by plugin name (string), {1} will be replaced by plugin assembly name (string).</comment>
|
||||
</data>
|
||||
<data name="CustomPluginUpdatesEnabled" xml:space="preserve">
|
||||
<value>Tinkinti įskiepiai buvo užregistruoti automatiniams atnaujinimams. ASF komanda primena, kad dėl savo pačių saugumo turėtumėte įjungti automatinius atnaujinimus tik iš patikimų šalių. Jei neketinote to daryti, galite išjungti įskiepius atnaujinimus ASF globalioje konfigūracijoje.</value>
|
||||
</data>
|
||||
<data name="Input" xml:space="preserve">
|
||||
<value>Įvestis: {0}</value>
|
||||
<comment>{0} will be replaced by text input from the user.</comment>
|
||||
</data>
|
||||
<data name="WarningNoSystemRequiredLinuxDependencies" xml:space="preserve">
|
||||
<value>Nurodėte --system-required, nors jūsų operacinėje sistemoje trūksta būtinų dependencies, kad ši funkcija veiktų. Galite įdiegti „dbus“, nors galite drąsiai ignoruoti šį įspėjimą, jei jums nereikia slopinimo, kad jis tinkamai veiktų.</value>
|
||||
</data>
|
||||
<data name="WarningBotDatabaseComponentDecryptionFailed" xml:space="preserve">
|
||||
<value>Duomenų bazės komponento {0} iššifravimas nepavyko. Tai gali būti gerai, jei ką tik pakeitėte savo roboto {1}, kito paleidimo metu šio įspėjimo nebeturėtumėte matyti. Priešingu atveju turėtumėte ištirti ir išsiaiškinti tikslią nesėkmės priežastį.</value>
|
||||
<comment>{0} will be replaced by bot database component's name (string), {1} will be replaced by bot config component's name (string).</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -807,4 +807,8 @@
|
||||
<data name="WarningNoSystemRequiredLinuxDependencies" xml:space="preserve">
|
||||
<value>Вы объявили --system-required, хотя ваша ОС не имеет необходимых зависимостей для работы этой функции. Рассмотрим установку dbus, хотя вы также можете безопасно проигнорировать это предупреждение, если вам не требуется запрещение для нормальной работы.</value>
|
||||
</data>
|
||||
<data name="WarningBotDatabaseComponentDecryptionFailed" xml:space="preserve">
|
||||
<value>Не удалось расшифровать {0} компонент базы данных. Это может быть нормой, если вы только что изменили {1} своего бота, и при следующем запуске это предупреждение больше не должно появиться. В ином случае вы должны выяснить точную причину сбоя.</value>
|
||||
<comment>{0} will be replaced by bot database component's name (string), {1} will be replaced by bot config component's name (string).</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -800,4 +800,11 @@
|
||||
<value>輸入:{0}</value>
|
||||
<comment>{0} will be replaced by text input from the user.</comment>
|
||||
</data>
|
||||
<data name="WarningNoSystemRequiredLinuxDependencies" xml:space="preserve">
|
||||
<value>您宣告了 --system-required,但您的作業系統缺少該功能所需的相依套件。請考慮安裝 dbus。如果您不需要此功能,則可以直接忽略這個警告。</value>
|
||||
</data>
|
||||
<data name="WarningBotDatabaseComponentDecryptionFailed" xml:space="preserve">
|
||||
<value>無法解密資料庫 {0}。若您剛剛更改了 Bot 的 {1},可能是正常現象,在下次執行時就不會再看到這則警告。否則您應檢查並找出失敗的確切原因。</value>
|
||||
<comment>{0} will be replaced by bot database component's name (string), {1} will be replaced by bot config component's name (string).</comment>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -1399,11 +1399,20 @@ public sealed class Commands {
|
||||
HashSet<uint> appIDs = [];
|
||||
|
||||
foreach (string target in targets) {
|
||||
if (!uint.TryParse(target, out uint appID) || (appID == 0)) {
|
||||
return FormatBotResponse(Strings.FormatErrorParsingObject(nameof(appID)));
|
||||
}
|
||||
switch (target.ToUpperInvariant()) {
|
||||
case "ALL":
|
||||
appIDs.UnionWith(Bot.BotDatabase.FarmingBlacklistAppIDs);
|
||||
|
||||
appIDs.Add(appID);
|
||||
break;
|
||||
default:
|
||||
if (!uint.TryParse(target, out uint appID) || (appID == 0)) {
|
||||
return FormatBotResponse(Strings.FormatErrorParsingObject(nameof(appID)));
|
||||
}
|
||||
|
||||
appIDs.Add(appID);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!Bot.BotDatabase.FarmingBlacklistAppIDs.RemoveRange(appIDs)) {
|
||||
@@ -1556,11 +1565,20 @@ public sealed class Commands {
|
||||
HashSet<uint> appIDs = [];
|
||||
|
||||
foreach (string target in targets) {
|
||||
if (!uint.TryParse(target, out uint appID) || (appID == 0)) {
|
||||
return FormatBotResponse(Strings.FormatErrorParsingObject(nameof(appID)));
|
||||
}
|
||||
switch (target.ToUpperInvariant()) {
|
||||
case "ALL":
|
||||
appIDs.UnionWith(Bot.BotDatabase.FarmingPriorityQueueAppIDs);
|
||||
|
||||
appIDs.Add(appID);
|
||||
break;
|
||||
default:
|
||||
if (!uint.TryParse(target, out uint appID) || (appID == 0)) {
|
||||
return FormatBotResponse(Strings.FormatErrorParsingObject(nameof(appID)));
|
||||
}
|
||||
|
||||
appIDs.Add(appID);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!Bot.BotDatabase.FarmingPriorityQueueAppIDs.RemoveRange(appIDs)) {
|
||||
@@ -1975,11 +1993,20 @@ public sealed class Commands {
|
||||
HashSet<uint> appIDs = [];
|
||||
|
||||
foreach (string target in targets) {
|
||||
if (!uint.TryParse(target, out uint appID) || (appID == 0)) {
|
||||
return FormatBotResponse(Strings.FormatErrorParsingObject(nameof(appID)));
|
||||
}
|
||||
switch (target.ToUpperInvariant()) {
|
||||
case "ALL":
|
||||
appIDs.UnionWith(Bot.BotDatabase.MatchActivelyBlacklistAppIDs);
|
||||
|
||||
appIDs.Add(appID);
|
||||
break;
|
||||
default:
|
||||
if (!uint.TryParse(target, out uint appID) || (appID == 0)) {
|
||||
return FormatBotResponse(Strings.FormatErrorParsingObject(nameof(appID)));
|
||||
}
|
||||
|
||||
appIDs.Add(appID);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return FormatBotResponse(Bot.BotDatabase.MatchActivelyBlacklistAppIDs.RemoveRange(appIDs) ? Strings.Done : Strings.NothingFound);
|
||||
@@ -3416,11 +3443,20 @@ public sealed class Commands {
|
||||
HashSet<ulong> targetIDs = [];
|
||||
|
||||
foreach (string target in targets) {
|
||||
if (!ulong.TryParse(target, out ulong targetID) || (targetID == 0) || !new SteamID(targetID).IsIndividualAccount) {
|
||||
return FormatBotResponse(Strings.FormatErrorParsingObject(nameof(targetID)));
|
||||
}
|
||||
switch (target.ToUpperInvariant()) {
|
||||
case "ALL":
|
||||
targetIDs.UnionWith(Bot.BotDatabase.TradingBlacklistSteamIDs);
|
||||
|
||||
targetIDs.Add(targetID);
|
||||
break;
|
||||
default:
|
||||
if (!ulong.TryParse(target, out ulong targetID) || (targetID == 0) || !new SteamID(targetID).IsIndividualAccount) {
|
||||
return FormatBotResponse(Strings.FormatErrorParsingObject(nameof(targetID)));
|
||||
}
|
||||
|
||||
targetIDs.Add(targetID);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return FormatBotResponse(Bot.BotDatabase.TradingBlacklistSteamIDs.RemoveRange(targetIDs) ? Strings.Done : Strings.NothingFound);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<Version>6.3.1.6</Version>
|
||||
<Version>6.3.2.2</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
|
||||
@@ -16,11 +16,11 @@
|
||||
<PackageVersion Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.14.0" />
|
||||
<PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="1.14.0" />
|
||||
<PackageVersion Include="OpenTelemetry.Instrumentation.Runtime" Version="1.14.0" />
|
||||
<PackageVersion Include="Scalar.AspNetCore" Version="2.11.10" />
|
||||
<PackageVersion Include="Scalar.AspNetCore" Version="2.12.6" />
|
||||
<PackageVersion Include="SteamKit2" Version="3.3.1" />
|
||||
<PackageVersion Include="System.Composition" Version="10.0.1" />
|
||||
<PackageVersion Include="System.Composition.AttributedModel" Version="10.0.1" />
|
||||
<PackageVersion Include="System.Security.Cryptography.ProtectedData" Version="10.0.1" />
|
||||
<PackageVersion Include="Tmds.DBus.Protocol" Version="0.22.0" />
|
||||
<PackageVersion Include="Tmds.DBus.Protocol" Version="0.23.0" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
||||
2
wiki
2
wiki
Submodule wiki updated: 27df146074...45eef57326
Reference in New Issue
Block a user