diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx
index e5b698bf..ff1664eb 100644
--- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx
+++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx
@@ -3251,6 +3251,9 @@
[{0}] 中的 [{1}] 网络请求异常,请稍后再试
+
+ 登录失败,请前往 HoYoLAB 初始化账号,原始消息:{0}
+
显示器编号
diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Response/Response.cs b/src/Snap.Hutao/Snap.Hutao/Web/Response/Response.cs
index 8a316442..a0ead361 100644
--- a/src/Snap.Hutao/Snap.Hutao/Web/Response/Response.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Web/Response/Response.cs
@@ -49,10 +49,21 @@ internal class Response : ICommonResponse
response.Message = SH.FormatWebResponseRefreshCookieHintFormat(response.Message);
}
+ switch ((KnownReturnCode)response.ReturnCode)
+ {
+ case KnownReturnCode.PleaseLogin:
+ case KnownReturnCode.RET_TOKEN_INVALID:
+ response.Message = SH.FormatWebResponseRefreshCookieHintFormat(response.Message);
+ break;
+ case KnownReturnCode.SignInError:
+ response.Message = SH.FormatWebResponseSignInErrorHint(response.Message);
+ break;
+ }
+
return response;
}
- public static Response CloneReturnCodeAndMessage(Response response, [CallerMemberName] string callerName = default!)
+ public static Response CloneReturnCodeAndMessage(Response response)
{
return new(response.ReturnCode, response.Message, default);
}
@@ -63,16 +74,14 @@ internal class Response : ICommonResponse
{
return true;
}
- else
- {
- if (showInfoBar)
- {
- serviceProvider ??= Ioc.Default;
- serviceProvider.GetRequiredService().Error(ToString());
- }
- return false;
+ if (showInfoBar)
+ {
+ serviceProvider ??= Ioc.Default;
+ serviceProvider.GetRequiredService().Error(ToString());
}
+
+ return false;
}
public override string ToString()
@@ -102,20 +111,12 @@ internal class Response : Response, ICommonResponse>, IJs
[MemberNotNullWhen(true, nameof(Data))]
public override bool IsOk(bool showInfoBar = true, IServiceProvider? serviceProvider = null)
{
- if (ReturnCode == 0)
+ bool result = base.IsOk(showInfoBar, serviceProvider);
+ if (result)
{
ArgumentNullException.ThrowIfNull(Data);
- return true;
}
- else
- {
- if (showInfoBar)
- {
- serviceProvider ??= Ioc.Default;
- serviceProvider.GetRequiredService().Error(ToString());
- }
- return false;
- }
+ return result;
}
}
\ No newline at end of file