From 86230bc3f1177e30e5f8770d10f0d496bd3239e7 Mon Sep 17 00:00:00 2001 From: JustArchi Date: Sat, 8 Dec 2018 22:21:44 +0100 Subject: [PATCH] Apply InventoryLimiterDelay to each request As opposed to user-basis --- ArchiSteamFarm/ArchiWebHandler.cs | 34 +++++++++++++++---------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/ArchiSteamFarm/ArchiWebHandler.cs b/ArchiSteamFarm/ArchiWebHandler.cs index 705d0bca3..597fe6f28 100644 --- a/ArchiSteamFarm/ArchiWebHandler.cs +++ b/ArchiSteamFarm/ArchiWebHandler.cs @@ -563,15 +563,15 @@ namespace ArchiSteamFarm { steamID = SteamID; } - HashSet result = new HashSet(); - string request = "/inventory/" + steamID + "/" + appID + "/" + contextID + "?count=" + MaxItemsInSingleInventoryRequest + "&l=english"; ulong startAssetID = 0; - await InventorySemaphore.WaitAsync().ConfigureAwait(false); + HashSet result = new HashSet(); - try { - while (true) { + while (true) { + await InventorySemaphore.WaitAsync().ConfigureAwait(false); + + try { Steam.InventoryResponse response = await UrlGetToJsonObjectWithSession(SteamCommunityURL, request + (startAssetID > 0 ? "&start_assetid=" + startAssetID : "")).ConfigureAwait(false); if (response == null) { @@ -646,17 +646,17 @@ namespace ArchiSteamFarm { } startAssetID = response.LastAssetID; - } - } finally { - if (Program.GlobalConfig.InventoryLimiterDelay == 0) { - InventorySemaphore.Release(); - } else { - Utilities.InBackground( - async () => { - await Task.Delay(Program.GlobalConfig.InventoryLimiterDelay * 1000).ConfigureAwait(false); - InventorySemaphore.Release(); - } - ); + } finally { + if (Program.GlobalConfig.InventoryLimiterDelay == 0) { + InventorySemaphore.Release(); + } else { + Utilities.InBackground( + async () => { + await Task.Delay(Program.GlobalConfig.InventoryLimiterDelay * 1000).ConfigureAwait(false); + InventorySemaphore.Release(); + } + ); + } } } } @@ -1181,7 +1181,7 @@ namespace ArchiSteamFarm { return null; } - // Same, returning OK EResult only if PurchaseResultDetail is NoDetail (no error occured) + // Same, returning OK EResult only if PurchaseResultDetail is NoDetail (no error occured) return ((responseConfirmRedeem.PurchaseResultDetail == EPurchaseResultDetail.NoDetail) && (responseConfirmRedeem.Result == EResult.OK) ? responseConfirmRedeem.Result : EResult.Fail, responseConfirmRedeem.PurchaseResultDetail); }