Compare commits

...
9 Commits
Author SHA1 Message Date
RMBGAME 6b299e6356 fix #1713 2022-07-23 21:35:02 +08:00
Aigio Liu 85a04f3262 fix ASF log level 2022-07-23 21:28:05 +08:00
Aigio Liu 5c247cade6 Bump v2.8.1 2022-07-23 20:31:09 +08:00
RMBGAME 023fe96f2e LiveCharts Theme 2022-07-23 20:25:54 +08:00
Aigio Liu 9e8dbd73ee fix Bridge 2022-07-23 20:18:05 +08:00
RMBGAME 0779d5f65b 加速切换UI出现错乱问题修复 2022-07-23 20:03:48 +08:00
RMBGAME d6c7616ffa 修复系统代理模式与PAC代理模式 监听地址为0.0.0.0时代理设置错误问题 2022-07-23 19:17:23 +08:00
RMBGAME 9cbacedf34 fix LiveCharts Theme 2022-07-23 18:45:46 +08:00
RMBGAME 860f0e90df fix #1710 2022-07-23 18:31:45 +08:00
17 changed files with 92 additions and 57 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
<Project>
<PropertyGroup>
<NoWarn>NU1507</NoWarn>
<NoWarn>NU1507;NU1605</NoWarn>
<LangVersion>preview</LangVersion>
<Nullable>enable</Nullable>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+2 -2
View File
@@ -7,9 +7,9 @@
<key>CFBundleIdentifier</key>
<string>net.steampp.app</string>
<key>CFBundleShortVersionString</key>
<string>2.8.0</string>
<string>2.8.1</string>
<key>CFBundleVersion</key>
<string>2.8.0.0</string>
<string>2.8.1.0</string>
<key>LSMinimumSystemVersion</key>
<string>10.15</string>
<key>CFBundleDevelopmentRegion</key>
+34 -29
View File
@@ -1,25 +1,24 @@
<!--
### 公告
1. 非简中语言将默认隐藏加速和脚本功能,仅能通过切换语言并重启程序的方式还原被隐藏的功能
2. 现已停止短信服务节约开销,后续会推出邮箱注册登录,对于已使用手机号的用户需要进行绑定第三方快速登录,否则注销后将无法再次登录
2. 因经济状况原因,现已停止短信服务节约开销,后续会推出邮箱注册登录,对于仅使用手机号登录的用户请绑定第三方快速登录,否则注销后将无法再次登录,需要等待至邮箱服务推出后支持会暂时在开放短信服务提供换绑邮箱。
3. 自动更新目前仅 Windows 端可用,且由于下载渠道限速可能导致无法更新成功,推荐在官网链接的网盘或群文件中下载压缩包解压覆盖更新(应用商店版由商店更新不受此影响)
4. 目前的本地加速功能的实现方式,因需要信任证书,在 Android 上因系统限制,所以此功能已放弃继续开发,如仍想使用需要自行导入证书到系统目录,使用 adb 工具或 Magisk 之类的软件操作,未来会使用不需要证书的加速功能替换此功能
4. 在 Android 上因系统限制,目前的加速功能无法正常使用,所以此功能已放弃继续开发,如仍想使用需要自行导入证书到系统目录,使用 adb 工具或 Magisk 之类的软件操作,未来会使用不需要证书的加速功能替换此功能
5. fde 版本需要安装 [ASP.NET Core 运行时 6.0.7 (x64) 与 .NET Core 运行时 6.0.7 (x64)](https://dotnet.microsoft.com/zh-cn/download/dotnet/6.0)
-->
6. Windows x86 与 x64 版本令牌本机加密互不兼容,使用两者版本时注意令牌加密后的文件不能共用。
7. 由于新版本加速功能重构,调整了部分加速项目,这会影响旧版本程序使用加速功能
8. 为了能继续维持开发,从此版本开始将会添加程序内广告,赞助用户可以在设置中关闭所有广告
### 版本亮点
1. 新增 Steam 云存档管理功能,可自行上传或删除 Steam 云存档
2. 库存游戏支持筛选支持 Steam 云存档的游戏
3. ASF 升级至 V5.2.6.3
4. .NET 运行时升级至 6.0.7,使用 fde 版本需要升级运行库
3. ASF 升级至 V5.2.7.7
4. .NET 运行时升级至 6.0.7,使用 fde 版本需要升级运行时
5. 库存游戏中解锁成就与挂时长支持 macOS 与 Linux 系统
6. 在设置中可关闭托盘,关闭托盘后关闭主窗口即退出程序
7. 使用 Yarp.ReverseProxy 重写了反代加速和脚本功能,大幅提升稳定性和性能
7. 使用 Yarp.ReverseProxy 重写了反代加速和脚本功能,大幅提升稳定性与性能
8. Windows 新增 DNS 驱动拦截模式进行本地加速
9. 为了能继续维持开发,从此版本开始将会添加程序内广告,赞助用户将会有特殊的标识并且不会显示广告
10. 令牌交易现在支持查看交易详情,可以确认交易方的Steam注册时间等信息
9. 令牌交易现在支持查看交易详情,可以确认交易方的Steam注册时间等信息
10. 恢复 Windows x86(32 位) 版本发布
### 修复问题
1. 修复 窗口在某些情况下最大化或最小化恢复时窗口大小会变化的问题
@@ -28,6 +27,12 @@
4. 修复 Linux 上点击关于页面可能因字体引发闪退
5. 修复 MIUI Android 11 ~ 12 中绑定或换绑手机号页面闪退
6. 修复 Android 本地加速中已知问题弹窗显示时不应同时跳转引导证书页
7. 修复 令牌交易确认要求输本地令牌密钥时点击取消也能进行交易确认的问题
8. 修复 令牌加载输入密码解密时点击取消或输入错误密码没有移除此前的数据问题
9. 修复 2.8.1 中出现因脚本导致的启动加速服务失败
10. 修复 网络加速中图标在跟随系统的浅色模式下字体颜色不应为白色
11. 修复 系统代理模式与 PAC 代理模式中监听地址为 0.0.0.0 时出现的错误
12. 修复 切换页面 UI 布局错乱
<!--
@@ -69,7 +74,7 @@ Android 第三方快速登录回调改为 URL Scheme
[![WebSite steampp.net](https://img.shields.io/badge/WebSite-steampp.net-brightgreen.svg?style=flat-square&color=61dafb)](https://steampp.net)
[![Steam++ v2.8.0](https://img.shields.io/badge/Steam++-v2.8.0-brightgreen.svg?style=flat-square&color=512bd4)]()
[![Steam++ v2.8.1](https://img.shields.io/badge/Steam++-v2.8.1-brightgreen.svg?style=flat-square&color=512bd4)]()
##### [不知道该下载哪个文件?](./download-guide.md)
@@ -78,28 +83,28 @@ Android 第三方快速登录回调改为 URL Scheme
### 文件校验
| File | Checksum (SHA256) |
| ---- | ---- |
| Steam++_win_x64_v2.8.0.7z | SHA256 |
| Steam++_win_x64_fde_v2.8.0.7z | SHA256 |
| Steam++_win_x64_v2.8.1.7z | SHA256 |
| Steam++_win_x64_fde_v2.8.1.7z | SHA256 |
| | |
| Steam++_win_x64_v2.8.0.exe | SHA256 |
| Steam++_win_x64_fde_v2.8.0.exe | SHA256 |
| Steam++_win_x64_v2.8.1.exe | SHA256 |
| Steam++_win_x64_fde_v2.8.1.exe | SHA256 |
| | |
| Steam++_win_x86_v2.8.0.7z | SHA256 |
| Steam++_win_x86_fde_v2.8.0.7z | SHA256 |
| Steam++_win_x86_v2.8.1.7z | SHA256 |
| Steam++_win_x86_fde_v2.8.1.7z | SHA256 |
| | |
| Steam++_win_x86_v2.8.0.exe | SHA256 |
| Steam++_win_x86_fde_v2.8.0.exe | SHA256 |
| Steam++_win_x86_v2.8.1.exe | SHA256 |
| Steam++_win_x86_fde_v2.8.1.exe | SHA256 |
| | |
| Steam++_linux_x64_v2.8.0.7z | SHA256 |
| Steam++_linux_arm64_v2.8.0.7z | SHA256 |
| Steam++_linux_x64_v2.8.1.7z | SHA256 |
| Steam++_linux_arm64_v2.8.1.7z | SHA256 |
| | |
| Steam++_linux_x64_v2.8.0.deb | SHA256 |
| Steam++_linux_arm64_v2.8.0.deb | SHA256 |
| Steam++_linux_x64_v2.8.1.deb | SHA256 |
| Steam++_linux_arm64_v2.8.1.deb | SHA256 |
| | |
| Steam++_linux_x64_v2.8.0.rpm | SHA256 |
| Steam++_linux_arm64_v2.8.0.rpm | SHA256 |
| Steam++_linux_x64_v2.8.1.rpm | SHA256 |
| Steam++_linux_arm64_v2.8.1.rpm | SHA256 |
| | |
| Steam++_macos_x64_v2.8.0.dmg | SHA256 |
| Steam++_macos_arm64_v2.8.0.dmg | SHA256 |
| Steam++_macos_x64_v2.8.1.dmg | SHA256 |
| Steam++_macos_arm64_v2.8.1.dmg | SHA256 |
| | |
| Steam++_android_v2.8.0.apk | SHA256 |
| Steam++_android_v2.8.1.apk | SHA256 |
@@ -12,7 +12,7 @@ namespace System.Properties
/// <item> macOS:\packaging\build-osx-app.sh &lt;CFBundleVersion&gt; &lt;CFBundleShortVersionString&gt; </item>
/// </list>
/// </summary>
public const string Version = "2.8.0";
public const string Version = "2.8.1";
//public const string InfoVersion = Version + "-beta";
}
@@ -10,7 +10,7 @@
<Identity
Name="4651ED44255E.47979655102CE"
Publisher="CN=A90E406B-B2D3-4A23-B061-0FA1D65C4F66"
Version="2.8.0.0" />
Version="2.8.1.0" />
<Properties>
<DisplayName>Watt Toolkit</DisplayName>
@@ -75,7 +75,8 @@
<ProjectReference Include="..\ST.Client.CommandLine\ST.Client.CommandLine.csproj" />
<ProjectReference Include="..\ST.Client.AppCenter.Avalonia\ST.Client.AppCenter.Avalonia.csproj" />
<ProjectReference Include="..\ST.Client.JumpList.Avalonia\ST.Client.JumpList.Avalonia.csproj" />
<ProjectReference Include="..\ST.Client.ReverseProxy.Titanium\ST.Client.ReverseProxy.Titanium.csproj" />
<!--<ProjectReference Include="..\ST.Client.ReverseProxy.Titanium\ST.Client.ReverseProxy.Titanium.csproj" />-->
<ProjectReference Include="..\ST.Client.ReverseProxy.Yarp\ST.Client.ReverseProxy.Yarp.csproj" />
</ItemGroup>
<ItemGroup>
@@ -10,7 +10,7 @@
<Identity
Name="4651ED44255E.47979655102CE"
Publisher="CN=A90E406B-B2D3-4A23-B061-0FA1D65C4F66"
Version="2.8.0.0" />
Version="2.8.1.0" />
<Properties>
<DisplayName>Watt Toolkit</DisplayName>
@@ -246,10 +246,27 @@ namespace System.Application.UI
// OPTIONAL
//.AddDarkTheme()
if (Theme == AppTheme.Light)
config.AddLightTheme();
if (Theme != AppTheme.FollowingSystem)
{
if (Theme == AppTheme.Light)
config.AddLightTheme();
else
config.AddDarkTheme();
}
else
config.AddDarkTheme();
{
var dps = IPlatformService.Instance;
dps.SetLightOrDarkThemeFollowingSystem(false);
var isLightOrDarkTheme = dps.IsLightOrDarkTheme;
if (isLightOrDarkTheme.HasValue)
{
var mThemeFS = IApplication.GetAppThemeByIsLightOrDarkTheme(isLightOrDarkTheme.Value);
if (mThemeFS == AppTheme.Light)
config.AddLightTheme();
else
config.AddDarkTheme();
}
}
});
#if WINDOWS
InitWebView2();
@@ -33,11 +33,11 @@
</controls:CarouselBanner.ItemTemplate>
</controls:CarouselBanner>
<TextBlock Text="{ReflectionBinding Path=Res.Advertisement,Mode=OneWay,Source={x:Static resx:R.Current}}"
Foreground="{DynamicResource HighlightForegroundBrushKey}"
Foreground="White"
Margin="10 5"/>
<Button Name="CloseAdBtn"
Background="Transparent"
Foreground="{DynamicResource HighlightForegroundBrushKey}"
Foreground="White"
HorizontalAlignment="Right"
VerticalAlignment="Top"
Cursor="Hand"
@@ -35,7 +35,6 @@ namespace System.Application.UI.Views
{
if (IApplication.IsDesktopPlatform)
{
IViewModelManager.Instance.MainWindow?.Initialize();
AdvertiseService.Current.InitAdvertise();
}
}
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="20220514" android:versionName="2.8.0" package="net.steampp.app" android:installLocation="auto">
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="20220723" android:versionName="2.8.1" package="net.steampp.app" android:installLocation="auto">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="31" />
<application android:fullBackupContent="@xml/auto_backup_rules"></application>
<!-- Required for API Level 30 to make sure the app can detect browsers and other apps where communication is needed.-->
@@ -12,7 +12,7 @@ namespace System.Application.Models;
sealed class ReverseProxyConfig : IReverseProxyConfig
{
readonly SortedDictionary<DomainPattern, IDomainConfig> domainConfigs;
readonly SortedDictionary<DomainPattern, IScriptConfig> scriptConfigs;
readonly ICollection<KeyValuePair<DomainPattern, IScriptConfig>> scriptConfigs;
readonly ConcurrentDictionary<string, IDomainConfig?> domainConfigCache;
readonly YarpReverseProxyServiceImpl reverseProxyService;
@@ -20,7 +20,7 @@ sealed class ReverseProxyConfig : IReverseProxyConfig
{
this.reverseProxyService = reverseProxyService;
domainConfigs = new();
scriptConfigs = new();
scriptConfigs = new List<KeyValuePair<DomainPattern, IScriptConfig>>();
AddDomainConfigs(domainConfigs, reverseProxyService.ProxyDomains);
AddScriptConfigs(scriptConfigs, reverseProxyService.Scripts);
domainConfigCache = new();
@@ -58,7 +58,7 @@ sealed class ReverseProxyConfig : IReverseProxyConfig
}
}
static void AddScriptConfigs(IDictionary<DomainPattern, IScriptConfig> dict,
static void AddScriptConfigs(ICollection<KeyValuePair<DomainPattern, IScriptConfig>> dict,
IEnumerable<ScriptDTO>? scripts)
{
if (IReverseProxyService.Instance.IsEnableScript && scripts != null)
@@ -71,7 +71,7 @@ sealed class ReverseProxyConfig : IReverseProxyConfig
// var domainNames2 = string.Join(DomainPattern.GeneralSeparator, item.ExcludeDomainNamesArray.Select(GetDomainPatternString));
//}
dict.Add(new DomainPattern(domainNames) { Sort = item.Order }, item);
dict.Add(new KeyValuePair<DomainPattern, IScriptConfig>(new DomainPattern(domainNames) { Sort = item.Order }, item));
}
static string GetDomainPatternString(string s)
+12 -2
View File
@@ -142,7 +142,12 @@ namespace System.Application.Services
}
else if (reverseProxyService.ProxyMode == ProxyMode.System)
{
if (!IPlatformService.Instance.SetAsSystemProxy(true, reverseProxyService.ProxyIp, reverseProxyService.ProxyPort))
var proxyip = reverseProxyService.ProxyIp;
if (OperatingSystem2.IsWindows() && IReverseProxyService.Instance.ProxyIp.Equals(IPAddress.Any))
{
proxyip = IPAddress.Loopback;
}
if (!IPlatformService.Instance.SetAsSystemProxy(true, proxyip, reverseProxyService.ProxyPort))
{
Toast.Show("系统代理开启失败");
return;
@@ -150,7 +155,12 @@ namespace System.Application.Services
}
else if (reverseProxyService.ProxyMode == ProxyMode.PAC)
{
if (!IPlatformService.Instance.SetAsSystemPACProxy(true, $"http://{reverseProxyService.ProxyIp}:{reverseProxyService.ProxyPort}/pac"))
var proxyip = reverseProxyService.ProxyIp;
if (OperatingSystem2.IsWindows() && IReverseProxyService.Instance.ProxyIp.Equals(IPAddress.Any))
{
proxyip = IPAddress.Loopback;
}
if (!IPlatformService.Instance.SetAsSystemPACProxy(true, $"http://{proxyip}:{reverseProxyService.ProxyPort}/pac"))
{
Toast.Show("PAC代理开启失败");
return;
+6 -6
View File
@@ -201,7 +201,7 @@ namespace System.Application.UI
MaxArchiveDays = 7,
};
objConfig.AddTarget(logfile);
InitializeTarget(objConfig, logfile);
InitializeTarget(objConfig, logfile, defMinLevel);
#if StartWatchTrace
StartWatchTrace.Record("InitLogDir.CreateLoggingConfiguration");
#endif
@@ -226,27 +226,27 @@ namespace System.Application.UI
MaxArchiveFiles = 10,
MaxArchiveDays = 7,
};
InitializeTarget(config, fileTarget);
InitializeTarget(config, fileTarget, NLogLevel.Debug);
var historyTarget = new HistoryTarget("History")
{
Layout = ASFPathHelper.NLogGeneralLayout,
MaxCount = 20,
};
InitializeTarget(config, historyTarget);
InitializeTarget(config, historyTarget, NLogLevel.Debug);
ASFNLogManager.Configuration = config;
};
LogDirPath = logDirPath;
void InitializeTarget(LoggingConfiguration config, Target target)
static void InitializeTarget(LoggingConfiguration config, Target target, NLogLevel minLevel)
{
config.AddTarget(target);
if (ThisAssembly.Debuggable)
if (minLevel < NLogLevel.Warn)
{
config.LoggingRules.Add(new LoggingRule("Microsoft*", target) { FinalMinLevel = NLogLevel.Warn });
config.LoggingRules.Add(new LoggingRule("Microsoft.Hosting.Lifetime*", target) { FinalMinLevel = NLogLevel.Info });
config.LoggingRules.Add(new LoggingRule("System*", target) { FinalMinLevel = NLogLevel.Warn });
}
config.LoggingRules.Add(new LoggingRule("*", defMinLevel, target));
config.LoggingRules.Add(new LoggingRule("*", minLevel, target));
}
}
+3
View File
@@ -592,6 +592,7 @@ namespace System.Application.UI
if (isTrace) StartWatchTrace.Record();
try
{
#if !WINDOWS_DESKTOP_BRIDGE
#if MAC
FileSystemDesktopMac.InitFileSystem();
#elif LINUX
@@ -607,6 +608,7 @@ namespace System.Application.UI
#if StartWatchTrace
StartWatchTrace.Record();
#endif
#endif
IApplication.InitLogDir();
#if StartWatchTrace
@@ -647,6 +649,7 @@ namespace System.Application.UI
vmService.InitViewModels();
if (isTrace) StartWatchTrace.Record("VM.Init");
handlerViewModelManager?.Invoke(vmService);
vmService.MainWindow?.Initialize();
if (isTrace) StartWatchTrace.Record("VM.Delegate");
}
finally
@@ -14,7 +14,7 @@ namespace System.UnitTest
{
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "12.3.99.43")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "12.3.3.31")]
public partial class Resource
{