From 300e99a9ae9e4eab20f36fb1e8d1a8b9fa0e1697 Mon Sep 17 00:00:00 2001 From: DismissedLight <1686188646@qq.com> Date: Sat, 2 Sep 2023 15:22:14 +0800 Subject: [PATCH] add options to disable metadata initialization --- .../Snap.Hutao/Core/Setting/SettingKeys.cs | 5 +++++ .../Service/Metadata/MetadataService.cs | 6 ++++++ .../View/Page/AnnouncementPage.xaml | 4 ++-- .../Snap.Hutao/View/Page/TestPage.xaml | 9 +++++++++ .../Snap.Hutao/ViewModel/TestViewModel.cs | 19 +++++++++++++++++++ .../Web/Hutao/HutaoAsAService/Announcement.cs | 2 +- 6 files changed, 42 insertions(+), 3 deletions(-) diff --git a/src/Snap.Hutao/Snap.Hutao/Core/Setting/SettingKeys.cs b/src/Snap.Hutao/Snap.Hutao/Core/Setting/SettingKeys.cs index 8dde602e..6a15dfb3 100644 --- a/src/Snap.Hutao/Snap.Hutao/Core/Setting/SettingKeys.cs +++ b/src/Snap.Hutao/Snap.Hutao/Core/Setting/SettingKeys.cs @@ -53,4 +53,9 @@ internal static class SettingKeys /// 排除的系统公告 /// public const string ExcludedAnnouncementIds = "ExcludedAnnouncementIds"; + + /// + /// 禁用元数据更新检查 + /// + public const string SuppressMetadataInitialization = "SuppressMetadataInitialization"; } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Metadata/MetadataService.cs b/src/Snap.Hutao/Snap.Hutao/Service/Metadata/MetadataService.cs index 01d9b47e..7abf2eb1 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Metadata/MetadataService.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Metadata/MetadataService.cs @@ -7,6 +7,7 @@ using Snap.Hutao.Core.DependencyInjection.Annotation.HttpClient; using Snap.Hutao.Core.Diagnostics; using Snap.Hutao.Core.ExceptionService; using Snap.Hutao.Core.IO.Hashing; +using Snap.Hutao.Core.Setting; using Snap.Hutao.Service.Notification; using System.IO; using System.Net; @@ -61,6 +62,11 @@ internal sealed partial class MetadataService : IMetadataService, IMetadataServi private async ValueTask TryUpdateMetadataAsync(CancellationToken token) { + if (LocalSetting.Get(SettingKeys.SuppressMetadataInitialization, false)) + { + return true; + } + Dictionary? metaXXH64Map; try { diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/AnnouncementPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/AnnouncementPage.xaml index 9c8f658f..082d72f6 100644 --- a/src/Snap.Hutao/Snap.Hutao/View/Page/AnnouncementPage.xaml +++ b/src/Snap.Hutao/Snap.Hutao/View/Page/AnnouncementPage.xaml @@ -159,13 +159,13 @@ diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/TestPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/TestPage.xaml index 6b0fb001..8ab0f58c 100644 --- a/src/Snap.Hutao/Snap.Hutao/View/Page/TestPage.xaml +++ b/src/Snap.Hutao/Snap.Hutao/View/Page/TestPage.xaml @@ -65,6 +65,15 @@ + + + + + + announcement; set => SetProperty(ref announcement, value); } + [SuppressMessage("", "CA1822")] + public bool SuppressMetadataInitialization + { + get => LocalSetting.Get(SettingKeys.SuppressMetadataInitialization, false); + set => LocalSetting.Set(SettingKeys.SuppressMetadataInitialization, value); + } + protected override ValueTask InitializeUIAsync() { return ValueTask.FromResult(true); @@ -46,4 +53,16 @@ internal sealed partial class TestViewModel : Abstraction.ViewModel Announcement = new(); } } + + [Command("CompensationGachaLogServiceTimeCommand")] + private async void CompensationGachaLogServiceTimeAsync() + { + Web.Response.Response response = await homaAsAServiceClient.GachaLogCompensationAsync(15).ConfigureAwait(false); + if (response.IsOk()) + { + infoBarService.Success(response.Message); + await taskContext.SwitchToMainThreadAsync(); + Announcement = new(); + } + } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Hutao/HutaoAsAService/Announcement.cs b/src/Snap.Hutao/Snap.Hutao/Web/Hutao/HutaoAsAService/Announcement.cs index 3fdc4491..850142a3 100644 --- a/src/Snap.Hutao/Snap.Hutao/Web/Hutao/HutaoAsAService/Announcement.cs +++ b/src/Snap.Hutao/Snap.Hutao/Web/Hutao/HutaoAsAService/Announcement.cs @@ -23,7 +23,7 @@ internal sealed class Announcement : UploadAnnouncement /// public long LastUpdateTime { get; set; } - public string UpdateTimeFormatted { get => $"{DateTimeOffset.FromUnixTimeSeconds(LastUpdateTime):yyyy-MM-dd HH:mm:ss}"; } + public string UpdateTimeFormatted { get => $"{DateTimeOffset.FromUnixTimeSeconds(LastUpdateTime).ToLocalTime():yyyy-MM-dd HH:mm:ss}"; } public ICommand? DismissCommand { get; set; } } \ No newline at end of file