diff --git a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/UrlProvider/GachaLogUrlWebCacheProvider.cs b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/UrlProvider/GachaLogUrlWebCacheProvider.cs index 52aae5ef..6f397185 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/UrlProvider/GachaLogUrlWebCacheProvider.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/UrlProvider/GachaLogUrlWebCacheProvider.cs @@ -63,7 +63,17 @@ internal class GachaLogUrlWebCacheProvider : IGachaLogUrlProvider using (MemoryStream memoryStream = new()) { await fileStream.CopyToAsync(memoryStream).ConfigureAwait(false); - string? result = Match(memoryStream); + string? result = null; + + if (tempFile.Path.Contains("YuanShen_Data")) + { + result = Match(memoryStream); + } + else + { + result = MatchIntl(memoryStream); + } + return new(!string.IsNullOrEmpty(result), result!); } } @@ -90,4 +100,20 @@ internal class GachaLogUrlWebCacheProvider : IGachaLogUrlProvider return null; } + + private static string? MatchIntl(MemoryStream stream) + { + ReadOnlySpan span = stream.ToArray(); + ReadOnlySpan match = "https://webstatic-sea.hoyoverse.com/genshin/event/e20190909gacha-v2/index.html"u8; + ReadOnlySpan zero = "\0"u8; + + int index = span.LastIndexOf(match); + if (index >= 0) + { + int length = span[index..].IndexOf(zero); + return Encoding.UTF8.GetString(span.Slice(index, length)); + } + + return null; + } } diff --git a/src/Snap.Hutao/Snap.Hutao/Web/ApiEndpoints.cs b/src/Snap.Hutao/Snap.Hutao/Web/ApiEndpoints.cs index fbddb725..33479114 100644 --- a/src/Snap.Hutao/Snap.Hutao/Web/ApiEndpoints.cs +++ b/src/Snap.Hutao/Snap.Hutao/Web/ApiEndpoints.cs @@ -274,7 +274,14 @@ internal static class ApiEndpoints /// 祈愿记录信息Url public static string GachaInfoGetGachaLog(string query) { - return $"{Hk4eApiGachaInfoApi}/getGachaLog?{query}"; + if (query.Contains("mihoyo.com")) + { + return $"{Hk4eApiGachaInfoApi}/getGachaLog?{query}"; + } + else + { + return $"{Hk4eIntlApiGachaInfoApi}/getGachaLog?{query}"; + } } #endregion @@ -356,6 +363,10 @@ internal static class ApiEndpoints private const string Hk4eApiAnnouncementApi = $"{Hk4eApi}/common/hk4e_cn/announcement/api"; private const string Hk4eApiGachaInfoApi = $"{Hk4eApi}/event/gacha_info/api"; + private const string Hk4eIntlApi = "https://hk4e-api-os.hoyoverse.com"; + private const string Hk4eIntlApiAnnouncementApi = $"{Hk4eIntlApi}/common/hk4e_cn/announcement/api"; + private const string Hk4eIntlApiGachaInfoApi = $"{Hk4eIntlApi}/event/gacha_info/api"; + private const string PassportApi = "https://passport-api.mihoyo.com"; private const string PassportApiAuthApi = $"{PassportApi}/account/auth/api"; private const string PassportApiV4 = "https://passport-api-v4.mihoyo.com";