From 5bc484db78cbaf153e73dd773ac7bb3b4ceeb135 Mon Sep 17 00:00:00 2001 From: DismissedLight <1686188646@qq.com> Date: Thu, 5 Oct 2023 10:02:25 +0800 Subject: [PATCH] signIn improvement --- .../Resource/Localization/SH.Designer.cs | 9 +++++++++ .../Snap.Hutao/Resource/Localization/SH.resx | 3 +++ .../Snap.Hutao/Service/SignIn/SignInService.cs | 10 +++++++--- .../Takumi/Event/BbsSignReward/ISignInClient.cs | 16 +++------------- .../Event/BbsSignReward/SignInClientOversea.cs | 7 ++++++- .../Event/BbsSignReward/SignInRewardInfo.cs | 2 +- 6 files changed, 29 insertions(+), 18 deletions(-) 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 1eaab0ab..4078022e 100644 --- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.Designer.cs +++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.Designer.cs @@ -2112,6 +2112,15 @@ namespace Snap.Hutao.Resource.Localization { } } + /// + /// 查找类似 获取签到次数失败 的本地化字符串。 + /// + internal static string ServiceSignInInfoRequestFailed { + get { + return ResourceManager.GetString("ServiceSignInInfoRequestFailed", resourceCulture); + } + } + /// /// 查找类似 获取奖励列表失败 的本地化字符串。 /// diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx index 562ca864..1ea07b40 100644 --- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx +++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx @@ -857,6 +857,9 @@ 签到失败,{0} + + 获取签到次数失败 + 获取奖励列表失败 diff --git a/src/Snap.Hutao/Snap.Hutao/Service/SignIn/SignInService.cs b/src/Snap.Hutao/Snap.Hutao/Service/SignIn/SignInService.cs index 0e74362b..62d23daf 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/SignIn/SignInService.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/SignIn/SignInService.cs @@ -1,7 +1,6 @@ // Copyright (c) DGP Studio. All rights reserved. // Licensed under the MIT license. -using Microsoft.Extensions.DependencyInjection; using Snap.Hutao.Core.DependencyInjection.Abstraction; using Snap.Hutao.ViewModel.User; using Snap.Hutao.Web.Hoyolab.Takumi.Event.BbsSignReward; @@ -27,7 +26,7 @@ internal sealed partial class SignInService : ISignInService { Response resultResponse = await signInClient.SignAsync(userAndUid, token).ConfigureAwait(false); - if (resultResponse.IsOk()) + if (resultResponse.IsOk(showInfoBar: false)) { Response infoResponse = await signInClient.GetInfoAsync(userAndUid, token).ConfigureAwait(false); if (infoResponse.IsOk()) @@ -38,13 +37,18 @@ internal sealed partial class SignInService : ISignInService } else { - return new(false, "获取签到次数失败"); + return new(false, SH.ServiceSignInInfoRequestFailed); } } else { string message = resultResponse.Message; + if (resultResponse.ReturnCode == (int)KnownReturnCode.AlreadySignedIn) + { + return new(true, message); + } + if (string.IsNullOrEmpty(message)) { message = $"RiskCode: {resultResponse.Data?.RiskCode}"; diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/Event/BbsSignReward/ISignInClient.cs b/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/Event/BbsSignReward/ISignInClient.cs index dc6f41dc..3b6ec6b6 100644 --- a/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/Event/BbsSignReward/ISignInClient.cs +++ b/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/Event/BbsSignReward/ISignInClient.cs @@ -11,19 +11,9 @@ namespace Snap.Hutao.Web.Hoyolab.Takumi.Event.BbsSignReward; /// internal interface ISignInClient { - /// - /// 获取 - /// - /// 用户信息 - /// token - /// 结果 + ValueTask> GetInfoAsync(UserAndUid userAndUid, CancellationToken token = default(CancellationToken)); + ValueTask> GetRewardAsync(Model.Entity.User user, CancellationToken token = default); - /// - /// 签到 - /// - /// 用户信息 - /// token - /// 签到结果 ValueTask> SignAsync(UserAndUid userAndUid, CancellationToken token = default); -} +} \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/Event/BbsSignReward/SignInClientOversea.cs b/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/Event/BbsSignReward/SignInClientOversea.cs index f99a15a1..a0ff0f29 100644 --- a/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/Event/BbsSignReward/SignInClientOversea.cs +++ b/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/Event/BbsSignReward/SignInClientOversea.cs @@ -24,6 +24,11 @@ internal sealed partial class SignInClientOversea : ISignInClient private readonly JsonSerializerOptions options; private readonly ILogger logger; + public ValueTask> GetInfoAsync(UserAndUid userAndUid, CancellationToken token = default(CancellationToken)) + { + return ValueTask.FromException>(new NotSupportedException()); + } + public async ValueTask> GetRewardAsync(Model.Entity.User user, CancellationToken token = default) { Response? resp = await httpClient @@ -62,4 +67,4 @@ internal sealed partial class SignInClientOversea : ISignInClient return Response.Response.DefaultIfNull(resp); } -} +} \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/Event/BbsSignReward/SignInRewardInfo.cs b/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/Event/BbsSignReward/SignInRewardInfo.cs index 5a86a0f0..b11ed1c1 100644 --- a/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/Event/BbsSignReward/SignInRewardInfo.cs +++ b/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/Event/BbsSignReward/SignInRewardInfo.cs @@ -48,5 +48,5 @@ internal sealed class SignInRewardInfo /// 漏签天数 /// [JsonPropertyName("sign_cnt_missed")] - public bool SignCountMissed { get; set; } + public int SignCountMissed { get; set; } } \ No newline at end of file