diff --git a/src/Starward.Core/Gacha/StarRail/StarRailGachaItem.cs b/src/Starward.Core/Gacha/StarRail/StarRailGachaItem.cs index b94bc7a31..b4a18e041 100644 --- a/src/Starward.Core/Gacha/StarRail/StarRailGachaItem.cs +++ b/src/Starward.Core/Gacha/StarRail/StarRailGachaItem.cs @@ -1,12 +1,12 @@ -using System.Text.Json.Serialization; +using System.Text.Json; +using System.Text.Json.Serialization; namespace Starward.Core.Gacha.StarRail; public class StarRailGachaItem : GachaLogItem { - [JsonPropertyName("gacha_id")] - [JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)] + [JsonIgnore] public int GachaId { get; set; } @@ -15,3 +15,31 @@ public class StarRailGachaItem : GachaLogItem } +public class StarRailGachaItemConverter : JsonConverter +{ + public override StarRailGachaItem Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + var jsonObject = JsonDocument.ParseValue(ref reader).RootElement; + var gachaItem = (JsonSerializer.Deserialize(jsonObject.GetRawText()) ?? new StarRailGachaItem()); + if (jsonObject.TryGetProperty("gacha_id", out var gachaIdProp)) + if (gachaIdProp.ValueKind == JsonValueKind.String && string.IsNullOrEmpty(gachaIdProp.GetString())) + gachaItem.GachaId = gachaItem.GachaType switch + { + 1 => 1001, + 2 => 4001, + 11 => 2003, + 12 => 3003, + _ => 1001, + }; + else + gachaItem.GachaId = gachaIdProp.GetInt32(); + + return gachaItem; + } + + public override void Write(Utf8JsonWriter writer, StarRailGachaItem value, JsonSerializerOptions options) + { + JsonSerializer.Serialize(writer, value, options); + } +} + diff --git a/src/Starward.Language/Lang.Designer.cs b/src/Starward.Language/Lang.Designer.cs index 165ff2bed..b47fd71e6 100644 --- a/src/Starward.Language/Lang.Designer.cs +++ b/src/Starward.Language/Lang.Designer.cs @@ -4377,5 +4377,14 @@ public static string UpdateService_CannotUpdateAutomatically { return ResourceManager.GetString("UpdateService_CannotUpdateAutomatically", resourceCulture); } } + + /// + /// 查找类似 Import {0} signal search(es) successfully. 的本地化字符串。 + /// + public static string ZZZGachaService_ImportSignalSearchSuccessfully { + get { + return ResourceManager.GetString("ZZZGachaService_ImportSignalSearchSuccessfully", resourceCulture); + } + } } } diff --git a/src/Starward.Language/Lang.resx b/src/Starward.Language/Lang.resx index 616fd3234..8764a8aad 100644 --- a/src/Starward.Language/Lang.resx +++ b/src/Starward.Language/Lang.resx @@ -1582,4 +1582,7 @@ Do you accept the risk and continue to use it? Removable storage device not connected. + + Import {0} signal search(es) successfully. + \ No newline at end of file diff --git a/src/Starward.Language/Lang.zh-CN.resx b/src/Starward.Language/Lang.zh-CN.resx index 967f4ab4b..1bd0a74be 100644 --- a/src/Starward.Language/Lang.zh-CN.resx +++ b/src/Starward.Language/Lang.zh-CN.resx @@ -1582,4 +1582,7 @@ 可移动存储设备未连接 + + 成功导入调频记录 {0} 条 + \ No newline at end of file diff --git a/src/Starward.Language/Lang.zh-TW.resx b/src/Starward.Language/Lang.zh-TW.resx index 06f4beb8d..9f28125c0 100644 --- a/src/Starward.Language/Lang.zh-TW.resx +++ b/src/Starward.Language/Lang.zh-TW.resx @@ -1324,7 +1324,7 @@ 驗證失敗 - 目前版本不是最新版本({0})。 + 目前版本不是最新版本({0})。 按下按鈕修復檔案 @@ -1582,4 +1582,7 @@ Removable storage device not connected. + + 成功匯入 {0} 條調頻記錄 + \ No newline at end of file diff --git a/src/Starward/Pages/GachaLogPage.xaml b/src/Starward/Pages/GachaLogPage.xaml index 9ef24663c..45a381646 100644 --- a/src/Starward/Pages/GachaLogPage.xaml +++ b/src/Starward/Pages/GachaLogPage.xaml @@ -154,6 +154,7 @@ +