mirror of
https://jihulab.com/DGP-Studio/Snap.Hutao.git
synced 2025-11-19 21:02:53 +08:00
fix #525
This commit is contained in:
@@ -97,13 +97,13 @@ internal static partial class IocHttpClientConfiguration
|
|||||||
switch (injectAsName)
|
switch (injectAsName)
|
||||||
{
|
{
|
||||||
case DefaultName:
|
case DefaultName:
|
||||||
lineBuilder.Append(@"DefaultConfiguration)");
|
lineBuilder.Append("DefaultConfiguration)");
|
||||||
break;
|
break;
|
||||||
case XRpcName:
|
case XRpcName:
|
||||||
lineBuilder.Append(@"XRpcConfiguration)");
|
lineBuilder.Append("XRpcConfiguration)");
|
||||||
break;
|
break;
|
||||||
case XRpc2Name:
|
case XRpc2Name:
|
||||||
lineBuilder.Append(@"XRpc2Configuration)");
|
lineBuilder.Append("XRpc2Configuration)");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new InvalidOperationException($"非法的HttpClientConfigration值: [{injectAsName}]");
|
throw new InvalidOperationException($"非法的HttpClientConfigration值: [{injectAsName}]");
|
||||||
|
|||||||
@@ -12,8 +12,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Snap.Hutao.SourceGeneration", "Snap.Hutao.SourceGeneration\Snap.Hutao.SourceGeneration.csproj", "{8B96721E-5604-47D2-9B72-06FEBAD0CE00}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Snap.Hutao.SourceGeneration", "Snap.Hutao.SourceGeneration\Snap.Hutao.SourceGeneration.csproj", "{8B96721E-5604-47D2-9B72-06FEBAD0CE00}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Snap.Hutao.Installer", "Snap.Hutao.Installer\Snap.Hutao.Installer.csproj", "{CEC01691-F65E-4874-9AE2-F571369A7631}"
|
|
||||||
EndProject
|
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
@@ -66,22 +64,6 @@ Global
|
|||||||
{8B96721E-5604-47D2-9B72-06FEBAD0CE00}.Release|x64.Build.0 = Release|x64
|
{8B96721E-5604-47D2-9B72-06FEBAD0CE00}.Release|x64.Build.0 = Release|x64
|
||||||
{8B96721E-5604-47D2-9B72-06FEBAD0CE00}.Release|x86.ActiveCfg = Release|Any CPU
|
{8B96721E-5604-47D2-9B72-06FEBAD0CE00}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{8B96721E-5604-47D2-9B72-06FEBAD0CE00}.Release|x86.Build.0 = Release|Any CPU
|
{8B96721E-5604-47D2-9B72-06FEBAD0CE00}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Debug|Any CPU.ActiveCfg = Debug|x64
|
|
||||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Debug|Any CPU.Build.0 = Debug|x64
|
|
||||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Debug|arm64.ActiveCfg = Debug|Any CPU
|
|
||||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Debug|arm64.Build.0 = Debug|Any CPU
|
|
||||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Release|arm64.ActiveCfg = Release|Any CPU
|
|
||||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Release|arm64.Build.0 = Release|Any CPU
|
|
||||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Release|x64.Build.0 = Release|x64
|
|
||||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
using CommunityToolkit.WinUI.UI;
|
using CommunityToolkit.WinUI.UI;
|
||||||
using CommunityToolkit.WinUI.UI.Animations;
|
using CommunityToolkit.WinUI.UI.Animations;
|
||||||
using Microsoft.UI.Composition;
|
using Microsoft.UI.Composition;
|
||||||
using System.Diagnostics.Contracts;
|
|
||||||
using System.Numerics;
|
using System.Numerics;
|
||||||
|
|
||||||
namespace Snap.Hutao.Control.Animation;
|
namespace Snap.Hutao.Control.Animation;
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ using CommunityToolkit.WinUI.UI.Controls;
|
|||||||
using Microsoft.UI.Xaml.Media;
|
using Microsoft.UI.Xaml.Media;
|
||||||
using Microsoft.UI.Xaml.Media.Imaging;
|
using Microsoft.UI.Xaml.Media.Imaging;
|
||||||
using Snap.Hutao.Core.Caching;
|
using Snap.Hutao.Core.Caching;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
namespace Snap.Hutao.Control.Image;
|
namespace Snap.Hutao.Control.Image;
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ using Microsoft.UI.Xaml;
|
|||||||
using Microsoft.UI.Xaml.Hosting;
|
using Microsoft.UI.Xaml.Hosting;
|
||||||
using Microsoft.UI.Xaml.Media;
|
using Microsoft.UI.Xaml.Media;
|
||||||
using Snap.Hutao.Core.Caching;
|
using Snap.Hutao.Core.Caching;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using Snap.Hutao.Service.Abstraction;
|
using Snap.Hutao.Service.Abstraction;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
|
|||||||
@@ -6,9 +6,6 @@ using Microsoft.UI.Composition;
|
|||||||
using Microsoft.UI.Xaml;
|
using Microsoft.UI.Xaml;
|
||||||
using Microsoft.UI.Xaml.Media;
|
using Microsoft.UI.Xaml.Media;
|
||||||
using Snap.Hutao.Win32;
|
using Snap.Hutao.Win32;
|
||||||
using System.IO;
|
|
||||||
using Windows.Graphics.Imaging;
|
|
||||||
using Windows.Storage.Streams;
|
|
||||||
|
|
||||||
namespace Snap.Hutao.Control.Image;
|
namespace Snap.Hutao.Control.Image;
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
using Microsoft.Win32;
|
using Microsoft.Win32;
|
||||||
using Snap.Hutao.Core.Json;
|
using Snap.Hutao.Core.Json;
|
||||||
using Snap.Hutao.Core.Setting;
|
using Snap.Hutao.Core.Setting;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using Snap.Hutao.Web.Hoyolab.DynamicSecret;
|
using Snap.Hutao.Web.Hoyolab.DynamicSecret;
|
||||||
using System.Collections.Immutable;
|
using System.Collections.Immutable;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
|||||||
@@ -7,8 +7,9 @@ namespace Snap.Hutao.Core.DependencyInjection.Annotation.HttpClient;
|
|||||||
/// 指示被标注的类型可注入 HttpClient
|
/// 指示被标注的类型可注入 HttpClient
|
||||||
/// 由源生成器生成注入代码
|
/// 由源生成器生成注入代码
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[HighQuality]
|
||||||
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)]
|
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)]
|
||||||
public class HttpClientAttribute : Attribute
|
internal sealed class HttpClientAttribute : Attribute
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 构造一个新的特性
|
/// 构造一个新的特性
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ namespace Snap.Hutao.Core.DependencyInjection.Annotation.HttpClient;
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Http客户端配置
|
/// Http客户端配置
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public enum HttpClientConfigration
|
[HighQuality]
|
||||||
|
internal enum HttpClientConfigration
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 默认配置
|
/// 默认配置
|
||||||
|
|||||||
@@ -6,9 +6,15 @@ namespace Snap.Hutao.Core.DependencyInjection.Annotation.HttpClient;
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 配置首选Http消息处理器特性
|
/// 配置首选Http消息处理器特性
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[HighQuality]
|
||||||
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)]
|
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)]
|
||||||
public class PrimaryHttpMessageHandlerAttribute : Attribute
|
internal sealed class PrimaryHttpMessageHandlerAttribute : Attribute
|
||||||
{
|
{
|
||||||
/// <inheritdoc cref="System.Net.Http.HttpClientHandler.MaxConnectionsPerServer"/>
|
/// <inheritdoc cref="System.Net.Http.HttpClientHandler.MaxConnectionsPerServer"/>
|
||||||
public int MaxConnectionsPerServer { get; set; }
|
public int MaxConnectionsPerServer { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// <inheritdoc cref="System.Net.Http.HttpClientHandler.UseCookies"/>
|
||||||
|
/// </summary>
|
||||||
|
public bool UseCookies { get; set; }
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,6 @@
|
|||||||
// Licensed under the MIT license.
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
using Microsoft.Extensions.Primitives;
|
using Microsoft.Extensions.Primitives;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
|
|
||||||
namespace Snap.Hutao.Core.Json.Converter;
|
namespace Snap.Hutao.Core.Json.Converter;
|
||||||
|
|
||||||
|
|||||||
@@ -38,12 +38,12 @@ internal static class Activation
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 启动游戏启动参数
|
/// 启动游戏启动参数
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string LaunchGame = "LaunchGame";
|
public const string LaunchGame = nameof(LaunchGame);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 从剪贴板导入成就
|
/// 从剪贴板导入成就
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string ImportUIAFFromClipBoard = "ImportUIAFFromClipBoard";
|
public const string ImportUIAFFromClipBoard = nameof(ImportUIAFFromClipBoard);
|
||||||
|
|
||||||
private const string CategoryAchievement = "achievement";
|
private const string CategoryAchievement = "achievement";
|
||||||
private const string CategoryDailyNote = "dailynote";
|
private const string CategoryDailyNote = "dailynote";
|
||||||
@@ -168,7 +168,8 @@ internal static class Activation
|
|||||||
private static async Task WaitMainWindowAsync()
|
private static async Task WaitMainWindowAsync()
|
||||||
{
|
{
|
||||||
await ThreadHelper.SwitchToMainThreadAsync();
|
await ThreadHelper.SwitchToMainThreadAsync();
|
||||||
_ = Ioc.Default.GetRequiredService<MainWindow>();
|
Ioc.Default.GetRequiredService<MainWindow>().Activate();
|
||||||
|
|
||||||
await Ioc.Default.GetRequiredService<IInfoBarService>().WaitInitializationAsync().ConfigureAwait(false);
|
await Ioc.Default.GetRequiredService<IInfoBarService>().WaitInitializationAsync().ConfigureAwait(false);
|
||||||
|
|
||||||
Ioc.Default
|
Ioc.Default
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ using Microsoft.Extensions.DependencyInjection;
|
|||||||
using Microsoft.UI;
|
using Microsoft.UI;
|
||||||
using Microsoft.UI.Windowing;
|
using Microsoft.UI.Windowing;
|
||||||
using Microsoft.UI.Xaml;
|
using Microsoft.UI.Xaml;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using Snap.Hutao.Message;
|
using Snap.Hutao.Message;
|
||||||
using Snap.Hutao.Win32;
|
using Snap.Hutao.Win32;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
// Licensed under the MIT license.
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace Snap.Hutao.Extension;
|
namespace Snap.Hutao.Extension;
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
// Licensed under the MIT license.
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
using CommunityToolkit.Mvvm.Input;
|
|
||||||
using Snap.Hutao.Model.Metadata;
|
using Snap.Hutao.Model.Metadata;
|
||||||
|
|
||||||
namespace Snap.Hutao.Model.Binding.Cultivation;
|
namespace Snap.Hutao.Model.Binding.Cultivation;
|
||||||
|
|||||||
@@ -14,6 +14,11 @@ internal abstract class Wish
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string Name { get; set; } = default!;
|
public string Name { get; set; } = default!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 总数
|
||||||
|
/// </summary>
|
||||||
|
public int TotalCount { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 统计开始时间
|
/// 统计开始时间
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -47,9 +52,4 @@ internal abstract class Wish
|
|||||||
/// 统计结束时间
|
/// 统计结束时间
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal DateTimeOffset To { get; set; }
|
internal DateTimeOffset To { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 总数
|
|
||||||
/// </summary>
|
|
||||||
internal int TotalCount { get; set; }
|
|
||||||
}
|
}
|
||||||
@@ -4,8 +4,6 @@
|
|||||||
using Snap.Hutao.Model.Metadata.Converter;
|
using Snap.Hutao.Model.Metadata.Converter;
|
||||||
using Snap.Hutao.Model.Primitive;
|
using Snap.Hutao.Model.Primitive;
|
||||||
using Snap.Hutao.Web.Hutao.Model;
|
using Snap.Hutao.Web.Hutao.Model;
|
||||||
using System.Runtime.CompilerServices;
|
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace Snap.Hutao.Model.Binding.Hutao;
|
namespace Snap.Hutao.Model.Binding.Hutao;
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
using CommunityToolkit.Mvvm.Messaging;
|
using CommunityToolkit.Mvvm.Messaging;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using Snap.Hutao.Web.Hoyolab;
|
using Snap.Hutao.Web.Hoyolab;
|
||||||
using Snap.Hutao.Web.Hoyolab.Bbs.User;
|
using Snap.Hutao.Web.Hoyolab.Bbs.User;
|
||||||
using Snap.Hutao.Web.Hoyolab.Passport;
|
using Snap.Hutao.Web.Hoyolab.Passport;
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
// Copyright (c) DGP Studio. All rights reserved.
|
// Copyright (c) DGP Studio. All rights reserved.
|
||||||
// Licensed under the MIT license.
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
|
using Snap.Hutao.Model.Entity.Primitive;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
using Snap.Hutao.Model.Entity.Primitive;
|
|
||||||
|
|
||||||
namespace Snap.Hutao.Model.Entity;
|
namespace Snap.Hutao.Model.Entity;
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
// Copyright (c) DGP Studio. All rights reserved.
|
// Copyright (c) DGP Studio. All rights reserved.
|
||||||
// Licensed under the MIT license.
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using Snap.Hutao.Model.InterChange.GachaLog;
|
using Snap.Hutao.Model.InterChange.GachaLog;
|
||||||
using Snap.Hutao.Model.Metadata.Abstraction;
|
using Snap.Hutao.Model.Metadata.Abstraction;
|
||||||
using Snap.Hutao.Web.Hoyolab.Hk4e.Event.GachaInfo;
|
using Snap.Hutao.Web.Hoyolab.Hk4e.Event.GachaInfo;
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
// Copyright (c) DGP Studio. All rights reserved.
|
// Copyright (c) DGP Studio. All rights reserved.
|
||||||
// Licensed under the MIT license.
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
|
using Snap.Hutao.Model.Entity.Primitive;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
using Snap.Hutao.Model.Entity.Primitive;
|
|
||||||
|
|
||||||
namespace Snap.Hutao.Model.Entity;
|
namespace Snap.Hutao.Model.Entity;
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
// Licensed under the MIT license.
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
using Snap.Hutao.Core;
|
using Snap.Hutao.Core;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
|
|
||||||
namespace Snap.Hutao.Model.InterChange.Achievement;
|
namespace Snap.Hutao.Model.InterChange.Achievement;
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
// Licensed under the MIT license.
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
using Snap.Hutao.Core;
|
using Snap.Hutao.Core;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
|
|
||||||
namespace Snap.Hutao.Model.InterChange.GachaLog;
|
namespace Snap.Hutao.Model.InterChange.GachaLog;
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
// Licensed under the MIT license.
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
using Snap.Hutao.Core;
|
using Snap.Hutao.Core;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
|
|
||||||
namespace Snap.Hutao.Model.InterChange.Inventory;
|
namespace Snap.Hutao.Model.InterChange.Inventory;
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
// Licensed under the MIT license.
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
using Snap.Hutao.Control;
|
using Snap.Hutao.Control;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
|
|
||||||
namespace Snap.Hutao.Model.Metadata.Converter;
|
namespace Snap.Hutao.Model.Metadata.Converter;
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
// Licensed under the MIT license.
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
using Snap.Hutao.Control;
|
using Snap.Hutao.Control;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
|
|
||||||
namespace Snap.Hutao.Model.Metadata.Converter;
|
namespace Snap.Hutao.Model.Metadata.Converter;
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
// Licensed under the MIT license.
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
using Snap.Hutao.Control;
|
using Snap.Hutao.Control;
|
||||||
using Snap.Hutao.Control.Media;
|
|
||||||
using Snap.Hutao.Model.Intrinsic;
|
using Snap.Hutao.Model.Intrinsic;
|
||||||
|
|
||||||
namespace Snap.Hutao.Model.Metadata.Converter;
|
namespace Snap.Hutao.Model.Metadata.Converter;
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
// Licensed under the MIT license.
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
using Snap.Hutao.Control;
|
using Snap.Hutao.Control;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using Snap.Hutao.Model.Binding.AvatarProperty;
|
using Snap.Hutao.Model.Binding.AvatarProperty;
|
||||||
using Snap.Hutao.Model.Intrinsic;
|
using Snap.Hutao.Model.Intrinsic;
|
||||||
using Snap.Hutao.Model.Metadata.Annotation;
|
using Snap.Hutao.Model.Metadata.Annotation;
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ namespace Snap.Hutao;
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Program class
|
/// Program class
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[SuppressMessage("", "SH001")]
|
||||||
public static partial class Program
|
public static partial class Program
|
||||||
{
|
{
|
||||||
[LibraryImport("Microsoft.ui.xaml.dll")]
|
[LibraryImport("Microsoft.ui.xaml.dll")]
|
||||||
|
|||||||
@@ -1284,6 +1284,15 @@ namespace Snap.Hutao.Resource.Localization {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找类似 找不到 PowerShell 的安装目录 的本地化字符串。
|
||||||
|
/// </summary>
|
||||||
|
internal static string ServiceGameRegisteryInteropPowershellNotFound {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("ServiceGameRegisteryInteropPowershellNotFound", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 查找类似 找不到游戏配置文件 {0} 的本地化字符串。
|
/// 查找类似 找不到游戏配置文件 {0} 的本地化字符串。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -525,6 +525,9 @@
|
|||||||
<data name="ServiceGameRegisteryInteropLongPathsDisabled" xml:space="preserve">
|
<data name="ServiceGameRegisteryInteropLongPathsDisabled" xml:space="preserve">
|
||||||
<value>未开启长路径功能,无法设置注册表键值</value>
|
<value>未开启长路径功能,无法设置注册表键值</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ServiceGameRegisteryInteropPowershellNotFound" xml:space="preserve">
|
||||||
|
<value>找不到 PowerShell 的安装目录</value>
|
||||||
|
</data>
|
||||||
<data name="ServiceGameSetMultiChannelConfigFileNotFound" xml:space="preserve">
|
<data name="ServiceGameSetMultiChannelConfigFileNotFound" xml:space="preserve">
|
||||||
<value>找不到游戏配置文件 {0}</value>
|
<value>找不到游戏配置文件 {0}</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ using Microsoft.EntityFrameworkCore;
|
|||||||
using Snap.Hutao.Core.Database;
|
using Snap.Hutao.Core.Database;
|
||||||
using Snap.Hutao.Core.Diagnostics;
|
using Snap.Hutao.Core.Diagnostics;
|
||||||
using Snap.Hutao.Core.ExceptionService;
|
using Snap.Hutao.Core.ExceptionService;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using Snap.Hutao.Model.Entity.Database;
|
using Snap.Hutao.Model.Entity.Database;
|
||||||
using Snap.Hutao.Model.InterChange.Achievement;
|
using Snap.Hutao.Model.InterChange.Achievement;
|
||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
// Copyright (c) DGP Studio. All rights reserved.
|
// Copyright (c) DGP Studio. All rights reserved.
|
||||||
// Licensed under the MIT license.
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using Snap.Hutao.Core.Database;
|
using Snap.Hutao.Core.Database;
|
||||||
using Snap.Hutao.Model.Binding.User;
|
using Snap.Hutao.Model.Binding.User;
|
||||||
using Snap.Hutao.Model.Entity.Database;
|
using Snap.Hutao.Model.Entity.Database;
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ using Snap.Hutao.Web.Enka;
|
|||||||
using Snap.Hutao.Web.Enka.Model;
|
using Snap.Hutao.Web.Enka.Model;
|
||||||
using Snap.Hutao.Web.Hoyolab;
|
using Snap.Hutao.Web.Hoyolab;
|
||||||
using EnkaAvatarInfo = Snap.Hutao.Web.Enka.Model.AvatarInfo;
|
using EnkaAvatarInfo = Snap.Hutao.Web.Enka.Model.AvatarInfo;
|
||||||
using EnkaPlayerInfo = Snap.Hutao.Web.Enka.Model.PlayerInfo;
|
|
||||||
|
|
||||||
namespace Snap.Hutao.Service.AvatarInfo;
|
namespace Snap.Hutao.Service.AvatarInfo;
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
// Licensed under the MIT license.
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
using Snap.Hutao.Model.Binding.AvatarProperty;
|
using Snap.Hutao.Model.Binding.AvatarProperty;
|
||||||
using Snap.Hutao.Web.Enka.Model;
|
|
||||||
|
|
||||||
namespace Snap.Hutao.Service.AvatarInfo.Factory;
|
namespace Snap.Hutao.Service.AvatarInfo.Factory;
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
using Snap.Hutao.Model.Binding.AvatarProperty;
|
using Snap.Hutao.Model.Binding.AvatarProperty;
|
||||||
using Snap.Hutao.Model.Intrinsic;
|
using Snap.Hutao.Model.Intrinsic;
|
||||||
using Snap.Hutao.Model.Metadata.Annotation;
|
using Snap.Hutao.Model.Metadata.Annotation;
|
||||||
using Snap.Hutao.Model.Metadata.Converter;
|
|
||||||
|
|
||||||
namespace Snap.Hutao.Service.AvatarInfo.Factory;
|
namespace Snap.Hutao.Service.AvatarInfo.Factory;
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ using Microsoft.EntityFrameworkCore;
|
|||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Snap.Hutao.Core.Database;
|
using Snap.Hutao.Core.Database;
|
||||||
using Snap.Hutao.Core.ExceptionService;
|
using Snap.Hutao.Core.ExceptionService;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using Snap.Hutao.Model.Binding;
|
using Snap.Hutao.Model.Binding;
|
||||||
using Snap.Hutao.Model.Entity;
|
using Snap.Hutao.Model.Entity;
|
||||||
using Snap.Hutao.Model.Entity.Database;
|
using Snap.Hutao.Model.Entity.Database;
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ using CommunityToolkit.Mvvm.Messaging;
|
|||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Snap.Hutao.Core.Database;
|
using Snap.Hutao.Core.Database;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using Snap.Hutao.Message;
|
using Snap.Hutao.Message;
|
||||||
using Snap.Hutao.Model.Binding.User;
|
using Snap.Hutao.Model.Binding.User;
|
||||||
using Snap.Hutao.Model.Entity;
|
using Snap.Hutao.Model.Entity;
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
using Snap.Hutao.Core.Database;
|
using Snap.Hutao.Core.Database;
|
||||||
using Snap.Hutao.Core.ExceptionService;
|
using Snap.Hutao.Core.ExceptionService;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using Snap.Hutao.Model.Binding.Gacha;
|
using Snap.Hutao.Model.Binding.Gacha;
|
||||||
using Snap.Hutao.Model.Entity;
|
using Snap.Hutao.Model.Entity;
|
||||||
using Snap.Hutao.Model.Entity.Database;
|
using Snap.Hutao.Model.Entity.Database;
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ using Microsoft.EntityFrameworkCore;
|
|||||||
using Snap.Hutao.Core.Database;
|
using Snap.Hutao.Core.Database;
|
||||||
using Snap.Hutao.Core.Diagnostics;
|
using Snap.Hutao.Core.Diagnostics;
|
||||||
using Snap.Hutao.Core.ExceptionService;
|
using Snap.Hutao.Core.ExceptionService;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using Snap.Hutao.Model.Binding;
|
using Snap.Hutao.Model.Binding;
|
||||||
using Snap.Hutao.Model.Binding.Gacha;
|
using Snap.Hutao.Model.Binding.Gacha;
|
||||||
using Snap.Hutao.Model.Entity;
|
using Snap.Hutao.Model.Entity;
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ using Snap.Hutao.Core;
|
|||||||
using Snap.Hutao.Core.Database;
|
using Snap.Hutao.Core.Database;
|
||||||
using Snap.Hutao.Core.ExceptionService;
|
using Snap.Hutao.Core.ExceptionService;
|
||||||
using Snap.Hutao.Core.IO.Ini;
|
using Snap.Hutao.Core.IO.Ini;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using Snap.Hutao.Model.Binding.LaunchGame;
|
using Snap.Hutao.Model.Binding.LaunchGame;
|
||||||
using Snap.Hutao.Model.Entity;
|
using Snap.Hutao.Model.Entity;
|
||||||
using Snap.Hutao.Model.Entity.Database;
|
using Snap.Hutao.Model.Entity.Database;
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
// Copyright (c) DGP Studio. All rights reserved.
|
// Copyright (c) DGP Studio. All rights reserved.
|
||||||
// Licensed under the MIT license.
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
|
using Microsoft.Extensions.Primitives;
|
||||||
using Microsoft.Win32;
|
using Microsoft.Win32;
|
||||||
using Snap.Hutao.Core.ExceptionService;
|
using Snap.Hutao.Core.ExceptionService;
|
||||||
using Snap.Hutao.Model.Entity;
|
using Snap.Hutao.Model.Entity;
|
||||||
@@ -18,6 +19,13 @@ internal static class RegistryInterop
|
|||||||
private const string GenshinKey = @"HKEY_CURRENT_USER\Software\miHoYo\原神";
|
private const string GenshinKey = @"HKEY_CURRENT_USER\Software\miHoYo\原神";
|
||||||
private const string SdkKey = "MIHOYOSDK_ADL_PROD_CN_h3123967166";
|
private const string SdkKey = "MIHOYOSDK_ADL_PROD_CN_h3123967166";
|
||||||
|
|
||||||
|
private static string? psExecutablePath;
|
||||||
|
|
||||||
|
private static string PsExecutablePath
|
||||||
|
{
|
||||||
|
get => psExecutablePath ??= GetPowershellLocation();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 设置键值
|
/// 设置键值
|
||||||
/// 需要支持
|
/// 需要支持
|
||||||
@@ -79,4 +87,22 @@ internal static class RegistryInterop
|
|||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static string GetPowershellLocation()
|
||||||
|
{
|
||||||
|
string paths = Environment.GetEnvironmentVariable("Path")!;
|
||||||
|
|
||||||
|
foreach (StringSegment path in new StringTokenizer(paths, ';'.Enumerate().ToArray()))
|
||||||
|
{
|
||||||
|
if (path.HasValue && path.Length > 0)
|
||||||
|
{
|
||||||
|
if (path.AsSpan().IndexOf("WindowsPowerShell") > 0)
|
||||||
|
{
|
||||||
|
return Path.Combine(path.Value, "powershell.exe");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
throw ThrowHelper.RuntimeEnvironment(SH.ServiceGameRegisteryInteropPowershellNotFound, null!);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -6,7 +6,6 @@ using Microsoft.EntityFrameworkCore;
|
|||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Snap.Hutao.Core.Database;
|
using Snap.Hutao.Core.Database;
|
||||||
using Snap.Hutao.Core.ExceptionService;
|
using Snap.Hutao.Core.ExceptionService;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using Snap.Hutao.Message;
|
using Snap.Hutao.Message;
|
||||||
using Snap.Hutao.Model.Entity.Database;
|
using Snap.Hutao.Model.Entity.Database;
|
||||||
using Snap.Hutao.Web.Hoyolab;
|
using Snap.Hutao.Web.Hoyolab;
|
||||||
|
|||||||
@@ -4,9 +4,7 @@
|
|||||||
using Microsoft.UI.Xaml;
|
using Microsoft.UI.Xaml;
|
||||||
using Microsoft.UI.Xaml.Controls;
|
using Microsoft.UI.Xaml.Controls;
|
||||||
using Snap.Hutao.Control;
|
using Snap.Hutao.Control;
|
||||||
using Snap.Hutao.Model.Binding;
|
|
||||||
using Snap.Hutao.Model.Metadata.Avatar;
|
using Snap.Hutao.Model.Metadata.Avatar;
|
||||||
using System.Collections;
|
|
||||||
|
|
||||||
namespace Snap.Hutao.View.Control;
|
namespace Snap.Hutao.View.Control;
|
||||||
|
|
||||||
|
|||||||
@@ -50,9 +50,16 @@ internal sealed partial class CommunityGameRecordDialog : ContentDialog
|
|||||||
|
|
||||||
coreWebView2.SetCookie(user.CookieToken, user.Ltoken, null).SetMobileUserAgent();
|
coreWebView2.SetCookie(user.CookieToken, user.Ltoken, null).SetMobileUserAgent();
|
||||||
jsInterface = new(coreWebView2, scope.ServiceProvider);
|
jsInterface = new(coreWebView2, scope.ServiceProvider);
|
||||||
|
jsInterface.ClosePageRequested += OnClosePageRequested;
|
||||||
|
|
||||||
coreWebView2.Navigate("https://webstatic.mihoyo.com/app/community-game-records/index.html");
|
coreWebView2.Navigate("https://webstatic.mihoyo.com/app/community-game-records/index.html");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnClosePageRequested()
|
||||||
|
{
|
||||||
|
ThreadHelper.InvokeOnMainThread(Hide);
|
||||||
|
}
|
||||||
|
|
||||||
private void OnContentDialogClosed(ContentDialog sender, ContentDialogClosedEventArgs args)
|
private void OnContentDialogClosed(ContentDialog sender, ContentDialogClosedEventArgs args)
|
||||||
{
|
{
|
||||||
jsInterface = null;
|
jsInterface = null;
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
using Microsoft.UI.Xaml;
|
using Microsoft.UI.Xaml;
|
||||||
using Microsoft.UI.Xaml.Controls;
|
using Microsoft.UI.Xaml.Controls;
|
||||||
using Snap.Hutao.Control;
|
using Snap.Hutao.Control;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using Snap.Hutao.Model.Binding;
|
using Snap.Hutao.Model.Binding;
|
||||||
using Snap.Hutao.Service.GachaLog;
|
using Snap.Hutao.Service.GachaLog;
|
||||||
using Snap.Hutao.View.Control;
|
using Snap.Hutao.View.Control;
|
||||||
|
|||||||
@@ -9,8 +9,10 @@ namespace Snap.Hutao.View.Helper;
|
|||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 导航项帮助类
|
/// 导航项帮助类
|
||||||
|
/// This type can't be internal
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HighQuality]
|
[HighQuality]
|
||||||
|
[SuppressMessage("", "SH001")]
|
||||||
public sealed class NavHelper
|
public sealed class NavHelper
|
||||||
{
|
{
|
||||||
private static readonly DependencyProperty NavigateToProperty = Property<NavHelper>.Attach<Type>("NavigateTo");
|
private static readonly DependencyProperty NavigateToProperty = Property<NavHelper>.Attach<Type>("NavigateTo");
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
// Copyright (c) DGP Studio. All rights reserved.
|
// Copyright (c) DGP Studio. All rights reserved.
|
||||||
// Licensed under the MIT license.
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
using Microsoft.UI.Xaml.Navigation;
|
|
||||||
using Snap.Hutao.Control;
|
using Snap.Hutao.Control;
|
||||||
using Snap.Hutao.Service.Navigation;
|
|
||||||
using Snap.Hutao.ViewModel;
|
using Snap.Hutao.ViewModel;
|
||||||
|
|
||||||
namespace Snap.Hutao.View.Page;
|
namespace Snap.Hutao.View.Page;
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ using Microsoft.UI.Xaml.Controls;
|
|||||||
using Snap.Hutao.Core.Database;
|
using Snap.Hutao.Core.Database;
|
||||||
using Snap.Hutao.Core.IO;
|
using Snap.Hutao.Core.IO;
|
||||||
using Snap.Hutao.Core.LifeCycle;
|
using Snap.Hutao.Core.LifeCycle;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using Snap.Hutao.Factory.Abstraction;
|
using Snap.Hutao.Factory.Abstraction;
|
||||||
using Snap.Hutao.Model.InterChange.Achievement;
|
using Snap.Hutao.Model.InterChange.Achievement;
|
||||||
using Snap.Hutao.Service.Abstraction;
|
using Snap.Hutao.Service.Abstraction;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
// Licensed under the MIT license.
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
using CommunityToolkit.Mvvm.Input;
|
using CommunityToolkit.Mvvm.Input;
|
||||||
|
using CommunityToolkit.Mvvm.Messaging;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.UI.Xaml;
|
using Microsoft.UI.Xaml;
|
||||||
using Microsoft.UI.Xaml.Controls;
|
using Microsoft.UI.Xaml.Controls;
|
||||||
@@ -9,8 +10,8 @@ using Microsoft.UI.Xaml.Media.Imaging;
|
|||||||
using Snap.Hutao.Control.Extension;
|
using Snap.Hutao.Control.Extension;
|
||||||
using Snap.Hutao.Control.Media;
|
using Snap.Hutao.Control.Media;
|
||||||
using Snap.Hutao.Core.IO.DataTransfer;
|
using Snap.Hutao.Core.IO.DataTransfer;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using Snap.Hutao.Factory.Abstraction;
|
using Snap.Hutao.Factory.Abstraction;
|
||||||
|
using Snap.Hutao.Message;
|
||||||
using Snap.Hutao.Model.Binding.AvatarProperty;
|
using Snap.Hutao.Model.Binding.AvatarProperty;
|
||||||
using Snap.Hutao.Model.Binding.User;
|
using Snap.Hutao.Model.Binding.User;
|
||||||
using Snap.Hutao.Model.Entity.Primitive;
|
using Snap.Hutao.Model.Entity.Primitive;
|
||||||
@@ -38,7 +39,7 @@ namespace Snap.Hutao.ViewModel;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[HighQuality]
|
[HighQuality]
|
||||||
[Injection(InjectAs.Scoped)]
|
[Injection(InjectAs.Scoped)]
|
||||||
internal sealed class AvatarPropertyViewModel : Abstraction.ViewModel
|
internal sealed class AvatarPropertyViewModel : Abstraction.ViewModel, IRecipient<UserChangedMessage>
|
||||||
{
|
{
|
||||||
private readonly IServiceProvider serviceProvider;
|
private readonly IServiceProvider serviceProvider;
|
||||||
private readonly IUserService userService;
|
private readonly IUserService userService;
|
||||||
@@ -60,8 +61,10 @@ internal sealed class AvatarPropertyViewModel : Abstraction.ViewModel
|
|||||||
RefreshFromEnkaApiCommand = new AsyncRelayCommand(RefreshByEnkaApiAsync);
|
RefreshFromEnkaApiCommand = new AsyncRelayCommand(RefreshByEnkaApiAsync);
|
||||||
RefreshFromHoyolabGameRecordCommand = new AsyncRelayCommand(RefreshByHoyolabGameRecordAsync);
|
RefreshFromHoyolabGameRecordCommand = new AsyncRelayCommand(RefreshByHoyolabGameRecordAsync);
|
||||||
RefreshFromHoyolabCalculateCommand = new AsyncRelayCommand(RefreshByHoyolabCalculateAsync);
|
RefreshFromHoyolabCalculateCommand = new AsyncRelayCommand(RefreshByHoyolabCalculateAsync);
|
||||||
ExportAsImageCommand = new AsyncRelayCommand<UIElement>(ExportAsImageAsync);
|
ExportAsImageCommand = new AsyncRelayCommand<FrameworkElement>(ExportAsImageAsync);
|
||||||
CultivateCommand = new AsyncRelayCommand<AvatarView>(CultivateAsync);
|
CultivateCommand = new AsyncRelayCommand<AvatarView>(CultivateAsync);
|
||||||
|
|
||||||
|
serviceProvider.GetRequiredService<IMessenger>().Register(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -104,6 +107,15 @@ internal sealed class AvatarPropertyViewModel : Abstraction.ViewModel
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public ICommand CultivateCommand { get; }
|
public ICommand CultivateCommand { get; }
|
||||||
|
|
||||||
|
/// <inheritdoc/>
|
||||||
|
public void Receive(UserChangedMessage message)
|
||||||
|
{
|
||||||
|
if (UserAndUid.TryFromUser(userService.Current, out UserAndUid? userAndUid))
|
||||||
|
{
|
||||||
|
RefreshCoreAsync(userAndUid, RefreshOption.None, CancellationToken).SafeForget();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private Task OpenUIAsync()
|
private Task OpenUIAsync()
|
||||||
{
|
{
|
||||||
if (UserAndUid.TryFromUser(userService.Current, out UserAndUid? userAndUid))
|
if (UserAndUid.TryFromUser(userService.Current, out UserAndUid? userAndUid))
|
||||||
@@ -255,9 +267,9 @@ internal sealed class AvatarPropertyViewModel : Abstraction.ViewModel
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task ExportAsImageAsync(UIElement? element)
|
private async Task ExportAsImageAsync(FrameworkElement? element)
|
||||||
{
|
{
|
||||||
if (element != null)
|
if (element != null && element.IsLoaded)
|
||||||
{
|
{
|
||||||
RenderTargetBitmap bitmap = new();
|
RenderTargetBitmap bitmap = new();
|
||||||
await bitmap.RenderAsync(element);
|
await bitmap.RenderAsync(element);
|
||||||
|
|||||||
@@ -2,10 +2,7 @@
|
|||||||
// Licensed under the MIT license.
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
using CommunityToolkit.Mvvm.Input;
|
using CommunityToolkit.Mvvm.Input;
|
||||||
using CommunityToolkit.WinUI.UI;
|
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using Snap.Hutao.Model;
|
|
||||||
using Snap.Hutao.Model.Binding.Cultivation;
|
using Snap.Hutao.Model.Binding.Cultivation;
|
||||||
using Snap.Hutao.Model.Entity;
|
using Snap.Hutao.Model.Entity;
|
||||||
using Snap.Hutao.Service.Abstraction;
|
using Snap.Hutao.Service.Abstraction;
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ using Microsoft.UI.Xaml.Controls;
|
|||||||
using Snap.Hutao.Control.Extension;
|
using Snap.Hutao.Control.Extension;
|
||||||
using Snap.Hutao.Core.ExceptionService;
|
using Snap.Hutao.Core.ExceptionService;
|
||||||
using Snap.Hutao.Core.IO;
|
using Snap.Hutao.Core.IO;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using Snap.Hutao.Factory.Abstraction;
|
using Snap.Hutao.Factory.Abstraction;
|
||||||
using Snap.Hutao.Model.Binding.Gacha;
|
using Snap.Hutao.Model.Binding.Gacha;
|
||||||
using Snap.Hutao.Model.Entity;
|
using Snap.Hutao.Model.Entity;
|
||||||
|
|||||||
@@ -5,11 +5,7 @@ using CommunityToolkit.Mvvm.Input;
|
|||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Snap.Hutao.Core.IO;
|
using Snap.Hutao.Core.IO;
|
||||||
using Snap.Hutao.Core.IO.Bits;
|
using Snap.Hutao.Core.IO.Bits;
|
||||||
using Snap.Hutao.Service.User;
|
|
||||||
using Snap.Hutao.View.Dialog;
|
using Snap.Hutao.View.Dialog;
|
||||||
using Snap.Hutao.Web.Hoyolab;
|
|
||||||
using Snap.Hutao.Web.Hoyolab.Passport;
|
|
||||||
using Snap.Hutao.Web.Response;
|
|
||||||
|
|
||||||
namespace Snap.Hutao.ViewModel;
|
namespace Snap.Hutao.ViewModel;
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ using CommunityToolkit.Mvvm.Input;
|
|||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Snap.Hutao.Core.ExceptionService;
|
using Snap.Hutao.Core.ExceptionService;
|
||||||
using Snap.Hutao.Core.IO.DataTransfer;
|
using Snap.Hutao.Core.IO.DataTransfer;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using Snap.Hutao.Model.Binding.User;
|
using Snap.Hutao.Model.Binding.User;
|
||||||
using Snap.Hutao.Service.Abstraction;
|
using Snap.Hutao.Service.Abstraction;
|
||||||
using Snap.Hutao.Service.Navigation;
|
using Snap.Hutao.Service.Navigation;
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ using Snap.Hutao.Core.Caching;
|
|||||||
using Snap.Hutao.Core.IO;
|
using Snap.Hutao.Core.IO;
|
||||||
using Snap.Hutao.Core.IO.Bits;
|
using Snap.Hutao.Core.IO.Bits;
|
||||||
using Snap.Hutao.Core.Setting;
|
using Snap.Hutao.Core.Setting;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.IO.Compression;
|
using System.IO.Compression;
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ using CommunityToolkit.Mvvm.Input;
|
|||||||
using CommunityToolkit.WinUI.UI;
|
using CommunityToolkit.WinUI.UI;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Primitives;
|
using Microsoft.Extensions.Primitives;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using Snap.Hutao.Model.Binding.Hutao;
|
using Snap.Hutao.Model.Binding.Hutao;
|
||||||
using Snap.Hutao.Model.Entity.Primitive;
|
using Snap.Hutao.Model.Entity.Primitive;
|
||||||
using Snap.Hutao.Model.Intrinsic.Immutable;
|
using Snap.Hutao.Model.Intrinsic.Immutable;
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ using CommunityToolkit.Mvvm.Input;
|
|||||||
using CommunityToolkit.WinUI.UI;
|
using CommunityToolkit.WinUI.UI;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Primitives;
|
using Microsoft.Extensions.Primitives;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using Snap.Hutao.Model.Binding.Hutao;
|
using Snap.Hutao.Model.Binding.Hutao;
|
||||||
using Snap.Hutao.Model.Entity.Primitive;
|
using Snap.Hutao.Model.Entity.Primitive;
|
||||||
using Snap.Hutao.Model.Intrinsic.Immutable;
|
using Snap.Hutao.Model.Intrinsic.Immutable;
|
||||||
|
|||||||
@@ -3,16 +3,12 @@
|
|||||||
|
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Web.WebView2.Core;
|
using Microsoft.Web.WebView2.Core;
|
||||||
using Snap.Hutao.Core.Database;
|
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using Snap.Hutao.Model.Binding.User;
|
using Snap.Hutao.Model.Binding.User;
|
||||||
using Snap.Hutao.Model.Entity.Database;
|
|
||||||
using Snap.Hutao.Service.User;
|
using Snap.Hutao.Service.User;
|
||||||
using Snap.Hutao.Web.Bridge.Model;
|
using Snap.Hutao.Web.Bridge.Model;
|
||||||
using Snap.Hutao.Web.Hoyolab;
|
using Snap.Hutao.Web.Hoyolab;
|
||||||
using Snap.Hutao.Web.Hoyolab.Bbs.User;
|
using Snap.Hutao.Web.Hoyolab.Bbs.User;
|
||||||
using Snap.Hutao.Web.Hoyolab.DynamicSecret;
|
using Snap.Hutao.Web.Hoyolab.DynamicSecret;
|
||||||
using Snap.Hutao.Web.Hoyolab.Passport;
|
|
||||||
using Snap.Hutao.Web.Hoyolab.Takumi.Auth;
|
using Snap.Hutao.Web.Hoyolab.Takumi.Auth;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ internal sealed class TypeValue
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="type">类型</param>
|
/// <param name="type">类型</param>
|
||||||
/// <param name="value">值</param>
|
/// <param name="value">值</param>
|
||||||
public TypeValue(PlayerProperty type,string? value)
|
public TypeValue(PlayerProperty type, string? value)
|
||||||
{
|
{
|
||||||
Type = type;
|
Type = type;
|
||||||
Value = value;
|
Value = value;
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ namespace Snap.Hutao.Web.Hoyolab;
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 封装了米哈游的Cookie
|
/// 封装了米哈游的Cookie
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[HighQuality]
|
||||||
internal sealed partial class Cookie
|
internal sealed partial class Cookie
|
||||||
{
|
{
|
||||||
private readonly SortedDictionary<string, string> inner;
|
private readonly SortedDictionary<string, string> inner;
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
// Copyright (c) DGP Studio. All rights reserved.
|
// Copyright (c) DGP Studio. All rights reserved.
|
||||||
// Licensed under the MIT license.
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using Snap.Hutao.Web.Request;
|
using Snap.Hutao.Web.Request;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
@@ -12,7 +11,7 @@ namespace Snap.Hutao.Web.Hoyolab;
|
|||||||
/// Hoyolab HttpClient 拓展
|
/// Hoyolab HttpClient 拓展
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[HighQuality]
|
[HighQuality]
|
||||||
internal static class HoyolabHttpClientExtensions
|
internal static class HoyolabHttpClientExtension
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 设置用户的 Cookie
|
/// 设置用户的 Cookie
|
||||||
@@ -2,7 +2,6 @@
|
|||||||
// Licensed under the MIT license.
|
// Licensed under the MIT license.
|
||||||
|
|
||||||
using Snap.Hutao.Core.DependencyInjection.Annotation.HttpClient;
|
using Snap.Hutao.Core.DependencyInjection.Annotation.HttpClient;
|
||||||
using Snap.Hutao.Extension;
|
|
||||||
using Snap.Hutao.Model.Entity;
|
using Snap.Hutao.Model.Entity;
|
||||||
using Snap.Hutao.Web.Hoyolab.Annotation;
|
using Snap.Hutao.Web.Hoyolab.Annotation;
|
||||||
using Snap.Hutao.Web.Hoyolab.DynamicSecret;
|
using Snap.Hutao.Web.Hoyolab.DynamicSecret;
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ namespace Snap.Hutao.Web.Hoyolab.Takumi.GameRecord;
|
|||||||
[HighQuality]
|
[HighQuality]
|
||||||
[UseDynamicSecret]
|
[UseDynamicSecret]
|
||||||
[HttpClient(HttpClientConfigration.XRpc)]
|
[HttpClient(HttpClientConfigration.XRpc)]
|
||||||
|
[PrimaryHttpMessageHandler(UseCookies = false)]
|
||||||
internal sealed class GameRecordClient
|
internal sealed class GameRecordClient
|
||||||
{
|
{
|
||||||
private readonly HttpClient httpClient;
|
private readonly HttpClient httpClient;
|
||||||
@@ -100,11 +101,11 @@ internal sealed class GameRecordClient
|
|||||||
/// <param name="schedule">1:当期,2:上期</param>
|
/// <param name="schedule">1:当期,2:上期</param>
|
||||||
/// <param name="token">取消令牌</param>
|
/// <param name="token">取消令牌</param>
|
||||||
/// <returns>深渊信息</returns>
|
/// <returns>深渊信息</returns>
|
||||||
[ApiInformation(Cookie = CookieType.Ltoken, Salt = SaltType.X4)]
|
[ApiInformation(Cookie = CookieType.Cookie, Salt = SaltType.X4)]
|
||||||
public async Task<Response<SpiralAbyss.SpiralAbyss>> GetSpiralAbyssAsync(UserAndUid userAndUid, SpiralAbyssSchedule schedule, CancellationToken token = default)
|
public async Task<Response<SpiralAbyss.SpiralAbyss>> GetSpiralAbyssAsync(UserAndUid userAndUid, SpiralAbyssSchedule schedule, CancellationToken token = default)
|
||||||
{
|
{
|
||||||
Response<SpiralAbyss.SpiralAbyss>? resp = await httpClient
|
Response<SpiralAbyss.SpiralAbyss>? resp = await httpClient
|
||||||
.SetUser(userAndUid.User, CookieType.Ltoken)
|
.SetUser(userAndUid.User, CookieType.Cookie)
|
||||||
.UseDynamicSecret(DynamicSecretVersion.Gen2, SaltType.X4, false)
|
.UseDynamicSecret(DynamicSecretVersion.Gen2, SaltType.X4, false)
|
||||||
.TryCatchGetFromJsonAsync<Response<SpiralAbyss.SpiralAbyss>>(ApiEndpoints.GameRecordSpiralAbyss(schedule, userAndUid.Uid), options, logger, token)
|
.TryCatchGetFromJsonAsync<Response<SpiralAbyss.SpiralAbyss>>(ApiEndpoints.GameRecordSpiralAbyss(schedule, userAndUid.Uid), options, logger, token)
|
||||||
.ConfigureAwait(false);
|
.ConfigureAwait(false);
|
||||||
|
|||||||
Reference in New Issue
Block a user