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