From 3fafc6de93fc2ac77898bf8b590a5b8c197e0792 Mon Sep 17 00:00:00 2001
From: 2dust <31833384+2dust@users.noreply.github.com>
Date: Thu, 24 Oct 2024 15:35:37 +0800
Subject: [PATCH] Code optimization
---
v2rayN/AmazTool/AmazTool.csproj | 4 +--
v2rayN/ServiceLib/Common/Utils.cs | 21 +--------------
v2rayN/ServiceLib/Handler/AppHandler.cs | 22 ++++++++--------
v2rayN/ServiceLib/Handler/ConfigHandler.cs | 26 +++++++------------
.../ViewModels/MainWindowViewModel.cs | 6 ++---
.../ViewModels/StatusBarViewModel.cs | 2 +-
v2rayN/v2rayN.Desktop/v2rayN.Desktop.csproj | 1 +
.../Views/GlobalHotkeySettingWindow.xaml.cs | 2 +-
8 files changed, 29 insertions(+), 55 deletions(-)
diff --git a/v2rayN/AmazTool/AmazTool.csproj b/v2rayN/AmazTool/AmazTool.csproj
index 50bb820b..37193d62 100644
--- a/v2rayN/AmazTool/AmazTool.csproj
+++ b/v2rayN/AmazTool/AmazTool.csproj
@@ -5,8 +5,8 @@
net8.0
enable
enable
- Copyright © 2019-2024 (GPLv3)
- 1.2.0.0
+ Copyright © 2017-2024 (GPLv3)
+ 1.3.0
\ No newline at end of file
diff --git a/v2rayN/ServiceLib/Common/Utils.cs b/v2rayN/ServiceLib/Common/Utils.cs
index 5cf71da7..993f41f0 100644
--- a/v2rayN/ServiceLib/Common/Utils.cs
+++ b/v2rayN/ServiceLib/Common/Utils.cs
@@ -228,12 +228,6 @@ namespace ServiceLib.Common
}
}
- ///
- /// byte 转成 有两位小数点的 方便阅读的数据 比如 2.50 MB
- ///
- /// bytes
- /// 转换之后的数据
- /// 单位
private static void ToHumanReadable(long amount, out double result, out string unit)
{
var factor = 1024u;
@@ -411,7 +405,6 @@ namespace ServiceLib.Common
///
public static bool IsDomain(string? domain)
{
- //如果为空
if (IsNullOrEmpty(domain))
{
return false;
@@ -564,10 +557,6 @@ namespace ServiceLib.Common
}
}
- ///
- /// 获取系统hosts
- ///
- ///
public static Dictionary GetSystemHosts()
{
var systemHosts = new Dictionary();
@@ -634,10 +623,6 @@ namespace ServiceLib.Common
#region TempPath
- ///
- /// 获取启动了应用程序的可执行文件的路径
- ///
- ///
public static string GetPath(string fileName)
{
var startupPath = StartupPath();
@@ -647,11 +632,7 @@ namespace ServiceLib.Common
}
return Path.Combine(startupPath, fileName);
}
-
- ///
- /// 获取启动了应用程序的可执行文件的路径及文件名
- ///
- ///
+
public static string GetExePath()
{
return Environment.ProcessPath ?? Process.GetCurrentProcess().MainModule?.FileName ?? string.Empty;
diff --git a/v2rayN/ServiceLib/Handler/AppHandler.cs b/v2rayN/ServiceLib/Handler/AppHandler.cs
index 892df4b4..c5b43850 100644
--- a/v2rayN/ServiceLib/Handler/AppHandler.cs
+++ b/v2rayN/ServiceLib/Handler/AppHandler.cs
@@ -102,17 +102,17 @@
#region SqliteHelper
- public async Task> SubItems()
+ public async Task?> SubItems()
{
return await SQLiteHelper.Instance.TableAsync().OrderBy(t => t.Sort).ToListAsync();
}
- public async Task GetSubItem(string subid)
+ public async Task GetSubItem(string subid)
{
return await SQLiteHelper.Instance.TableAsync().FirstOrDefaultAsync(t => t.Id == subid);
}
- public async Task> ProfileItems(string subid)
+ public async Task?> ProfileItems(string subid)
{
if (Utils.IsNullOrEmpty(subid))
{
@@ -124,12 +124,12 @@
}
}
- public async Task> ProfileItemIndexes(string subid)
+ public async Task?> ProfileItemIndexes(string subid)
{
- return (await ProfileItems(subid)).Select(t => t.IndexId).ToList();
+ return (await ProfileItems(subid))?.Select(t => t.IndexId)?.ToList();
}
- public async Task> ProfileItems(string subid, string filter)
+ public async Task?> ProfileItems(string subid, string filter)
{
var sql = @$"select a.*
,b.remarks subRemarks
@@ -152,7 +152,7 @@
return await SQLiteHelper.Instance.QueryAsync(sql);
}
- public async Task> ProfileItemsEx(string subid, string filter)
+ public async Task?> ProfileItemsEx(string subid, string filter)
{
var lstModel = await ProfileItems(_config.SubIndexId, filter);
@@ -209,22 +209,22 @@
return await SQLiteHelper.Instance.TableAsync().FirstOrDefaultAsync(it => it.Remarks == remarks);
}
- public async Task> RoutingItems()
+ public async Task?> RoutingItems()
{
return await SQLiteHelper.Instance.TableAsync().Where(it => it.Locked == false).OrderBy(t => t.Sort).ToListAsync();
}
- public async Task GetRoutingItem(string id)
+ public async Task GetRoutingItem(string id)
{
return await SQLiteHelper.Instance.TableAsync().FirstOrDefaultAsync(it => it.Locked == false && it.Id == id);
}
- public async Task> DNSItems()
+ public async Task?> DNSItems()
{
return await SQLiteHelper.Instance.TableAsync().ToListAsync();
}
- public async Task GetDNSItem(ECoreType eCoreType)
+ public async Task GetDNSItem(ECoreType eCoreType)
{
return await SQLiteHelper.Instance.TableAsync().FirstOrDefaultAsync(it => it.CoreType == eCoreType);
}
diff --git a/v2rayN/ServiceLib/Handler/ConfigHandler.cs b/v2rayN/ServiceLib/Handler/ConfigHandler.cs
index 1b26e2dc..7adbe4a2 100644
--- a/v2rayN/ServiceLib/Handler/ConfigHandler.cs
+++ b/v2rayN/ServiceLib/Handler/ConfigHandler.cs
@@ -171,18 +171,7 @@ namespace ServiceLib.Handler
///
///
///
- public static async Task SaveConfig(Config config, bool reload = true)
- {
- await ToJsonFile(config);
-
- return 0;
- }
-
- ///
- /// 存储文件
- ///
- ///
- private static async Task ToJsonFile(Config config)
+ public static async Task SaveConfig(Config config)
{
lock (_objLock)
{
@@ -193,7 +182,7 @@ namespace ServiceLib.Handler
var tempPath = $"{resPath}_temp";
if (JsonUtils.ToFile(config, tempPath) != 0)
{
- return;
+ return -1;
}
if (File.Exists(resPath))
@@ -206,8 +195,11 @@ namespace ServiceLib.Handler
catch (Exception ex)
{
Logging.SaveLog("ToJsonFile", ex);
+ return -1;
}
}
+
+ return 0;
}
#endregion ConfigHandler
@@ -369,7 +361,7 @@ namespace ServiceLib.Handler
config.IndexId = indexId;
- await ToJsonFile(config);
+ await SaveConfig(config);
return 0;
}
@@ -1142,7 +1134,7 @@ namespace ServiceLib.Handler
await SQLiteHelper.Instance.InsertAllAsync(lstAdd);
}
- await ToJsonFile(config);
+ await SaveConfig(config);
return countServers;
}
@@ -1272,7 +1264,7 @@ namespace ServiceLib.Handler
counter++;
}
}
- await ToJsonFile(config);
+ await SaveConfig(config);
return counter;
}
@@ -1605,7 +1597,7 @@ namespace ServiceLib.Handler
config.RoutingBasicItem.RoutingIndexId = routingItem.Id;
}
- await ToJsonFile(config);
+ await SaveConfig(config);
return 0;
}
diff --git a/v2rayN/ServiceLib/ViewModels/MainWindowViewModel.cs b/v2rayN/ServiceLib/ViewModels/MainWindowViewModel.cs
index 680aa04c..efedf556 100644
--- a/v2rayN/ServiceLib/ViewModels/MainWindowViewModel.cs
+++ b/v2rayN/ServiceLib/ViewModels/MainWindowViewModel.cs
@@ -566,8 +566,8 @@ namespace ServiceLib.ViewModels
public async Task CloseCore()
{
- await ConfigHandler.SaveConfig(_config, false);
- CoreHandler.Instance.CoreStop();
+ await ConfigHandler.SaveConfig(_config);
+ await CoreHandler.Instance.CoreStop();
}
private async Task AutoHideStartup()
@@ -588,7 +588,7 @@ namespace ServiceLib.ViewModels
await ConfigHandler.InitRouting(_config);
Locator.Current.GetService()?.RefreshRoutingsMenu();
- await ConfigHandler.SaveConfig(_config, false);
+ await ConfigHandler.SaveConfig(_config);
await new UpdateService().UpdateGeoFileAll(_config, UpdateHandler);
await Reload();
}
diff --git a/v2rayN/ServiceLib/ViewModels/StatusBarViewModel.cs b/v2rayN/ServiceLib/ViewModels/StatusBarViewModel.cs
index d15d563c..42eced5b 100644
--- a/v2rayN/ServiceLib/ViewModels/StatusBarViewModel.cs
+++ b/v2rayN/ServiceLib/ViewModels/StatusBarViewModel.cs
@@ -321,7 +321,7 @@ namespace ServiceLib.ViewModels
NoticeHandler.Instance.SendMessageEx($"{ResUI.TipChangeSystemProxy} - {_config.SystemProxyItem.SysProxyType.ToString()}");
SystemProxySelected = (int)_config.SystemProxyItem.SysProxyType;
- await ConfigHandler.SaveConfig(_config, false);
+ await ConfigHandler.SaveConfig(_config);
}
public async Task ChangeSystemProxyAsync(ESysProxyType type, bool blChange)
diff --git a/v2rayN/v2rayN.Desktop/v2rayN.Desktop.csproj b/v2rayN/v2rayN.Desktop/v2rayN.Desktop.csproj
index a5750c74..57ee3764 100644
--- a/v2rayN/v2rayN.Desktop/v2rayN.Desktop.csproj
+++ b/v2rayN/v2rayN.Desktop/v2rayN.Desktop.csproj
@@ -6,6 +6,7 @@
enable
Assets\v2rayN.ico
true
+ Copyright © 2017-2024 (GPLv3)
true
diff --git a/v2rayN/v2rayN/Views/GlobalHotkeySettingWindow.xaml.cs b/v2rayN/v2rayN/Views/GlobalHotkeySettingWindow.xaml.cs
index 6dc6ee6b..be1c7378 100644
--- a/v2rayN/v2rayN/Views/GlobalHotkeySettingWindow.xaml.cs
+++ b/v2rayN/v2rayN/Views/GlobalHotkeySettingWindow.xaml.cs
@@ -103,7 +103,7 @@ namespace v2rayN.Views
{
_config.GlobalHotkeys = _TextBoxKeyEventItem.Values.ToList();
- if ( ConfigHandler.SaveConfig(_config, false).Result == 0)
+ if ( ConfigHandler.SaveConfig(_config).Result == 0)
{
HotkeyHandler.Instance.ReLoad();
this.DialogResult = true;