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