From bbacb038cb5879208deda14fff5c676413f7439a Mon Sep 17 00:00:00 2001
From: Lightczx <1686188646@qq.com>
Date: Tue, 27 Jun 2023 20:43:22 +0800
Subject: [PATCH] fix CHS cannot load correct metadata
---
.../Service/Metadata/IMetadataContext.cs | 42 +++++++++++++++++++
.../Service/Metadata/MetadataOptions.cs | 4 +-
src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj | 2 +-
.../Snap.Hutao/Web/Hoyolab/HoyolabOptions.cs | 1 -
4 files changed, 45 insertions(+), 4 deletions(-)
create mode 100644 src/Snap.Hutao/Snap.Hutao/Service/Metadata/IMetadataContext.cs
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Metadata/IMetadataContext.cs b/src/Snap.Hutao/Snap.Hutao/Service/Metadata/IMetadataContext.cs
new file mode 100644
index 00000000..56adf5a2
--- /dev/null
+++ b/src/Snap.Hutao/Snap.Hutao/Service/Metadata/IMetadataContext.cs
@@ -0,0 +1,42 @@
+// Copyright (c) DGP Studio. All rights reserved.
+// Licensed under the MIT license.
+
+namespace Snap.Hutao.Service.Metadata;
+
+///
+/// 元数据上下文
+///
+internal interface IMetadataContext
+{
+ ///
+ /// 获取对应元数据类型的列表
+ ///
+ /// 元数据类型
+ /// 名称,留空则使用类型名称
+ /// 对应元数据类型的列表
+ List List(string name = default!);
+
+ ///
+ /// 获取对应元数据类型的映射
+ ///
+ /// 键类型
+ /// 元数据类型
+ /// 键选择器
+ /// 名称,留空则使用类型名称
+ /// 对应元数据类型的映射
+ Dictionary Map(Func keySelector, string name = default!)
+ where Tkey : notnull;
+
+ ///
+ /// 获取对应元数据类型的映射
+ ///
+ /// 键类型
+ /// 值类型
+ /// 元数据类型
+ /// 键选择器
+ /// 值选择器
+ /// 名称,留空则使用类型名称
+ /// 对应元数据类型的映射
+ Dictionary Map(Func keySelector, Func dataSelector, string name = default!)
+ where Tkey : notnull;
+}
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Metadata/MetadataOptions.cs b/src/Snap.Hutao/Snap.Hutao/Service/Metadata/MetadataOptions.cs
index d67ddd3d..bef766b0 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/Metadata/MetadataOptions.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/Metadata/MetadataOptions.cs
@@ -118,8 +118,8 @@ internal sealed partial class MetadataOptions : IOptions
case "th": return "TH"; // Thai
case "tr": return "TR"; // Turkish
case "vi": return "TR"; // Vietnamese
- case "zh-CHS": return "CHS"; // Chinese (Simplified) Legacy
- case "zh-CHT": return "CHT"; // Chinese (Traditional) Legacy
+ case "zh-Hans": return "CHS"; // Chinese (Simplified)
+ case "zh-Hant": return "CHT"; // Chinese (Traditional)
default: cultureInfo = cultureInfo.Parent; break;
}
}
diff --git a/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj b/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj
index 81e4bc06..80904e05 100644
--- a/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj
+++ b/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj
@@ -256,7 +256,7 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/HoyolabOptions.cs b/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/HoyolabOptions.cs
index 776c5ae1..c509d688 100644
--- a/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/HoyolabOptions.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/HoyolabOptions.cs
@@ -43,7 +43,6 @@ internal sealed class HoyolabOptions : IOptions
///
public const string XrpcVersionOversea = "2.31.0";
- // https://github.com/UIGF-org/Hoyolab.Salt
private static readonly ImmutableDictionary SaltsInner = new Dictionary()
{
// Chinese