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