diff --git a/ArchiSteamFarm/Localization/Strings.Designer.cs b/ArchiSteamFarm/Localization/Strings.Designer.cs index 10df44f2a..7b0458259 100644 --- a/ArchiSteamFarm/Localization/Strings.Designer.cs +++ b/ArchiSteamFarm/Localization/Strings.Designer.cs @@ -708,6 +708,15 @@ namespace ArchiSteamFarm.Localization { } } + /// + /// Wyszukuje zlokalizowany ciąg podobny do ciągu Clearing Steam discovery queue #{0}.... + /// + internal static string ClearingDiscoveryQueue { + get { + return ResourceManager.GetString("ClearingDiscoveryQueue", resourceCulture); + } + } + /// /// Wyszukuje zlokalizowany ciąg podobny do ciągu Content: ///{0}. @@ -727,6 +736,15 @@ namespace ArchiSteamFarm.Localization { } } + /// + /// Wyszukuje zlokalizowany ciąg podobny do ciągu Done clearing Steam discovery queue #{0}.. + /// + internal static string DoneClearingDiscoveryQueue { + get { + return ResourceManager.GetString("DoneClearingDiscoveryQueue", resourceCulture); + } + } + /// /// Wyszukuje zlokalizowany ciąg podobny do ciągu Access denied!. /// diff --git a/ArchiSteamFarm/Localization/Strings.resx b/ArchiSteamFarm/Localization/Strings.resx index 6c1abdffe..bfa1fa614 100644 --- a/ArchiSteamFarm/Localization/Strings.resx +++ b/ArchiSteamFarm/Localization/Strings.resx @@ -695,4 +695,12 @@ StackTrace: Current memory usage: {0} MB. {0} will be replaced by number (in megabytes) of memory being used + + Clearing Steam discovery queue #{0}... + {0} will be replaced by queue number + + + Done clearing Steam discovery queue #{0}. + {0} will be replaced by queue number + \ No newline at end of file diff --git a/ArchiSteamFarm/SteamSaleEvent.cs b/ArchiSteamFarm/SteamSaleEvent.cs index 88fd96fff..53cafb576 100644 --- a/ArchiSteamFarm/SteamSaleEvent.cs +++ b/ArchiSteamFarm/SteamSaleEvent.cs @@ -26,11 +26,12 @@ using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; +using ArchiSteamFarm.Localization; using HtmlAgilityPack; namespace ArchiSteamFarm { internal sealed class SteamSaleEvent : IDisposable { - private const byte MaxSingleQueuesDaily = 3; + private const byte MaxSingleQueuesDaily = 3; // This is mainly a pre-caution for infinite queue clearing private readonly Bot Bot; private readonly Timer SteamDiscoveryQueueTimer; @@ -38,10 +39,6 @@ namespace ArchiSteamFarm { internal SteamSaleEvent(Bot bot) { Bot = bot ?? throw new ArgumentNullException(nameof(bot)); - if (!Debugging.IsDebugBuild) { - return; - } - SteamDiscoveryQueueTimer = new Timer( async e => await ExploreDiscoveryQueue().ConfigureAwait(false), null, @@ -61,19 +58,23 @@ namespace ArchiSteamFarm { for (byte i = 0; (i < MaxSingleQueuesDaily) && (await IsDiscoveryQueueAvailable().ConfigureAwait(false)).GetValueOrDefault(); i++) { HashSet queue = await Bot.ArchiWebHandler.GenerateNewDiscoveryQueue().ConfigureAwait(false); - if (queue == null) { + if ((queue == null) || (queue.Count == 0)) { break; } + Bot.ArchiLogger.LogGenericInfo(string.Format(Strings.ClearingDiscoveryQueue, i)); + // We could in theory do this in parallel, but who knows what would happen... foreach (uint queuedAppID in queue) { if (await Bot.ArchiWebHandler.ClearFromDiscoveryQueue(queuedAppID).ConfigureAwait(false)) { continue; } - i = MaxSingleQueuesDaily; - break; + Bot.ArchiLogger.LogGenericWarning(Strings.WarningFailed); + return; } + + Bot.ArchiLogger.LogGenericInfo(string.Format(Strings.DoneClearingDiscoveryQueue, i)); } } @@ -90,13 +91,14 @@ namespace ArchiSteamFarm { } string text = htmlNode.InnerText; - if (!string.IsNullOrEmpty(text)) { - // It'd make more sense to check against "Come back tomorrow", but it might not cover out-of-the-event queue - return text.StartsWith("You can get ", StringComparison.Ordinal); + if (string.IsNullOrEmpty(text)) { + Bot.ArchiLogger.LogNullError(nameof(text)); + return null; } - Bot.ArchiLogger.LogNullError(nameof(text)); - return null; + // It'd make more sense to check against "Come back tomorrow", but it might not cover out-of-the-event queue + bool result = text.StartsWith("You can get ", StringComparison.Ordinal); + return result; } } } \ No newline at end of file