diff --git a/src/Snap.Hutao/Snap.Hutao/Extension/StringBuilderExtensions.cs b/src/Snap.Hutao/Snap.Hutao/Extension/StringBuilderExtension.cs
similarity index 72%
rename from src/Snap.Hutao/Snap.Hutao/Extension/StringBuilderExtensions.cs
rename to src/Snap.Hutao/Snap.Hutao/Extension/StringBuilderExtension.cs
index b6d987e7..515666c7 100644
--- a/src/Snap.Hutao/Snap.Hutao/Extension/StringBuilderExtensions.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Extension/StringBuilderExtension.cs
@@ -10,7 +10,7 @@ namespace Snap.Hutao.Extension;
/// 扩展方法
///
[HighQuality]
-internal static class StringBuilderExtensions
+internal static class StringBuilderExtension
{
///
/// 当条件符合时执行
@@ -37,4 +37,21 @@ internal static class StringBuilderExtensions
{
return condition ? sb.Append(value) : sb;
}
+
+ public static string ToStringTrimEndReturn(this StringBuilder builder)
+ {
+ Must.Argument(builder.Length >= 1, "StringBuilder 的长度必须大于 0");
+ int remove = 0;
+ if (builder[^1] is '\n')
+ {
+ remove = 1;
+
+ if (builder.Length >= 2 && builder[^2] is '\r')
+ {
+ remove = 2;
+ }
+ }
+
+ return builder.ToString(0, builder.Length - remove);
+ }
}
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/SdkStatic/Hk4e/Launcher/LatestPackage.cs b/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/SdkStatic/Hk4e/Launcher/LatestPackage.cs
index b737ac49..78b72060 100644
--- a/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/SdkStatic/Hk4e/Launcher/LatestPackage.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/SdkStatic/Hk4e/Launcher/LatestPackage.cs
@@ -7,4 +7,6 @@ internal sealed class LatestPackage : Package
{
[JsonPropertyName("segments")]
public List Segments { get; set; } = default!;
+
+ public new string DisplayName { get => Name; }
}
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/SdkStatic/Hk4e/Launcher/ResourceClient.cs b/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/SdkStatic/Hk4e/Launcher/ResourceClient.cs
index 738d0d08..2b294d50 100644
--- a/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/SdkStatic/Hk4e/Launcher/ResourceClient.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/SdkStatic/Hk4e/Launcher/ResourceClient.cs
@@ -8,6 +8,7 @@ using Snap.Hutao.Web.Request.Builder.Abstraction;
using Snap.Hutao.Web.Response;
using System.IO;
using System.Net.Http;
+using System.Text;
namespace Snap.Hutao.Web.Hoyolab.SdkStatic.Hk4e.Launcher;
@@ -46,8 +47,15 @@ internal sealed partial class ResourceClient
// 补全缺失的信息
if (resp is { Data.Game.Latest: LatestPackage latest })
{
- latest.Path = latest.Segments[0].Path[..^4]; // .00X
- latest.Name = Path.GetFileName(latest.Path);
+ StringBuilder pathBuilder = new();
+ foreach (PackageSegment segment in latest.Segments)
+ {
+ pathBuilder.AppendLine(segment.Path);
+ }
+
+ latest.Path = pathBuilder.ToStringTrimEndReturn();
+ string path = latest.Segments[0].Path[..^4]; // .00X
+ latest.Name = Path.GetFileName(path);
}
return Response.Response.DefaultIfNull(resp);