diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.en.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.en.resx index 3dae5ac9..47975389 100644 --- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.en.resx +++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.en.resx @@ -518,6 +518,15 @@ Found abnormal data, unable to upload to Snap Hutao Cloud. Please do not upload across accounts or you can attempt to delete cloud data and try again. + + Login successfully + + + Register successfully + + + Password has been set successfully + Current email adress is not registered @@ -530,6 +539,9 @@ User does not exist, failed to delete account + + Unregister successfully + User does not exist, failed to fetch user's data diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ja.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ja.resx index 317e4241..fbb733c8 100644 --- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ja.resx +++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ja.resx @@ -518,6 +518,15 @@ データが異常なため、胡桃クラウドにアップロードできません。 複数のアカウントに跨がってアップロードしないでください。アップロードしたい場合は、クラウド データを削除してもう一度試してください。 + + 登录成功 + + + 注册成功 + + + 新密码设置成功 + このメールアドレスは登録されていません。 @@ -530,6 +539,9 @@ ユーザーが存在しないため、アカウントを削除できません。 + + 用户注销成功 + ユーザーが存在しないため、ユーザーデータを取得出来ません。 diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ko.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ko.resx index fdfce283..54eb5030 100644 --- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ko.resx +++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ko.resx @@ -518,6 +518,15 @@ 数据异常,无法保存至云端,请勿跨账号上传或尝试删除云端数据后重试 + + 登录成功 + + + 注册成功 + + + 新密码设置成功 + 当前邮箱尚未注册 @@ -530,6 +539,9 @@ 用户不存在,注销失败 + + 用户注销成功 + 用户不存在,获取用户信息失败 diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx index 161dfa68..6a5fd97a 100644 --- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx +++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx @@ -518,6 +518,15 @@ 数据异常,无法保存至云端,请勿跨账号上传或尝试删除云端数据后重试 + + 登录成功 + + + 注册成功 + + + 新密码设置成功 + 当前邮箱尚未注册 @@ -530,6 +539,9 @@ 用户不存在,注销失败 + + 用户注销成功 + 用户不存在,获取用户信息失败 diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.zh-Hant.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.zh-Hant.resx index 28d4fe28..27f7d108 100644 --- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.zh-Hant.resx +++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.zh-Hant.resx @@ -518,6 +518,15 @@ 数据异常,无法保存至云端,请勿跨账号上传或尝试删除云端数据后重试 + + 登录成功 + + + 注册成功 + + + 新密码设置成功 + 当前邮箱尚未注册 @@ -530,6 +539,9 @@ 用户不存在,注销失败 + + 用户注销成功 + 用户不存在,获取用户信息失败 diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/HutaoPassportViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/HutaoPassportViewModel.cs index 28c619b3..5ac83baf 100644 --- a/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/HutaoPassportViewModel.cs +++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/HutaoPassportViewModel.cs @@ -6,6 +6,7 @@ using Snap.Hutao.Factory.ContentDialog; using Snap.Hutao.Service.Hutao; using Snap.Hutao.Service.Notification; using Snap.Hutao.View.Dialog; +using Snap.Hutao.Web; using Snap.Hutao.Web.Hutao; using Snap.Hutao.Web.Response; using Windows.System; @@ -28,7 +29,7 @@ internal sealed partial class HutaoPassportViewModel : Abstraction.ViewModel [Command("OpenRedeemWebsiteCommand")] private static async Task OpenRedeemWebsiteAsync() { - await Launcher.LaunchUriAsync("https://homa.snapgenshin.com/redeem.html".ToUri()); + await Launcher.LaunchUriAsync(HutaoEndpoints.Website("redeem.html").ToUri()); } [Command("RegisterCommand")] @@ -46,11 +47,11 @@ internal sealed partial class HutaoPassportViewModel : Abstraction.ViewModel return; } - Response response = await homaPassportClient.RegisterAsync(username, password, verifyCode).ConfigureAwait(false); + HutaoResponse response = await homaPassportClient.RegisterAsync(username, password, verifyCode).ConfigureAwait(false); if (response.IsOk()) { - infoBarService.Information(response.Message); + infoBarService.Information(response.GetLocalizationMessageOrMessage()); await hutaoUserOptions.PostLoginSucceedAsync(homaPassportClient, taskContext, username, password, response.Data).ConfigureAwait(false); } } @@ -75,7 +76,7 @@ internal sealed partial class HutaoPassportViewModel : Abstraction.ViewModel if (response.IsOk()) { - infoBarService.Information(response.Message); + infoBarService.Information(response.GetLocalizationMessageOrMessage()); await taskContext.SwitchToMainThreadAsync(); hutaoUserOptions.LogoutOrUnregister(); @@ -98,11 +99,11 @@ internal sealed partial class HutaoPassportViewModel : Abstraction.ViewModel return; } - Response response = await homaPassportClient.LoginAsync(username, password).ConfigureAwait(false); + HutaoResponse response = await homaPassportClient.LoginAsync(username, password).ConfigureAwait(false); if (response.IsOk()) { - infoBarService.Information(response.Message); + infoBarService.Information(response.GetLocalizationMessageOrMessage()); await hutaoUserOptions.PostLoginSucceedAsync(homaPassportClient, taskContext, username, password, response.Data).ConfigureAwait(false); } } @@ -112,8 +113,6 @@ internal sealed partial class HutaoPassportViewModel : Abstraction.ViewModel private void LogoutAsync() { hutaoUserOptions.LogoutOrUnregister(); - LocalSetting.Set(SettingKeys.PassportUserName, string.Empty); - LocalSetting.Set(SettingKeys.PassportPassword, string.Empty); } [Command("ResetPasswordCommand")] @@ -131,11 +130,11 @@ internal sealed partial class HutaoPassportViewModel : Abstraction.ViewModel return; } - Response response = await homaPassportClient.ResetPasswordAsync(username, password, verifyCode).ConfigureAwait(false); + HutaoResponse response = await homaPassportClient.ResetPasswordAsync(username, password, verifyCode).ConfigureAwait(false); if (response.IsOk()) { - infoBarService.Information(response.Message); + infoBarService.Information(response.GetLocalizationMessageOrMessage()); await hutaoUserOptions.PostLoginSucceedAsync(homaPassportClient, taskContext, username, password, response.Data).ConfigureAwait(false); } } diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Hutao/LocalizableResponseExtension.cs b/src/Snap.Hutao/Snap.Hutao/Web/Hutao/LocalizableResponseExtension.cs index b35eacab..8bffc613 100644 --- a/src/Snap.Hutao/Snap.Hutao/Web/Hutao/LocalizableResponseExtension.cs +++ b/src/Snap.Hutao/Snap.Hutao/Web/Hutao/LocalizableResponseExtension.cs @@ -18,6 +18,12 @@ internal static class LocalizableResponseExtension return SH.ResourceManager.GetString(key, CultureInfo.CurrentCulture); } + public static string GetLocalizationMessageOrMessage(this TResponse localizableResponse) + where TResponse : Response.Response, ILocalizableResponse + { + return localizableResponse.GetLocalizationMessageOrDefault() ?? localizableResponse.Message; + } + public static string GetLocalizationMessage(this ILocalizableResponse localizableResponse) { string? key = localizableResponse.LocalizationKey; diff --git a/src/Snap.Hutao/Snap.Hutao/Web/HutaoEndpoints.cs b/src/Snap.Hutao/Snap.Hutao/Web/HutaoEndpoints.cs index ae990650..d33f92c5 100644 --- a/src/Snap.Hutao/Snap.Hutao/Web/HutaoEndpoints.cs +++ b/src/Snap.Hutao/Snap.Hutao/Web/HutaoEndpoints.cs @@ -2,6 +2,7 @@ // Licensed under the MIT license. using Snap.Hutao.Web.Hutao.GachaLog; +using System.Data.SqlTypes; namespace Snap.Hutao.Web; @@ -269,6 +270,11 @@ internal static class HutaoEndpoints } #endregion + public static string Website(string path) + { + return $"{HomaSnapGenshinApi}/{path}"; + } + private const string HomaSnapGenshinApi = "https://homa.snapgenshin.com"; private const string HutaoMetadataSnapGenshinApi = "https://hutao-metadata.snapgenshin.com"; private const string HutaoMetadata2SnapGenshinApi = "https://hutao-metadata2.snapgenshin.com";