From bd28098db97d1bf86d7182301a4670ca5beb826b Mon Sep 17 00:00:00 2001 From: status102 <102887808+status102@users.noreply.github.com> Date: Wed, 9 Apr 2025 17:30:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=97=A5=E5=BF=97=E5=8C=85=E4=B8=80?= =?UTF-8?q?=E5=B9=B6=E6=89=93=E5=8C=85gui=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6=20(#12310)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: 日志包一并打包gui配置文件 (#12310) * perf: 复制调整 * chore: Auto update by pre-commit hooks [skip changelog] --------- Co-authored-by: BxFS <15606086+BxFS@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- resource/tasks.json | 4 +- src/MaaWpfGui/Configuration/ConfigFactory.cs | 3 +- src/MaaWpfGui/Helper/ConfigurationHelper.cs | 3 +- src/MaaWpfGui/Main/Bootstrapper.cs | 4 +- .../Settings/IssueReportUserControlModel.cs | 39 +++++++++---------- 5 files changed, 26 insertions(+), 27 deletions(-) diff --git a/resource/tasks.json b/resource/tasks.json index c0731f920e..c142f81d8f 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -3128,8 +3128,8 @@ "template": "MedicineConfirm.png", "reduceOtherTimes": [], "postDelay": 500, - "exceededNext": [ "CloseStonePage" ], - "next": [ "StoneConfirmWait", "StoneConfirm#next" ] + "exceededNext": ["CloseStonePage"], + "next": ["StoneConfirmWait", "StoneConfirm#next"] }, "NoStone": { "roi": [800, 250, 350, 250], diff --git a/src/MaaWpfGui/Configuration/ConfigFactory.cs b/src/MaaWpfGui/Configuration/ConfigFactory.cs index 145ee12410..bc815b2369 100644 --- a/src/MaaWpfGui/Configuration/ConfigFactory.cs +++ b/src/MaaWpfGui/Configuration/ConfigFactory.cs @@ -32,7 +32,8 @@ namespace MaaWpfGui.Configuration { public static class ConfigFactory { - private static readonly string _configurationFile = Path.Combine(Environment.CurrentDirectory, "config/gui.new.json"); + public const string ConfigFileName = "config/gui.new.json"; + private static readonly string _configurationFile = Path.Combine(Environment.CurrentDirectory, ConfigFileName); // TODO: write backup method. WIP: https://github.com/Cryolitia/MaaAssistantArknights/tree/config // ReSharper disable once UnusedMember.Local diff --git a/src/MaaWpfGui/Helper/ConfigurationHelper.cs b/src/MaaWpfGui/Helper/ConfigurationHelper.cs index 3f26bb370f..be901f1d61 100644 --- a/src/MaaWpfGui/Helper/ConfigurationHelper.cs +++ b/src/MaaWpfGui/Helper/ConfigurationHelper.cs @@ -25,7 +25,8 @@ namespace MaaWpfGui.Helper { public class ConfigurationHelper { - private static readonly string _configurationFile = Path.Combine(Environment.CurrentDirectory, "config/gui.json"); + public const string ConfigurationFile = "config/gui.json"; + private static readonly string _configurationFile = Path.Combine(Environment.CurrentDirectory, ConfigurationFile); private static readonly string _configurationBakFile = Path.Combine(Environment.CurrentDirectory, "config/gui.json.bak"); private static readonly string _configurationErrorFile = Path.Combine(Environment.CurrentDirectory, "config/gui.error.json"); private static ConcurrentDictionary> _kvsMap; diff --git a/src/MaaWpfGui/Main/Bootstrapper.cs b/src/MaaWpfGui/Main/Bootstrapper.cs index 10f1337e46..d04b0d3d06 100644 --- a/src/MaaWpfGui/Main/Bootstrapper.cs +++ b/src/MaaWpfGui/Main/Bootstrapper.cs @@ -55,6 +55,8 @@ namespace MaaWpfGui.Main private static Mutex _mutex; private static bool _hasMutex; + public const string LogFilename = "debug/gui.log"; + public const string LogBakFilename = "debug/gui.bak.log"; /// /// 初始化些啥自己加。 @@ -66,8 +68,6 @@ namespace MaaWpfGui.Main Directory.CreateDirectory("debug"); } - const string LogFilename = "debug/gui.log"; - const string LogBakFilename = "debug/gui.bak.log"; if (File.Exists(LogFilename) && new FileInfo(LogFilename).Length > 4 * 1024 * 1024) { if (File.Exists(LogBakFilename)) diff --git a/src/MaaWpfGui/ViewModels/UserControl/Settings/IssueReportUserControlModel.cs b/src/MaaWpfGui/ViewModels/UserControl/Settings/IssueReportUserControlModel.cs index 96eb0625b9..91eda00018 100644 --- a/src/MaaWpfGui/ViewModels/UserControl/Settings/IssueReportUserControlModel.cs +++ b/src/MaaWpfGui/ViewModels/UserControl/Settings/IssueReportUserControlModel.cs @@ -19,7 +19,9 @@ using System.IO.Compression; using System.Linq; using HandyControl.Controls; using HandyControl.Data; +using MaaWpfGui.Configuration; using MaaWpfGui.Helper; +using MaaWpfGui.Main; using Serilog; using Stylet; @@ -35,21 +37,21 @@ public class IssueReportUserControlModel : PropertyChangedBase Instance = new(); } - private static readonly string[] LogFileNames = ["gui.log", "gui.bak.log", "asst.log", "asst.bak.log"]; + private static readonly string[] PayloadFileNames = [Bootstrapper.LogFilename, Bootstrapper.LogBakFilename, "debug/asst.log", "debug/asst.bak.log", ConfigurationHelper.ConfigurationFile, ConfigFactory.ConfigFileName]; + private const string DebugDir = "debug"; public static IssueReportUserControlModel Instance { get; } public void OpenDebugFolder() { - string path = "debug"; try { - if (!Directory.Exists(path)) + if (!Directory.Exists(DebugDir)) { - Directory.CreateDirectory("debug"); + Directory.CreateDirectory(DebugDir); } - Process.Start("explorer.exe", path); + Process.Start("explorer.exe", DebugDir); } catch (Exception ex) { @@ -62,39 +64,34 @@ public class IssueReportUserControlModel : PropertyChangedBase { try { - string path = "debug"; - string zipPath = Path.Combine(path, "log.zip"); - string tempDir = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()); - - if (!Directory.Exists(path)) - { - Directory.CreateDirectory("debug"); - return; - } - + string zipPath = Path.Combine(DebugDir, $"report_{DateTimeOffset.Now:MM-dd_HH-mm-ss}.zip"); + string tempPath = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()); if (File.Exists(zipPath)) { File.Delete(zipPath); } - Directory.CreateDirectory(tempDir); - foreach (var file in Directory.EnumerateFiles(path, "*.log").Where(f => LogFileNames.Contains(Path.GetFileName(f)))) + Directory.CreateDirectory(tempPath); + foreach (var file in PayloadFileNames) { - string dest = Path.Combine(tempDir, Path.GetFileName(file)); - File.Copy(file, dest, overwrite: true); + if (File.Exists(file)) + { + string dest = Path.Combine(tempPath, Path.GetFileName(file)); + File.Copy(file, dest, overwrite: true); + } } using (FileStream zipToOpen = new FileStream(zipPath, FileMode.Create)) { using var archive = new ZipArchive(zipToOpen, ZipArchiveMode.Create); - foreach (var file in Directory.GetFiles(tempDir)) + foreach (var file in Directory.GetFiles(tempPath)) { string entryName = Path.GetFileName(file); archive.CreateEntryFromFile(file, entryName, CompressionLevel.Optimal); } } - Directory.Delete(tempDir, recursive: true); + Directory.Delete(tempPath, recursive: true); ShowGrowl(LocalizationHelper.GetString("GenerateSupportPayloadSuccessful")); OpenDebugFolder(); }