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