diff --git a/NebulaAuth.sln b/NebulaAuth.sln index 8959eed..44b9672 100644 --- a/NebulaAuth.sln +++ b/NebulaAuth.sln @@ -24,6 +24,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "changelog", "changelog", "{ changelog\1.7.3.html = changelog\1.7.3.html changelog\1.7.4.html = changelog\1.7.4.html changelog\1.8.0.html = changelog\1.8.0.html + changelog\1.8.1.html = changelog\1.8.1.html EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SteamLibForked", "src\SteamLibForked\SteamLibForked.csproj", "{224F9DB0-3D20-A614-BA2A-12F22B13A2C6}" diff --git a/changelog/1.8.1.html b/changelog/1.8.1.html new file mode 100644 index 0000000..03a1b77 --- /dev/null +++ b/changelog/1.8.1.html @@ -0,0 +1,87 @@ + + + + + + Changelog + + + + +
+
+
Version 1.8.1
+
25.01.2026
+
+
    +
  • NEW: Added Mafile Export tool with templates, batch export and flexible field filtering.
  • +
  • IMPROVEMENT: Reworked auto-confirmation error handling logic (MAAC) — fewer false disables, smarter retries.
  • +
  • UPDATE: Added “Unattach Proxy” option to the account context menu.
  • +
  • LOCALIZATION: Added Chinese (Simplified) and French languages.
  • +
  • FIX: Fixed crashes related to duplicate mafiles, timers, search filtering and import logic.
  • +
  • + DETAILS: Full patch notes: + ENG | + RUS +
  • +
+
+
+
+ + \ No newline at end of file diff --git a/src/NebulaAuth/Model/MAAC/MAACRequestHandler.cs b/src/NebulaAuth/Model/MAAC/MAACRequestHandler.cs index 4ab9e9b..27ea060 100644 --- a/src/NebulaAuth/Model/MAAC/MAACRequestHandler.cs +++ b/src/NebulaAuth/Model/MAAC/MAACRequestHandler.cs @@ -148,6 +148,12 @@ public static class MAACRequestHandler return false; } + public static bool IsReady(Mafile maf) + { + if (maf.LinkedClient is {Status.StatusType: PortableMaClientStatusType.Ok}) return true; + return maf.LinkedClient is {Status.StatusType: PortableMaClientStatusType.Warning} + && maf.LastErrorWasAtLeast(Settings.Instance.MaacRetryInterval); + } private static string GetTimerPrefix(Mafile mafile) { @@ -161,6 +167,8 @@ public static class MAACRequestHandler private static string GetPortableMaClientStatus(string key) { - return LocManager.GetCodeBehindOrDefault(key, LOC_PATH, key); + return LocManager.GetCodeBehindOrDefault(key, LOC_PATH, "PortableMaClientStatus", key); } + + } \ No newline at end of file diff --git a/src/NebulaAuth/Model/MAAC/MultiAccountAutoConfirmer.cs b/src/NebulaAuth/Model/MAAC/MultiAccountAutoConfirmer.cs index d01be16..ce041d0 100644 --- a/src/NebulaAuth/Model/MAAC/MultiAccountAutoConfirmer.cs +++ b/src/NebulaAuth/Model/MAAC/MultiAccountAutoConfirmer.cs @@ -59,8 +59,7 @@ public static class MultiAccountAutoConfirmer private static async Task TimerConfirmInternal() { var clients = Lock.ReadLock(() => Clients.ToArray()); - var enabledClients = clients.Where(x => x.LinkedClient is {Status.StatusType: PortableMaClientStatusType.Ok}) - .ToArray(); + var enabledClients = GetReadyAccounts(); enabledClients = DistributeEvenly(enabledClients).ToArray(); var confirmed = 0; await Task.Run(async () => @@ -116,6 +115,21 @@ public static class MultiAccountAutoConfirmer } } + private static IEnumerable GetReadyAccounts() + { + var clients = Lock.ReadLock(() => Clients.ToArray()); + var res = new List(); + foreach (var maf in clients) + { + if(maf.LinkedClient == null) continue; + if (MAACRequestHandler.IsReady(maf)) + { + res.Add(maf); + } + } + return res; + + } public static bool TryAddToConfirm(Mafile mafile) { return Lock.WriteLock(() => diff --git a/src/NebulaAuth/Model/MAAC/PortableMaClient.cs b/src/NebulaAuth/Model/MAAC/PortableMaClient.cs index 1b8ec3b..6395256 100644 --- a/src/NebulaAuth/Model/MAAC/PortableMaClient.cs +++ b/src/NebulaAuth/Model/MAAC/PortableMaClient.cs @@ -44,7 +44,7 @@ public partial class PortableMaClient : ObservableObject, IDisposable ClientHandler = pair.Handler; UpdateCookies(mafile.SessionData); Mafile.PropertyChanged += Mafile_PropertyChanged; - SetStatus(PortableMaClientStatus.Error("123123")); + SetStatus(PortableMaClientStatus.Ok()); } private void Mafile_PropertyChanged(object? sender, PropertyChangedEventArgs e)