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 @@ + - + + + + + + + - +