From 5020621c46e1993b8dd402bc20663fc2ead2e80e Mon Sep 17 00:00:00 2001
From: Lightczx <1686188646@qq.com>
Date: Fri, 7 Jul 2023 11:13:47 +0800
Subject: [PATCH] add gachalogserviceexpiredat in hutaocloudservice
---
.../Resource/Localization/SH.Designer.cs | 18 ++++++++
.../Snap.Hutao/Resource/Localization/SH.resx | 6 +++
.../Service/Hutao/HutaoUserOptions.cs | 23 ++++++++++
.../Service/Hutao/HutaoUserService.cs | 11 ++++-
src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj | 4 +-
.../Snap.Hutao/View/Page/GachaLogPage.xaml | 20 ++++++---
.../Web/Hutao/HomaGachaLogClient.cs | 2 +
.../Web/Hutao/HomaPassportClient.cs | 42 ++++++++++++-------
.../Snap.Hutao/Web/Hutao/Model/UserInfo.cs | 20 +++++++++
.../Snap.Hutao/Web/HutaoEndpoints.cs | 5 +++
10 files changed, 128 insertions(+), 23 deletions(-)
create mode 100644 src/Snap.Hutao/Snap.Hutao/Web/Hutao/Model/UserInfo.cs
diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.Designer.cs b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.Designer.cs
index 46e8cb52..df430074 100644
--- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.Designer.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.Designer.cs
@@ -1473,6 +1473,15 @@ namespace Snap.Hutao.Resource.Localization {
}
}
+ ///
+ /// 查找类似 祈愿记录上传服务将于 {0:yyyy-MM-dd HH:mm:ss} 到期 的本地化字符串。
+ ///
+ internal static string ServiceHutaoUserGachaLogExpiredAt {
+ get {
+ return ResourceManager.GetString("ServiceHutaoUserGachaLogExpiredAt", resourceCulture);
+ }
+ }
+
///
/// 查找类似 无法找到缓存的元数据文件 的本地化字符串。
///
@@ -3426,6 +3435,15 @@ namespace Snap.Hutao.Resource.Localization {
}
}
+ ///
+ /// 查找类似 已注册为开发者,即使服务过期依旧能使用 的本地化字符串。
+ ///
+ internal static string ViewPageGachaLogHutaoCloudDeveloperHint {
+ get {
+ return ResourceManager.GetString("ViewPageGachaLogHutaoCloudDeveloperHint", resourceCulture);
+ }
+ }
+
///
/// 查找类似 胡桃云服务时长不足 的本地化字符串。
///
diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx
index 40c50861..2df22000 100644
--- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx
+++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx
@@ -2037,4 +2037,10 @@
原粹树脂已完全恢复
+
+ 祈愿记录上传服务将于 {0:yyyy-MM-dd HH:mm:ss} 到期
+
+
+ 已注册为开发者,即使服务过期依旧能使用
+
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoUserOptions.cs b/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoUserOptions.cs
index 60258322..819e7744 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoUserOptions.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoUserOptions.cs
@@ -3,6 +3,7 @@
using CommunityToolkit.Mvvm.ComponentModel;
using Microsoft.Extensions.Options;
+using Snap.Hutao.Web.Hutao.Model;
namespace Snap.Hutao.Service.Hutao;
@@ -16,6 +17,8 @@ internal sealed class HutaoUserOptions : ObservableObject, IOptions
/// 用户名
@@ -42,6 +45,16 @@ internal sealed class HutaoUserOptions : ObservableObject, IOptions
public bool IsCloudServiceAllowed { get => isHutaoCloudServiceAllowed; set => SetProperty(ref isHutaoCloudServiceAllowed, value); }
+ ///
+ /// 是否为开发者
+ ///
+ public bool IsLicensedDeveloper { get => isLicensedDeveloper; set => SetProperty(ref isLicensedDeveloper, value); }
+
+ ///
+ /// 祈愿记录服务到期时间
+ ///
+ public string? GachaLogExpireAt { get => gachaLogExpireAt; set => SetProperty(ref gachaLogExpireAt, value); }
+
///
public HutaoUserOptions Value { get => this; }
@@ -64,4 +77,14 @@ internal sealed class HutaoUserOptions : ObservableObject, IOptions
+ /// 刷新用户信息
+ ///
+ /// 用户信息
+ public void UpdateUserInfo(UserInfo userInfo)
+ {
+ IsLicensedDeveloper = userInfo.IsLicensedDeveloper;
+ GachaLogExpireAt = string.Format(SH.ServiceHutaoUserGachaLogExpiredAt, userInfo.GachaLogExpireAt);
+ }
}
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoUserService.cs b/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoUserService.cs
index 1784f472..17b9d09c 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoUserService.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoUserService.cs
@@ -3,6 +3,7 @@
using Snap.Hutao.Core.Setting;
using Snap.Hutao.Web.Hutao;
+using Snap.Hutao.Web.Hutao.Model;
namespace Snap.Hutao.Service.Hutao;
@@ -41,7 +42,15 @@ internal sealed partial class HutaoUserService : IHutaoUserService, IHutaoUserSe
{
await taskContext.SwitchToMainThreadAsync();
options.LoginSucceed(userName, response.Data);
- isInitialized = true;
+
+ await taskContext.SwitchToBackgroundAsync();
+ Web.Response.Response userInfoResponse = await passportClient.GetUserInfoAsync(response.Data).ConfigureAwait(false);
+ if (userInfoResponse.IsOk())
+ {
+ await taskContext.SwitchToMainThreadAsync();
+ options.UpdateUserInfo(userInfoResponse.Data);
+ isInitialized = true;
+ }
}
else
{
diff --git a/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj b/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj
index 80904e05..fd4502ab 100644
--- a/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj
+++ b/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj
@@ -240,7 +240,7 @@
-
+
@@ -256,7 +256,7 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/GachaLogPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/GachaLogPage.xaml
index 115b5170..aef3360a 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Page/GachaLogPage.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Page/GachaLogPage.xaml
@@ -83,18 +83,26 @@
+
-
+
+
+
+
+
+
+
-
+