From 4708cd5629391c6e00e36e343a62d5800b4461de Mon Sep 17 00:00:00 2001
From: Daniel <2116528714@qq.com>
Date: Sat, 11 Nov 2023 18:42:14 +0800
Subject: [PATCH 1/2] fix user log in/register/unregister/reset password info
bar localization
---
.../Snap.Hutao/Resource/Localization/SH.en.resx | 12 ++++++++++++
.../Snap.Hutao/Resource/Localization/SH.ja.resx | 12 ++++++++++++
.../Snap.Hutao/Resource/Localization/SH.ko.resx | 12 ++++++++++++
.../Snap.Hutao/Resource/Localization/SH.resx | 12 ++++++++++++
.../Resource/Localization/SH.zh-Hant.resx | 12 ++++++++++++
.../ViewModel/Setting/HutaoPassportViewModel.cs | 14 +++++++-------
6 files changed, 67 insertions(+), 7 deletions(-)
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..469efe90 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/HutaoPassportViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/HutaoPassportViewModel.cs
@@ -46,11 +46,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.GetLocalizationMessageOrDefault()!);
await hutaoUserOptions.PostLoginSucceedAsync(homaPassportClient, taskContext, username, password, response.Data).ConfigureAwait(false);
}
}
@@ -75,7 +75,7 @@ internal sealed partial class HutaoPassportViewModel : Abstraction.ViewModel
if (response.IsOk())
{
- infoBarService.Information(response.Message);
+ infoBarService.Information(response.GetLocalizationMessageOrDefault()!);
await taskContext.SwitchToMainThreadAsync();
hutaoUserOptions.LogoutOrUnregister();
@@ -98,11 +98,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.GetLocalizationMessageOrDefault()!);
await hutaoUserOptions.PostLoginSucceedAsync(homaPassportClient, taskContext, username, password, response.Data).ConfigureAwait(false);
}
}
@@ -131,11 +131,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.GetLocalizationMessageOrDefault()!);
await hutaoUserOptions.PostLoginSucceedAsync(homaPassportClient, taskContext, username, password, response.Data).ConfigureAwait(false);
}
}
From 407dd7bac8e378ec56f2e4e207ee765639b51312 Mon Sep 17 00:00:00 2001
From: DismissedLight <1686188646@qq.com>
Date: Sun, 12 Nov 2023 12:48:46 +0800
Subject: [PATCH 2/2] code style
---
.../ViewModel/Setting/HutaoPassportViewModel.cs | 13 ++++++-------
.../Web/Hutao/LocalizableResponseExtension.cs | 6 ++++++
src/Snap.Hutao/Snap.Hutao/Web/HutaoEndpoints.cs | 6 ++++++
3 files changed, 18 insertions(+), 7 deletions(-)
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/HutaoPassportViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/HutaoPassportViewModel.cs
index 469efe90..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")]
@@ -50,7 +51,7 @@ internal sealed partial class HutaoPassportViewModel : Abstraction.ViewModel
if (response.IsOk())
{
- infoBarService.Information(response.GetLocalizationMessageOrDefault()!);
+ 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.GetLocalizationMessageOrDefault()!);
+ infoBarService.Information(response.GetLocalizationMessageOrMessage());
await taskContext.SwitchToMainThreadAsync();
hutaoUserOptions.LogoutOrUnregister();
@@ -102,7 +103,7 @@ internal sealed partial class HutaoPassportViewModel : Abstraction.ViewModel
if (response.IsOk())
{
- infoBarService.Information(response.GetLocalizationMessageOrDefault()!);
+ 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")]
@@ -135,7 +134,7 @@ internal sealed partial class HutaoPassportViewModel : Abstraction.ViewModel
if (response.IsOk())
{
- infoBarService.Information(response.GetLocalizationMessageOrDefault()!);
+ 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";