diff --git a/SteamToolsV2+.sln b/SteamToolsV2+.sln index 5d21e136b..8fb4f7bb6 100644 --- a/SteamToolsV2+.sln +++ b/SteamToolsV2+.sln @@ -122,6 +122,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bin", "src\ST.Client.Deskto EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Tools.AndroidResourceLink", "src\ST.Tools.AndroidResourceLink\ST.Tools.AndroidResourceLink.csproj", "{9A8D2254-9B2B-4B92-8498-43A73BB9A410}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ArchiSteamFarm", "references\ArchiSteamFarm\ArchiSteamFarm\ArchiSteamFarm.csproj", "{C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -1516,6 +1518,34 @@ Global {9A8D2254-9B2B-4B92-8498-43A73BB9A410}.Release|x64.Build.0 = Release|Any CPU {9A8D2254-9B2B-4B92-8498-43A73BB9A410}.Release|x86.ActiveCfg = Release|Any CPU {9A8D2254-9B2B-4B92-8498-43A73BB9A410}.Release|x86.Build.0 = Release|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Debug|ARM.ActiveCfg = Debug|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Debug|ARM.Build.0 = Debug|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Debug|ARM64.Build.0 = Debug|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Debug|iPhone.Build.0 = Debug|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Debug|x64.ActiveCfg = Debug|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Debug|x64.Build.0 = Debug|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Debug|x86.ActiveCfg = Debug|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Debug|x86.Build.0 = Debug|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Release|Any CPU.Build.0 = Release|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Release|ARM.ActiveCfg = Release|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Release|ARM.Build.0 = Release|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Release|ARM64.ActiveCfg = Release|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Release|ARM64.Build.0 = Release|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Release|iPhone.ActiveCfg = Release|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Release|iPhone.Build.0 = Release|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Release|x64.ActiveCfg = Release|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Release|x64.Build.0 = Release|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Release|x86.ActiveCfg = Release|Any CPU + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1563,6 +1593,7 @@ Global {AB473106-1E41-4AFC-91B8-3A7ED331A9E9} = {1B889C56-157A-4493-85F2-76366282B002} {AC8E40AE-CED2-415A-BC47-A68F3F14CB09} = {1B889C56-157A-4493-85F2-76366282B002} {9A8D2254-9B2B-4B92-8498-43A73BB9A410} = {E448F863-4C9D-47A4-BC4A-4A1381B54DA4} + {C633A5D4-DD87-4DEE-99F2-7F0C07154B0A} = {673FF8CD-9E85-4FA1-ABFC-D1149675E138} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {9313F2B4-10DA-43AA-A481-CAA7571C740C} diff --git a/referencesArchiSteamFarm b/referencesArchiSteamFarm deleted file mode 160000 index 2510bae19..000000000 --- a/referencesArchiSteamFarm +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 2510bae19f77c0f0cfd871598d7c550264858d36 diff --git a/src/ST.Client.Desktop.Avalonia/Application/UI/Styles/Controls/TextBox.xaml b/src/ST.Client.Desktop.Avalonia/Application/UI/Styles/Controls/TextBox.xaml index c7ac6e412..e9607c3b3 100644 --- a/src/ST.Client.Desktop.Avalonia/Application/UI/Styles/Controls/TextBox.xaml +++ b/src/ST.Client.Desktop.Avalonia/Application/UI/Styles/Controls/TextBox.xaml @@ -69,6 +69,7 @@ Foreground="{DynamicResource SystemAccentColor}" FontSize="{TemplateBinding FontSize}" Text="{TemplateBinding Watermark}" + Margin="0 0 0 10" DockPanel.Dock="Top" /> diff --git a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/ArchiSteamFarmPlusPage.axaml b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/ArchiSteamFarmPlusPage.axaml index 6d8d9ceb7..ad72ff4f4 100644 --- a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/ArchiSteamFarmPlusPage.axaml +++ b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/ArchiSteamFarmPlusPage.axaml @@ -55,9 +55,17 @@ + + + + + + + + @@ -79,11 +87,11 @@ - - - - + + + + - + @@ -100,8 +108,12 @@ - - + + + + + @@ -123,7 +135,7 @@ - + diff --git a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/ArchiSteamFarmPlusPage.axaml.cs b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/ArchiSteamFarmPlusPage.axaml.cs index 0f0bdf1e2..d426ade18 100644 --- a/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/ArchiSteamFarmPlusPage.axaml.cs +++ b/src/ST.Client.Desktop.Avalonia/Application/UI/Views/Pages/ArchiSteamFarmPlusPage.axaml.cs @@ -5,6 +5,7 @@ using System.Application.UI.ViewModels; using System.Collections.Generic; using System.Properties; using System.Application.Services; +using System.IO; namespace System.Application.UI.Views.Pages { @@ -44,6 +45,12 @@ namespace System.Application.UI.Views.Pages Title = ThisAssembly.AssemblyTrademark, AllowMultiple = false, }; + + if (IArchiSteamFarmService.Instance.IsArchiSteamFarmExists) + { + fileDialog.Directory = Path.GetDirectoryName(IArchiSteamFarmService.Instance.ArchiSteamFarmExePath); + } + var result = await fileDialog.ShowAsync(IDesktopAvaloniaAppService.Instance.MainWindow); if (result.Any_Nullable()) { diff --git a/src/ST.Client.Desktop/Extensions/TaskExtensions.cs b/src/ST.Client.Desktop/Extensions/TaskExtensions.cs index 782677600..af10963d5 100644 --- a/src/ST.Client.Desktop/Extensions/TaskExtensions.cs +++ b/src/ST.Client.Desktop/Extensions/TaskExtensions.cs @@ -13,9 +13,10 @@ namespace System [CallerFilePath] string callerFilePath = "", [CallerLineNumber] int callerLineNumber = 0) { - return task.ContinueWith( - x => TaskLog.Raise(new TaskLog(callerMemberName, callerFilePath, callerLineNumber, x.Exception)), - TaskContinuationOptions.OnlyOnFaulted); + task.ContinueWith( + x => TaskLog.Raise(new TaskLog(callerMemberName, callerFilePath, callerLineNumber, x.Exception)), + TaskContinuationOptions.OnlyOnFaulted).ConfigureAwait(false); + return task; } public static void ForgetAndDispose( @@ -26,7 +27,7 @@ namespace System { task.ContinueWith( x => TaskLog.Raise(new TaskLog(callerMemberName, callerFilePath, callerLineNumber, x.Exception)), - TaskContinuationOptions.OnlyOnFaulted).ContinueWith(s=>s.Dispose()); + TaskContinuationOptions.OnlyOnFaulted).ContinueWith(s=>s.Dispose()).ConfigureAwait(false); } public static Task WhenAll(this IEnumerable tasks) diff --git a/src/ST.Client.Desktop/Services/Implementation/ArchiSteamFarmServiceImpl.cs b/src/ST.Client.Desktop/Services/Implementation/ArchiSteamFarmServiceImpl.cs index d2827edfb..211beb6a9 100644 --- a/src/ST.Client.Desktop/Services/Implementation/ArchiSteamFarmServiceImpl.cs +++ b/src/ST.Client.Desktop/Services/Implementation/ArchiSteamFarmServiceImpl.cs @@ -5,7 +5,10 @@ using System.Application.UI.Resx; using System.Diagnostics; using System.IO; using System.Linq; +using System.Net.Http; +using System.Net.Http.Headers; using System.Text; +using System.Threading; using System.Threading.Tasks; namespace System.Application.Services.Implementation @@ -96,6 +99,14 @@ namespace System.Application.Services.Implementation //IPC默认地址 IPCUrl = "http://127.0.0.1:1242"; } + + this.WhenAnyValue(x => x.ArchiSteamFarmExePath) + .Subscribe(_ => + { + this.RaisePropertyChanged(nameof(IsArchiSteamFarmExists)); + this.RaisePropertyChanged(nameof(ArchiSteamFarmVersion)); + this.RaisePropertyChanged(nameof(ArchiSteamFarmConfigDirPath)); + }); } public void SetArchiSteamFarmExePath(string path) @@ -174,11 +185,11 @@ namespace System.Application.Services.Implementation } } - private void IPCCommand(string command) + private async void IPCCommand(string command) { if (IsArchiSteamFarmRuning && !string.IsNullOrEmpty(command)) { - //httpService.GetAsync(""); + } } @@ -247,6 +258,10 @@ namespace System.Application.Services.Implementation { binaryAsset = releaseModel.assets.FirstOrDefault(asset => !string.IsNullOrEmpty(asset.name) && asset.name!.Equals(targetFile, StringComparison.OrdinalIgnoreCase)); } + else + { + return; + } } else { diff --git a/src/ST.Client.Desktop/UI/Resx/AppResources.Designer.cs b/src/ST.Client.Desktop/UI/Resx/AppResources.Designer.cs index 2395f2469..102900fc8 100644 --- a/src/ST.Client.Desktop/UI/Resx/AppResources.Designer.cs +++ b/src/ST.Client.Desktop/UI/Resx/AppResources.Designer.cs @@ -557,6 +557,15 @@ namespace System.Application.UI.Resx { } } + /// + /// 查找类似 网络修复 的本地化字符串。 + /// + public static string CommunityFix_NetworkFix { + get { + return ResourceManager.GetString("CommunityFix_NetworkFix", resourceCulture); + } + } + /// /// 查找类似 没有选择任何加速服务 的本地化字符串。 /// diff --git a/src/ST.Client.Desktop/UI/Resx/AppResources.resx b/src/ST.Client.Desktop/UI/Resx/AppResources.resx index f56db612c..ea6f20ae1 100644 --- a/src/ST.Client.Desktop/UI/Resx/AppResources.resx +++ b/src/ST.Client.Desktop/UI/Resx/AppResources.resx @@ -285,6 +285,9 @@ 加速设置 + + 网络修复 + 没有选择任何加速服务 diff --git a/src/ST.Client.Desktop/UI/ViewModels/Pages/CommunityProxyPageViewModel.cs b/src/ST.Client.Desktop/UI/ViewModels/Pages/CommunityProxyPageViewModel.cs index 3c3835143..a859a630d 100644 --- a/src/ST.Client.Desktop/UI/ViewModels/Pages/CommunityProxyPageViewModel.cs +++ b/src/ST.Client.Desktop/UI/ViewModels/Pages/CommunityProxyPageViewModel.cs @@ -27,6 +27,7 @@ namespace System.Application.UI.ViewModels public ReactiveCommand DeleteCertificateCommand { get; } public ReactiveCommand OpenCertificateDirCommand { get; } public ReactiveCommand EditHostsFileCommand { get; } + public ReactiveCommand NetworkFixCommand { get; } public ReactiveCommand AutoRunProxyCommand { get; } //public ReactiveCommand EnableProxyScriptCommand { get; } @@ -42,6 +43,7 @@ namespace System.Application.UI.ViewModels SetupCertificateCommand = ReactiveCommand.Create(SetupCertificate_OnClick); DeleteCertificateCommand = ReactiveCommand.Create(DeleteCertificate_OnClick); EditHostsFileCommand = ReactiveCommand.Create(EditHostsFile_OnClick); + NetworkFixCommand = ReactiveCommand.Create(EditHostsFile_OnClick); AutoRunProxyCommand = ReactiveCommand.Create(() => { AutoRunProxy?.CheckmarkChange(ProxySettings.ProgramStartupRunProxy.Value = !ProxySettings.ProgramStartupRunProxy.Value); @@ -79,7 +81,9 @@ namespace System.Application.UI.ViewModels new MenuItemViewModel(nameof(AppResources.CommunityFix_OpenCertificateDir)){ IconKey="FolderOpenDrawing", Command=OpenCertificateDirCommand }, } }, + new MenuItemViewModel (), new MenuItemViewModel (nameof(AppResources.CommunityFix_EditHostsFile)){ Command=EditHostsFileCommand,IconKey="DocumentEditDrawing" }, + //new MenuItemViewModel (nameof(AppResources.CommunityFix_NetworkFix)){ Command=NetworkFixCommand }, // } //}, };