From 4dd6765e35c485adda5315fa055ad97957e056cb Mon Sep 17 00:00:00 2001 From: qhy040404 Date: Tue, 28 Nov 2023 16:18:24 +0800 Subject: [PATCH 1/2] show ip --- .../Snap.Hutao/Resource/Localization/SH.resx | 6 +++++ .../Service/Hutao/HutaoUserOptions.cs | 11 +++++++++ .../Service/Hutao/HutaoUserService.cs | 1 + .../Snap.Hutao/View/Page/SettingPage.xaml | 1 + .../Web/Hutao/HomaPassportClient.cs | 11 +++++++++ src/Snap.Hutao/Snap.Hutao/Web/Hutao/IPInfo.cs | 24 +++++++++++++++++++ .../Snap.Hutao/Web/HutaoEndpoints.cs | 3 +++ 7 files changed, 57 insertions(+) create mode 100644 src/Snap.Hutao/Snap.Hutao/Web/Hutao/IPInfo.cs diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx index 1f7e8c14..f6d73cbe 100644 --- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx +++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx @@ -2249,6 +2249,12 @@ 设备 ID + + IP:{0},归属:{1} + + + 设备 IP + 在祈愿记录页面显示或隐藏无记录的历史祈愿活动 diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoUserOptions.cs b/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoUserOptions.cs index 87074a42..efdd065f 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoUserOptions.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoUserOptions.cs @@ -19,6 +19,7 @@ internal sealed class HutaoUserOptions : ObservableObject, IOptions public string? ActualUserName { get => IsLoggedIn ? UserName : null; } + /// + /// 设备当前IP + /// + public IPInfo IPInfo { get => ipInfo; set => ipInfo = value; } + /// /// 是否已登录 /// @@ -131,6 +137,11 @@ internal sealed class HutaoUserOptions : ObservableObject, IOptions + diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Hutao/HomaPassportClient.cs b/src/Snap.Hutao/Snap.Hutao/Web/Hutao/HomaPassportClient.cs index 6e93e96a..4c35a2a3 100644 --- a/src/Snap.Hutao/Snap.Hutao/Web/Hutao/HomaPassportClient.cs +++ b/src/Snap.Hutao/Snap.Hutao/Web/Hutao/HomaPassportClient.cs @@ -193,6 +193,17 @@ internal sealed partial class HomaPassportClient return HutaoResponse.DefaultIfNull(resp); } + public async ValueTask GetIPInfoAsync(CancellationToken token = default) + { + HttpRequestMessageBuilder builder = httpRequestMessageBuilderFactory.Create() + .SetRequestUri(HutaoEndpoints.Ip) + .Get(); + + IPInfo? resp = await builder.TryCatchSendAsync(httpClient, logger, token).ConfigureAwait(false); + + return resp ?? new(); + } + private static string Encrypt(string text) { byte[] plaintextBytes = Encoding.UTF8.GetBytes(text); diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Hutao/IPInfo.cs b/src/Snap.Hutao/Snap.Hutao/Web/Hutao/IPInfo.cs new file mode 100644 index 00000000..3a080ea4 --- /dev/null +++ b/src/Snap.Hutao/Snap.Hutao/Web/Hutao/IPInfo.cs @@ -0,0 +1,24 @@ +namespace Snap.Hutao.Web.Hutao; + +internal sealed class IPInfo +{ + public IPInfo() + { + } + + [JsonConstructor] + public IPInfo(string ip, string division) + { + Ip = ip; + Division = division; + } + + public string Ip { get; set; } = "Unknown"; + + public string Division { get; set; } = "Unknown"; + + public override string ToString() + { + return SH.FormatViewPageSettingDeviceIpDescription(Ip, Division); + } +} diff --git a/src/Snap.Hutao/Snap.Hutao/Web/HutaoEndpoints.cs b/src/Snap.Hutao/Snap.Hutao/Web/HutaoEndpoints.cs index 1ee466fb..dbf33add 100644 --- a/src/Snap.Hutao/Snap.Hutao/Web/HutaoEndpoints.cs +++ b/src/Snap.Hutao/Snap.Hutao/Web/HutaoEndpoints.cs @@ -11,6 +11,7 @@ namespace Snap.Hutao.Web; /// [HighQuality] [SuppressMessage("", "SA1201")] +[SuppressMessage("", "SA1203")] [SuppressMessage("", "SA1124")] internal static class HutaoEndpoints { @@ -22,6 +23,8 @@ internal static class HutaoEndpoints public const string AnnouncementUpload = $"{HomaSnapGenshinApi}/Service/Announcement/Upload"; + public const string Ip = $"{ApiSnapGenshin}/ip"; + public static string GachaLogCompensation(int days) { return $"{HomaSnapGenshinApi}/Service/GachaLog/Compensation?days={days}"; From 045c127fb2b1322110a4f2bbc5d9d141c8d5366d Mon Sep 17 00:00:00 2001 From: Lightczx <1686188646@qq.com> Date: Wed, 6 Dec 2023 13:53:16 +0800 Subject: [PATCH 2/2] code style --- .../ExceptionService/ExceptionRecorder.cs | 2 +- .../Service/Hutao/HutaoSpiralAbyssService.cs | 2 +- .../Service/Hutao/HutaoUserOptions.cs | 13 +------- .../Service/Hutao/HutaoUserService.cs | 3 +- .../HutaoPassportRegisterDialog.xaml.cs | 4 +-- .../HutaoPassportResetPasswordDialog.xaml.cs | 4 +-- .../HutaoPassportUnregisterDialog.xaml.cs | 4 +-- .../Snap.Hutao/View/Page/SettingPage.xaml | 9 +++++- .../Setting/HutaoPassportViewModel.cs | 2 +- .../ViewModel/Setting/SettingViewModel.cs | 15 +++++++++ .../SpiralAbyss/SpiralAbyssRecordViewModel.cs | 2 +- .../Web/Hutao/HutaoInfrastructureClient.cs | 31 +++++++++++++++++++ ...ssportClient.cs => HutaoPassportClient.cs} | 17 ++-------- ...portHttpRequestMessageBuilderExtension.cs} | 2 +- src/Snap.Hutao/Snap.Hutao/Web/Hutao/IPInfo.cs | 24 -------------- .../Snap.Hutao/Web/Hutao/IPInformation.cs | 24 ++++++++++++++ ...ploadClient.cs => HutaoLogUploadClient.cs} | 4 +-- ...yssClient.cs => HutaoSpiralAbyssClient.cs} | 4 +-- .../Snap.Hutao/Web/HutaoEndpoints.cs | 5 ++- 19 files changed, 100 insertions(+), 71 deletions(-) create mode 100644 src/Snap.Hutao/Snap.Hutao/Web/Hutao/HutaoInfrastructureClient.cs rename src/Snap.Hutao/Snap.Hutao/Web/Hutao/{HomaPassportClient.cs => HutaoPassportClient.cs} (93%) rename src/Snap.Hutao/Snap.Hutao/Web/Hutao/{HomaPassportHttpRequestMessageBuilderExtension.cs => HutaoPassportHttpRequestMessageBuilderExtension.cs} (88%) delete mode 100644 src/Snap.Hutao/Snap.Hutao/Web/Hutao/IPInfo.cs create mode 100644 src/Snap.Hutao/Snap.Hutao/Web/Hutao/IPInformation.cs rename src/Snap.Hutao/Snap.Hutao/Web/Hutao/Log/{HomaLogUploadClient.cs => HutaoLogUploadClient.cs} (93%) rename src/Snap.Hutao/Snap.Hutao/Web/Hutao/SpiralAbyss/{HomaSpiralAbyssClient.cs => HutaoSpiralAbyssClient.cs} (98%) diff --git a/src/Snap.Hutao/Snap.Hutao/Core/ExceptionService/ExceptionRecorder.cs b/src/Snap.Hutao/Snap.Hutao/Core/ExceptionService/ExceptionRecorder.cs index fec24cb5..87514817 100644 --- a/src/Snap.Hutao/Snap.Hutao/Core/ExceptionService/ExceptionRecorder.cs +++ b/src/Snap.Hutao/Snap.Hutao/Core/ExceptionService/ExceptionRecorder.cs @@ -31,7 +31,7 @@ internal sealed partial class ExceptionRecorder private void OnAppUnhandledException(object? sender, Microsoft.UI.Xaml.UnhandledExceptionEventArgs e) { ValueTask task = serviceProvider - .GetRequiredService() + .GetRequiredService() .UploadLogAsync(e.Exception); if (!task.IsCompleted) diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoSpiralAbyssService.cs b/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoSpiralAbyssService.cs index 0566c9a0..f8fb9434 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoSpiralAbyssService.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoSpiralAbyssService.cs @@ -19,7 +19,7 @@ internal sealed partial class HutaoSpiralAbyssService : IHutaoSpiralAbyssService private readonly TimeSpan cacheExpireTime = TimeSpan.FromHours(4); private readonly IObjectCacheDbService objectCacheDbService; - private readonly HomaSpiralAbyssClient homaClient; + private readonly HutaoSpiralAbyssClient homaClient; private readonly JsonSerializerOptions options; private readonly IMemoryCache memoryCache; diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoUserOptions.cs b/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoUserOptions.cs index efdd065f..71988df7 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoUserOptions.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoUserOptions.cs @@ -19,7 +19,6 @@ internal sealed class HutaoUserOptions : ObservableObject, IOptions public string? ActualUserName { get => IsLoggedIn ? UserName : null; } - /// - /// 设备当前IP - /// - public IPInfo IPInfo { get => ipInfo; set => ipInfo = value; } - /// /// 是否已登录 /// @@ -69,7 +63,7 @@ internal sealed class HutaoUserOptions : ObservableObject, IOptions public HutaoUserOptions Value { get => this; } - public async ValueTask PostLoginSucceedAsync(HomaPassportClient passportClient, ITaskContext taskContext, string username, string password, string? token) + public async ValueTask PostLoginSucceedAsync(HutaoPassportClient passportClient, ITaskContext taskContext, string username, string password, string? token) { LocalSetting.Set(SettingKeys.PassportUserName, username); LocalSetting.Set(SettingKeys.PassportPassword, password); @@ -137,11 +131,6 @@ internal sealed class HutaoUserOptions : ObservableObject, IOptions(); - homaPassportClient = serviceProvider.GetRequiredService(); + homaPassportClient = serviceProvider.GetRequiredService(); infoBarService = serviceProvider.GetRequiredService(); } diff --git a/src/Snap.Hutao/Snap.Hutao/View/Dialog/HutaoPassportResetPasswordDialog.xaml.cs b/src/Snap.Hutao/Snap.Hutao/View/Dialog/HutaoPassportResetPasswordDialog.xaml.cs index 480a71ce..7d4a9406 100644 --- a/src/Snap.Hutao/Snap.Hutao/View/Dialog/HutaoPassportResetPasswordDialog.xaml.cs +++ b/src/Snap.Hutao/Snap.Hutao/View/Dialog/HutaoPassportResetPasswordDialog.xaml.cs @@ -13,7 +13,7 @@ namespace Snap.Hutao.View.Dialog; [DependencyProperty("VerifyCode", typeof(string))] internal sealed partial class HutaoPassportResetPasswordDialog : ContentDialog { - private readonly HomaPassportClient homaPassportClient; + private readonly HutaoPassportClient homaPassportClient; private readonly IInfoBarService infoBarService; private readonly ITaskContext taskContext; @@ -22,7 +22,7 @@ internal sealed partial class HutaoPassportResetPasswordDialog : ContentDialog InitializeComponent(); taskContext = serviceProvider.GetRequiredService(); - homaPassportClient = serviceProvider.GetRequiredService(); + homaPassportClient = serviceProvider.GetRequiredService(); infoBarService = serviceProvider.GetRequiredService(); } diff --git a/src/Snap.Hutao/Snap.Hutao/View/Dialog/HutaoPassportUnregisterDialog.xaml.cs b/src/Snap.Hutao/Snap.Hutao/View/Dialog/HutaoPassportUnregisterDialog.xaml.cs index b3c8b380..1707c24b 100644 --- a/src/Snap.Hutao/Snap.Hutao/View/Dialog/HutaoPassportUnregisterDialog.xaml.cs +++ b/src/Snap.Hutao/Snap.Hutao/View/Dialog/HutaoPassportUnregisterDialog.xaml.cs @@ -13,7 +13,7 @@ namespace Snap.Hutao.View.Dialog; [DependencyProperty("VerifyCode", typeof(string))] internal sealed partial class HutaoPassportUnregisterDialog : ContentDialog { - private readonly HomaPassportClient homaPassportClient; + private readonly HutaoPassportClient homaPassportClient; private readonly IInfoBarService infoBarService; private readonly ITaskContext taskContext; @@ -22,7 +22,7 @@ internal sealed partial class HutaoPassportUnregisterDialog : ContentDialog InitializeComponent(); taskContext = serviceProvider.GetRequiredService(); - homaPassportClient = serviceProvider.GetRequiredService(); + homaPassportClient = serviceProvider.GetRequiredService(); infoBarService = serviceProvider.GetRequiredService(); } diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/SettingPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/SettingPage.xaml index 644e3adb..55b61e25 100644 --- a/src/Snap.Hutao/Snap.Hutao/View/Page/SettingPage.xaml +++ b/src/Snap.Hutao/Snap.Hutao/View/Page/SettingPage.xaml @@ -6,7 +6,9 @@ xmlns:cwc="using:CommunityToolkit.WinUI.Controls" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:mxi="using:Microsoft.Xaml.Interactivity" xmlns:shc="using:Snap.Hutao.Control" + xmlns:shcb="using:Snap.Hutao.Control.Behavior" xmlns:shch="using:Snap.Hutao.Control.Helper" xmlns:shcm="using:Snap.Hutao.Control.Markup" xmlns:shvc="using:Snap.Hutao.View.Control" @@ -14,6 +16,11 @@ d:DataContext="{d:DesignInstance shvs:SettingViewModel}" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" mc:Ignorable="d"> + + + + + @@ -103,7 +110,7 @@ Description="{Binding HutaoOptions.DeviceId}" Header="{shcm:ResourceString Name=ViewPageSettingDeviceIdHeader}" IsClickEnabled="True"/> - + diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/HutaoPassportViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/HutaoPassportViewModel.cs index e889afc7..22ce7a2b 100644 --- a/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/HutaoPassportViewModel.cs +++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/HutaoPassportViewModel.cs @@ -19,7 +19,7 @@ namespace Snap.Hutao.ViewModel.Setting; internal sealed partial class HutaoPassportViewModel : Abstraction.ViewModel { private readonly IContentDialogFactory contentDialogFactory; - private readonly HomaPassportClient homaPassportClient; + private readonly HutaoPassportClient homaPassportClient; private readonly HutaoUserOptions hutaoUserOptions; private readonly IInfoBarService infoBarService; private readonly ITaskContext taskContext; diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/SettingViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/SettingViewModel.cs index 26fc68e6..24d3ba74 100644 --- a/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/SettingViewModel.cs +++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/SettingViewModel.cs @@ -23,6 +23,7 @@ using Snap.Hutao.Service.Notification; using Snap.Hutao.Service.User; using Snap.Hutao.View.Dialog; using Snap.Hutao.ViewModel.Guide; +using Snap.Hutao.Web.Hutao; using System.Globalization; using System.IO; using System.Runtime.InteropServices; @@ -41,6 +42,7 @@ internal sealed partial class SettingViewModel : Abstraction.ViewModel private readonly HomeCardOptions homeCardOptions = new(); private readonly IFileSystemPickerInteraction fileSystemPickerInteraction; + private readonly HutaoInfrastructureClient hutaoInfrastructureClient; private readonly HutaoPassportViewModel hutaoPassportViewModel; private readonly IContentDialogFactory contentDialogFactory; private readonly IGameLocatorFactory gameLocatorFactory; @@ -57,6 +59,7 @@ internal sealed partial class SettingViewModel : Abstraction.ViewModel private NameValue? selectedBackdropType; private NameValue? selectedCulture; + private IPInformation? ipInformation; /// /// 应用程序设置 @@ -98,6 +101,18 @@ internal sealed partial class SettingViewModel : Abstraction.ViewModel } } + public IPInformation? IPInformation { get => ipInformation; private set => SetProperty(ref ipInformation, value); } + + protected override async ValueTask InitializeUIAsync() + { + IPInformation? information = await hutaoInfrastructureClient.GetIPInformationAsync().ConfigureAwait(false); + + await taskContext.SwitchToMainThreadAsync(); + IPInformation = information; + + return true; + } + [Command("ResetStaticResourceCommand")] private static void ResetStaticResource() { diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/SpiralAbyss/SpiralAbyssRecordViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/SpiralAbyss/SpiralAbyssRecordViewModel.cs index 301024dc..8a1fd9d9 100644 --- a/src/Snap.Hutao/Snap.Hutao/ViewModel/SpiralAbyss/SpiralAbyssRecordViewModel.cs +++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/SpiralAbyss/SpiralAbyssRecordViewModel.cs @@ -24,7 +24,7 @@ namespace Snap.Hutao.ViewModel.SpiralAbyss; internal sealed partial class SpiralAbyssRecordViewModel : Abstraction.ViewModel, IRecipient { private readonly ISpiralAbyssRecordService spiralAbyssRecordService; - private readonly HomaSpiralAbyssClient spiralAbyssClient; + private readonly HutaoSpiralAbyssClient spiralAbyssClient; private readonly IInfoBarService infoBarService; private readonly ITaskContext taskContext; private readonly IUserService userService; diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Hutao/HutaoInfrastructureClient.cs b/src/Snap.Hutao/Snap.Hutao/Web/Hutao/HutaoInfrastructureClient.cs new file mode 100644 index 00000000..e3a5073a --- /dev/null +++ b/src/Snap.Hutao/Snap.Hutao/Web/Hutao/HutaoInfrastructureClient.cs @@ -0,0 +1,31 @@ +// Copyright (c) DGP Studio. All rights reserved. +// Licensed under the MIT license. + +using Snap.Hutao.Core.DependencyInjection.Annotation.HttpClient; +using Snap.Hutao.Service.Hutao; +using Snap.Hutao.Web.Request.Builder; +using Snap.Hutao.Web.Request.Builder.Abstraction; +using System.Net.Http; +using System.Security.Cryptography; +using System.Text; + +namespace Snap.Hutao.Web.Hutao; + +[HttpClient(HttpClientConfiguration.Default)] +[ConstructorGenerated(ResolveHttpClient = true)] +internal sealed partial class HutaoInfrastructureClient +{ + private readonly IHttpRequestMessageBuilderFactory httpRequestMessageBuilderFactory; + private readonly ILogger logger; + private readonly HttpClient httpClient; + + public async ValueTask GetIPInformationAsync(CancellationToken token = default) + { + HttpRequestMessageBuilder builder = httpRequestMessageBuilderFactory.Create() + .SetRequestUri(HutaoEndpoints.Ip) + .Get(); + + IPInformation? resp = await builder.TryCatchSendAsync(httpClient, logger, token).ConfigureAwait(false); + return resp ?? IPInformation.Default; + } +} \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Hutao/HomaPassportClient.cs b/src/Snap.Hutao/Snap.Hutao/Web/Hutao/HutaoPassportClient.cs similarity index 93% rename from src/Snap.Hutao/Snap.Hutao/Web/Hutao/HomaPassportClient.cs rename to src/Snap.Hutao/Snap.Hutao/Web/Hutao/HutaoPassportClient.cs index 4c35a2a3..80fb41b2 100644 --- a/src/Snap.Hutao/Snap.Hutao/Web/Hutao/HomaPassportClient.cs +++ b/src/Snap.Hutao/Snap.Hutao/Web/Hutao/HutaoPassportClient.cs @@ -17,7 +17,7 @@ namespace Snap.Hutao.Web.Hutao; [HighQuality] [HttpClient(HttpClientConfiguration.Default)] [ConstructorGenerated(ResolveHttpClient = true)] -internal sealed partial class HomaPassportClient +internal sealed partial class HutaoPassportClient { /// /// 通行证请求公钥 @@ -35,7 +35,7 @@ internal sealed partial class HomaPassportClient """; private readonly IHttpRequestMessageBuilderFactory httpRequestMessageBuilderFactory; - private readonly ILogger logger; + private readonly ILogger logger; private readonly HutaoUserOptions hutaoUserOptions; private readonly HttpClient httpClient; @@ -193,17 +193,6 @@ internal sealed partial class HomaPassportClient return HutaoResponse.DefaultIfNull(resp); } - public async ValueTask GetIPInfoAsync(CancellationToken token = default) - { - HttpRequestMessageBuilder builder = httpRequestMessageBuilderFactory.Create() - .SetRequestUri(HutaoEndpoints.Ip) - .Get(); - - IPInfo? resp = await builder.TryCatchSendAsync(httpClient, logger, token).ConfigureAwait(false); - - return resp ?? new(); - } - private static string Encrypt(string text) { byte[] plaintextBytes = Encoding.UTF8.GetBytes(text); @@ -214,4 +203,4 @@ internal sealed partial class HomaPassportClient return Convert.ToBase64String(encryptedBytes); } } -} \ No newline at end of file +} diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Hutao/HomaPassportHttpRequestMessageBuilderExtension.cs b/src/Snap.Hutao/Snap.Hutao/Web/Hutao/HutaoPassportHttpRequestMessageBuilderExtension.cs similarity index 88% rename from src/Snap.Hutao/Snap.Hutao/Web/Hutao/HomaPassportHttpRequestMessageBuilderExtension.cs rename to src/Snap.Hutao/Snap.Hutao/Web/Hutao/HutaoPassportHttpRequestMessageBuilderExtension.cs index a99499b3..91d9edeb 100644 --- a/src/Snap.Hutao/Snap.Hutao/Web/Hutao/HomaPassportHttpRequestMessageBuilderExtension.cs +++ b/src/Snap.Hutao/Snap.Hutao/Web/Hutao/HutaoPassportHttpRequestMessageBuilderExtension.cs @@ -6,7 +6,7 @@ using Snap.Hutao.Web.Request.Builder; namespace Snap.Hutao.Web.Hutao; -internal static class HomaPassportHttpRequestMessageBuilderExtension +internal static class HutaoPassportHttpRequestMessageBuilderExtension { public static async ValueTask TrySetTokenAsync(this HttpRequestMessageBuilder builder, HutaoUserOptions hutaoUserOptions) { diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Hutao/IPInfo.cs b/src/Snap.Hutao/Snap.Hutao/Web/Hutao/IPInfo.cs deleted file mode 100644 index 3a080ea4..00000000 --- a/src/Snap.Hutao/Snap.Hutao/Web/Hutao/IPInfo.cs +++ /dev/null @@ -1,24 +0,0 @@ -namespace Snap.Hutao.Web.Hutao; - -internal sealed class IPInfo -{ - public IPInfo() - { - } - - [JsonConstructor] - public IPInfo(string ip, string division) - { - Ip = ip; - Division = division; - } - - public string Ip { get; set; } = "Unknown"; - - public string Division { get; set; } = "Unknown"; - - public override string ToString() - { - return SH.FormatViewPageSettingDeviceIpDescription(Ip, Division); - } -} diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Hutao/IPInformation.cs b/src/Snap.Hutao/Snap.Hutao/Web/Hutao/IPInformation.cs new file mode 100644 index 00000000..1ce1379d --- /dev/null +++ b/src/Snap.Hutao/Snap.Hutao/Web/Hutao/IPInformation.cs @@ -0,0 +1,24 @@ +// Copyright (c) DGP Studio. All rights reserved. +// Licensed under the MIT license. + +namespace Snap.Hutao.Web.Hutao; + +internal sealed class IPInformation +{ + public static IPInformation Default { get; } = new() + { + Ip = "Unknown", + Division = "Unknown" + }; + + [JsonPropertyName("ip")] + public string Ip { get; set; } = default!; + + [JsonPropertyName("division")] + public string Division { get; set; } = default!; + + public override string ToString() + { + return SH.FormatViewPageSettingDeviceIpDescription(Ip, Division); + } +} \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Hutao/Log/HomaLogUploadClient.cs b/src/Snap.Hutao/Snap.Hutao/Web/Hutao/Log/HutaoLogUploadClient.cs similarity index 93% rename from src/Snap.Hutao/Snap.Hutao/Web/Hutao/Log/HomaLogUploadClient.cs rename to src/Snap.Hutao/Snap.Hutao/Web/Hutao/Log/HutaoLogUploadClient.cs index 30d110e4..6f198105 100644 --- a/src/Snap.Hutao/Snap.Hutao/Web/Hutao/Log/HomaLogUploadClient.cs +++ b/src/Snap.Hutao/Snap.Hutao/Web/Hutao/Log/HutaoLogUploadClient.cs @@ -16,10 +16,10 @@ namespace Snap.Hutao.Web.Hutao.Log; [HighQuality] [ConstructorGenerated(ResolveHttpClient = true)] [HttpClient(HttpClientConfiguration.Default)] -internal sealed partial class HomaLogUploadClient +internal sealed partial class HutaoLogUploadClient { private readonly IHttpRequestMessageBuilderFactory httpRequestMessageBuilderFactory; - private readonly ILogger logger; + private readonly ILogger logger; private readonly RuntimeOptions runtimeOptions; private readonly HttpClient httpClient; diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Hutao/SpiralAbyss/HomaSpiralAbyssClient.cs b/src/Snap.Hutao/Snap.Hutao/Web/Hutao/SpiralAbyss/HutaoSpiralAbyssClient.cs similarity index 98% rename from src/Snap.Hutao/Snap.Hutao/Web/Hutao/SpiralAbyss/HomaSpiralAbyssClient.cs rename to src/Snap.Hutao/Snap.Hutao/Web/Hutao/SpiralAbyss/HutaoSpiralAbyssClient.cs index d4841cd1..5283549c 100644 --- a/src/Snap.Hutao/Snap.Hutao/Web/Hutao/SpiralAbyss/HomaSpiralAbyssClient.cs +++ b/src/Snap.Hutao/Snap.Hutao/Web/Hutao/SpiralAbyss/HutaoSpiralAbyssClient.cs @@ -22,10 +22,10 @@ namespace Snap.Hutao.Web.Hutao.SpiralAbyss; [HighQuality] [ConstructorGenerated(ResolveHttpClient = true)] [HttpClient(HttpClientConfiguration.Default)] -internal sealed partial class HomaSpiralAbyssClient +internal sealed partial class HutaoSpiralAbyssClient { private readonly IHttpRequestMessageBuilderFactory httpRequestMessageBuilderFactory; - private readonly ILogger logger; + private readonly ILogger logger; private readonly IServiceProvider serviceProvider; private readonly HttpClient httpClient; diff --git a/src/Snap.Hutao/Snap.Hutao/Web/HutaoEndpoints.cs b/src/Snap.Hutao/Snap.Hutao/Web/HutaoEndpoints.cs index dbf33add..faf4cd2d 100644 --- a/src/Snap.Hutao/Snap.Hutao/Web/HutaoEndpoints.cs +++ b/src/Snap.Hutao/Snap.Hutao/Web/HutaoEndpoints.cs @@ -11,7 +11,6 @@ namespace Snap.Hutao.Web; /// [HighQuality] [SuppressMessage("", "SA1201")] -[SuppressMessage("", "SA1203")] [SuppressMessage("", "SA1124")] internal static class HutaoEndpoints { @@ -23,8 +22,6 @@ internal static class HutaoEndpoints public const string AnnouncementUpload = $"{HomaSnapGenshinApi}/Service/Announcement/Upload"; - public const string Ip = $"{ApiSnapGenshin}/ip"; - public static string GachaLogCompensation(int days) { return $"{HomaSnapGenshinApi}/Service/GachaLog/Compensation?days={days}"; @@ -251,6 +248,8 @@ internal static class HutaoEndpoints } #endregion + public const string Ip = $"{ApiSnapGenshin}/ip"; + public static string Website(string path) { return $"{HomaSnapGenshinApi}/{path}";