diff --git a/v2rayN/v2rayN/Handler/CoreConfig/CoreConfigSingbox.cs b/v2rayN/v2rayN/Handler/CoreConfig/CoreConfigSingbox.cs index 66afe2beaa..baa384c981 100644 --- a/v2rayN/v2rayN/Handler/CoreConfig/CoreConfigSingbox.cs +++ b/v2rayN/v2rayN/Handler/CoreConfig/CoreConfigSingbox.cs @@ -987,7 +987,7 @@ private void GenRoutingDirectExe(out List lstDnsExe, out List ls { lstDnsExe = new(); lstDirectExe = new(); - var coreInfo = LazyConfig.Instance.GetCoreInfo(); + var coreInfo = CoreInfoHandler.Instance.GetCoreInfo(); foreach (var it in coreInfo) { if (it.coreType == ECoreType.v2rayN) diff --git a/v2rayN/v2rayN/Handler/CoreHandler.cs b/v2rayN/v2rayN/Handler/CoreHandler.cs index 37866d0f0d..69e6aedec2 100644 --- a/v2rayN/v2rayN/Handler/CoreHandler.cs +++ b/v2rayN/v2rayN/Handler/CoreHandler.cs @@ -114,7 +114,7 @@ public void CoreStop() if (!hasProc) { - var coreInfo = LazyConfig.Instance.GetCoreInfo(); + var coreInfo = CoreInfoHandler.Instance.GetCoreInfo(); foreach (var it in coreInfo) { if (it.coreType == ECoreType.v2rayN) @@ -195,7 +195,7 @@ private void CoreStart(ProfileItem node) //} var coreType = LazyConfig.Instance.GetCoreType(node, node.configType); _config.runningCoreType = coreType; - var coreInfo = LazyConfig.Instance.GetCoreInfo(coreType); + var coreInfo = CoreInfoHandler.Instance.GetCoreInfo(coreType); var displayLog = node.configType != EConfigType.Custom || node.displayLog; var proc = RunProcess(node, coreInfo, "", displayLog); @@ -238,7 +238,7 @@ private void CoreStart(ProfileItem node) string fileName2 = Utils.GetConfigPath(Global.CorePreConfigFileName); if (CoreConfigHandler.GenerateClientConfig(itemSocks, fileName2, out string msg2, out string configStr) == 0) { - var coreInfo2 = LazyConfig.Instance.GetCoreInfo(preCoreType); + var coreInfo2 = CoreInfoHandler.Instance.GetCoreInfo(preCoreType); var proc2 = RunProcess(node, coreInfo2, $" -c {Global.CorePreConfigFileName}", true); if (proc2 is not null) { @@ -256,7 +256,7 @@ private int CoreStartSpeedtest(string configPath, ECoreType coreType) ShowMsg(false, configPath); try { - var coreInfo = LazyConfig.Instance.GetCoreInfo(coreType); + var coreInfo = CoreInfoHandler.Instance.GetCoreInfo(coreType); var proc = RunProcess(new(), coreInfo, $" -c {Global.CoreSpeedtestConfigFileName}", true); if (proc is null) { diff --git a/v2rayN/v2rayN/Handler/CoreInfoHandler.cs b/v2rayN/v2rayN/Handler/CoreInfoHandler.cs new file mode 100644 index 0000000000..e0b83c8b52 --- /dev/null +++ b/v2rayN/v2rayN/Handler/CoreInfoHandler.cs @@ -0,0 +1,223 @@ +using System.Runtime.Intrinsics.X86; +using v2rayN.Enums; +using v2rayN.Models; + +namespace v2rayN.Handler +{ + public sealed class CoreInfoHandler + { + private static readonly Lazy _instance = new(() => new()); + private List? _coreInfo; + public static CoreInfoHandler Instance => _instance.Value; + + public CoreInfoHandler() + { + InitCoreInfo(); + } + + public CoreInfo? GetCoreInfo(ECoreType coreType) + { + if (_coreInfo == null) + { + InitCoreInfo(); + } + return _coreInfo?.FirstOrDefault(t => t.coreType == coreType); + } + + public List GetCoreInfo() + { + if (_coreInfo == null) + { + InitCoreInfo(); + } + return _coreInfo ?? []; + } + + private void InitCoreInfo() + { + _coreInfo = []; + + _coreInfo.Add(new CoreInfo + { + coreType = ECoreType.v2rayN, + coreUrl = Global.NUrl, + coreReleaseApiUrl = Global.NUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), + coreDownloadUrl32 = Global.NUrl + "/download/{0}/v2rayN-32.zip", + coreDownloadUrl64 = Global.NUrl + "/download/{0}/v2rayN.zip", + coreDownloadUrlArm64 = Global.NUrl + "/download/{0}/v2rayN-arm64.zip" + }); + + _coreInfo.Add(new CoreInfo + { + coreType = ECoreType.v2fly, + coreExes = new List { "wv2ray", "v2ray" }, + arguments = "", + coreUrl = Global.V2flyCoreUrl, + coreReleaseApiUrl = Global.V2flyCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), + coreDownloadUrl32 = Global.V2flyCoreUrl + "/download/{0}/v2ray-windows-{1}.zip", + coreDownloadUrl64 = Global.V2flyCoreUrl + "/download/{0}/v2ray-windows-{1}.zip", + coreDownloadUrlArm64 = Global.V2flyCoreUrl + "/download/{0}/v2ray-windows-{1}.zip", + match = "V2Ray", + versionArg = "-version", + redirectInfo = true, + }); + + _coreInfo.Add(new CoreInfo + { + coreType = ECoreType.SagerNet, + coreExes = new List { "SagerNet", "v2ray" }, + arguments = "run", + coreUrl = Global.SagerNetCoreUrl, + coreReleaseApiUrl = Global.SagerNetCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), + coreDownloadUrl32 = Global.SagerNetCoreUrl + "/download/{0}/v2ray-windows-{1}.zip", + coreDownloadUrl64 = Global.SagerNetCoreUrl + "/download/{0}/v2ray-windows-{1}.zip", + coreDownloadUrlArm64 = Global.SagerNetCoreUrl + "/download/{0}/v2ray-windows-{1}.zip", + match = "V2Ray", + versionArg = "version", + redirectInfo = true, + }); + + _coreInfo.Add(new CoreInfo + { + coreType = ECoreType.v2fly_v5, + coreExes = new List { "v2ray" }, + arguments = "run -c config.json -format jsonv5", + coreUrl = Global.V2flyCoreUrl, + coreReleaseApiUrl = Global.V2flyCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), + coreDownloadUrl32 = Global.V2flyCoreUrl + "/download/{0}/v2ray-windows-{1}.zip", + coreDownloadUrl64 = Global.V2flyCoreUrl + "/download/{0}/v2ray-windows-{1}.zip", + coreDownloadUrlArm64 = Global.V2flyCoreUrl + "/download/{0}/v2ray-windows-{1}.zip", + match = "V2Ray", + versionArg = "version", + redirectInfo = true, + }); + + _coreInfo.Add(new CoreInfo + { + coreType = ECoreType.Xray, + coreExes = new List { "xray", "wxray" }, + arguments = "run {0}", + coreUrl = Global.XrayCoreUrl, + coreReleaseApiUrl = Global.XrayCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), + coreDownloadUrl32 = Global.XrayCoreUrl + "/download/{0}/Xray-windows-{1}.zip", + coreDownloadUrl64 = Global.XrayCoreUrl + "/download/{0}/Xray-windows-{1}.zip", + coreDownloadUrlArm64 = Global.XrayCoreUrl + "/download/{0}/Xray-windows-{1}.zip", + match = "Xray", + versionArg = "-version", + redirectInfo = true, + }); + + _coreInfo.Add(new CoreInfo + { + coreType = ECoreType.clash, + coreExes = new List { "clash-windows-amd64-v3", "clash-windows-amd64", "clash-windows-386", "clash" }, + arguments = "-f config.json", + coreUrl = Global.ClashCoreUrl, + coreReleaseApiUrl = Global.ClashCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), + coreDownloadUrl32 = Global.ClashCoreUrl + "/download/{0}/clash-windows-386-{0}.zip", + coreDownloadUrl64 = Global.ClashCoreUrl + "/download/{0}/clash-windows-amd64-{0}.zip", + coreDownloadUrlArm64 = Global.ClashCoreUrl + "/download/{0}/clash-windows-arm64-{0}.zip", + match = "v", + versionArg = "-v", + redirectInfo = true, + }); + + _coreInfo.Add(new CoreInfo + { + coreType = ECoreType.clash_meta, + coreExes = new List { "Clash.Meta-windows-amd64-compatible", "Clash.Meta-windows-amd64", "Clash.Meta-windows-386", "Clash.Meta", "clash" }, + arguments = "-f config.json", + coreUrl = Global.ClashMetaCoreUrl, + coreReleaseApiUrl = Global.ClashMetaCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), + coreDownloadUrl32 = Global.ClashMetaCoreUrl + "/download/{0}/Clash.Meta-windows-386-{0}.zip", + coreDownloadUrl64 = Global.ClashMetaCoreUrl + "/download/{0}/Clash.Meta-windows-amd64-compatible-{0}.zip", + coreDownloadUrlArm64 = Global.ClashMetaCoreUrl + "/download/{0}/Clash.Meta-windows-arm64-{0}.zip", + match = "v", + versionArg = "-v", + redirectInfo = true, + }); + + _coreInfo.Add(new CoreInfo + { + coreType = ECoreType.mihomo, + coreExes = new List { $"mihomo-windows-amd64{(Avx2.X64.IsSupported ? "" : "-compatible")}", "mihomo-windows-amd64-compatible", "mihomo-windows-amd64", "mihomo-windows-386", "mihomo", "clash" }, + arguments = "-f config.json", + coreUrl = Global.MihomoCoreUrl, + coreReleaseApiUrl = Global.MihomoCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), + coreDownloadUrl32 = Global.ClashMetaCoreUrl + "/download/{0}/mihomo-windows-386-{0}.zip", + coreDownloadUrl64 = Global.ClashMetaCoreUrl + "/download/{0}/mihomo-windows-amd64-compatible-{0}.zip", + coreDownloadUrlArm64 = Global.ClashMetaCoreUrl + "/download/{0}/mihomo-windows-arm64-{0}.zip", + match = "Mihomo", + versionArg = "-v", + redirectInfo = true, + }); + + _coreInfo.Add(new CoreInfo + { + coreType = ECoreType.hysteria, + coreExes = new List { "hysteria-windows-amd64", "hysteria-windows-386", "hysteria" }, + arguments = "", + coreUrl = Global.HysteriaCoreUrl, + coreReleaseApiUrl = Global.HysteriaCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), + coreDownloadUrl32 = Global.HysteriaCoreUrl + "/download/{0}/hysteria-windows-386.exe", + coreDownloadUrl64 = Global.HysteriaCoreUrl + "/download/{0}/hysteria-windows-amd64.exe", + coreDownloadUrlArm64 = Global.HysteriaCoreUrl + "/download/{0}/hysteria-windows-arm64.exe", + redirectInfo = true, + }); + + _coreInfo.Add(new CoreInfo + { + coreType = ECoreType.naiveproxy, + coreExes = new List { "naiveproxy", "naive" }, + arguments = "config.json", + coreUrl = Global.NaiveproxyCoreUrl, + redirectInfo = false, + }); + + _coreInfo.Add(new CoreInfo + { + coreType = ECoreType.tuic, + coreExes = new List { "tuic-client", "tuic" }, + arguments = "-c config.json", + coreUrl = Global.TuicCoreUrl, + redirectInfo = true, + }); + + _coreInfo.Add(new CoreInfo + { + coreType = ECoreType.sing_box, + coreExes = new List { "sing-box-client", "sing-box" }, + arguments = "run {0} --disable-color", + coreUrl = Global.SingboxCoreUrl, + redirectInfo = true, + coreReleaseApiUrl = Global.SingboxCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), + coreDownloadUrl32 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-windows-386.zip", + coreDownloadUrl64 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-windows-amd64.zip", + coreDownloadUrlArm64 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-windows-arm64.zip", + match = "sing-box", + versionArg = "version", + }); + + _coreInfo.Add(new CoreInfo + { + coreType = ECoreType.juicity, + coreExes = new List { "juicity-client", "juicity" }, + arguments = "run -c config.json", + coreUrl = Global.JuicityCoreUrl + }); + + _coreInfo.Add(new CoreInfo + { + coreType = ECoreType.hysteria2, + coreExes = new List { "hysteria-windows-amd64", "hysteria-windows-386", "hysteria" }, + arguments = "", + coreUrl = Global.HysteriaCoreUrl, + coreReleaseApiUrl = Global.HysteriaCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), + coreDownloadUrl32 = Global.HysteriaCoreUrl + "/download/{0}/hysteria-windows-386.exe", + coreDownloadUrl64 = Global.HysteriaCoreUrl + "/download/{0}/hysteria-windows-amd64.exe", + coreDownloadUrlArm64 = Global.HysteriaCoreUrl + "/download/{0}/hysteria-windows-arm64.exe", + redirectInfo = true, + }); + } + } +} \ No newline at end of file diff --git a/v2rayN/v2rayN/Handler/DownloadHandle.cs b/v2rayN/v2rayN/Handler/DownloadHandler.cs similarity index 99% rename from v2rayN/v2rayN/Handler/DownloadHandle.cs rename to v2rayN/v2rayN/Handler/DownloadHandler.cs index ac224e1884..c6ead790ad 100644 --- a/v2rayN/v2rayN/Handler/DownloadHandle.cs +++ b/v2rayN/v2rayN/Handler/DownloadHandler.cs @@ -12,7 +12,7 @@ namespace v2rayN.Handler /// ///Download /// - internal class DownloadHandle + internal class DownloadHandler { public event EventHandler? UpdateCompleted; diff --git a/v2rayN/v2rayN/Handler/LazyConfig.cs b/v2rayN/v2rayN/Handler/LazyConfig.cs index f7e366ea06..7224c5322c 100644 --- a/v2rayN/v2rayN/Handler/LazyConfig.cs +++ b/v2rayN/v2rayN/Handler/LazyConfig.cs @@ -1,5 +1,4 @@ -using System.Runtime.Intrinsics.X86; -using v2rayN.Enums; +using v2rayN.Enums; using v2rayN.Models; namespace v2rayN.Handler @@ -8,7 +7,6 @@ public sealed class LazyConfig { private static readonly Lazy _instance = new(() => new()); private Config _config; - private List coreInfo; public static LazyConfig Instance => _instance.Value; @@ -207,211 +205,6 @@ public ECoreType GetCoreType(ProfileItem profileItem, EConfigType eConfigType) return item.coreType; } - public CoreInfo? GetCoreInfo(ECoreType coreType) - { - if (coreInfo == null) - { - InitCoreInfo(); - } - return coreInfo?.FirstOrDefault(t => t.coreType == coreType); - } - - public List GetCoreInfo() - { - if (coreInfo == null) - { - InitCoreInfo(); - } - return coreInfo!; - } - - private void InitCoreInfo() - { - coreInfo = new(16); - - coreInfo.Add(new CoreInfo - { - coreType = ECoreType.v2rayN, - coreUrl = Global.NUrl, - coreReleaseApiUrl = Global.NUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), - coreDownloadUrl32 = Global.NUrl + "/download/{0}/v2rayN-32.zip", - coreDownloadUrl64 = Global.NUrl + "/download/{0}/v2rayN.zip", - coreDownloadUrlArm64 = Global.NUrl + "/download/{0}/v2rayN-arm64.zip" - }); - - coreInfo.Add(new CoreInfo - { - coreType = ECoreType.v2fly, - coreExes = new List { "wv2ray", "v2ray" }, - arguments = "", - coreUrl = Global.V2flyCoreUrl, - coreReleaseApiUrl = Global.V2flyCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), - coreDownloadUrl32 = Global.V2flyCoreUrl + "/download/{0}/v2ray-windows-{1}.zip", - coreDownloadUrl64 = Global.V2flyCoreUrl + "/download/{0}/v2ray-windows-{1}.zip", - coreDownloadUrlArm64 = Global.V2flyCoreUrl + "/download/{0}/v2ray-windows-{1}.zip", - match = "V2Ray", - versionArg = "-version", - redirectInfo = true, - }); - - coreInfo.Add(new CoreInfo - { - coreType = ECoreType.SagerNet, - coreExes = new List { "SagerNet", "v2ray" }, - arguments = "run", - coreUrl = Global.SagerNetCoreUrl, - coreReleaseApiUrl = Global.SagerNetCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), - coreDownloadUrl32 = Global.SagerNetCoreUrl + "/download/{0}/v2ray-windows-{1}.zip", - coreDownloadUrl64 = Global.SagerNetCoreUrl + "/download/{0}/v2ray-windows-{1}.zip", - coreDownloadUrlArm64 = Global.SagerNetCoreUrl + "/download/{0}/v2ray-windows-{1}.zip", - match = "V2Ray", - versionArg = "version", - redirectInfo = true, - }); - - coreInfo.Add(new CoreInfo - { - coreType = ECoreType.v2fly_v5, - coreExes = new List { "v2ray" }, - arguments = "run -c config.json -format jsonv5", - coreUrl = Global.V2flyCoreUrl, - coreReleaseApiUrl = Global.V2flyCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), - coreDownloadUrl32 = Global.V2flyCoreUrl + "/download/{0}/v2ray-windows-{1}.zip", - coreDownloadUrl64 = Global.V2flyCoreUrl + "/download/{0}/v2ray-windows-{1}.zip", - coreDownloadUrlArm64 = Global.V2flyCoreUrl + "/download/{0}/v2ray-windows-{1}.zip", - match = "V2Ray", - versionArg = "version", - redirectInfo = true, - }); - - coreInfo.Add(new CoreInfo - { - coreType = ECoreType.Xray, - coreExes = new List { "xray", "wxray" }, - arguments = "run {0}", - coreUrl = Global.XrayCoreUrl, - coreReleaseApiUrl = Global.XrayCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), - coreDownloadUrl32 = Global.XrayCoreUrl + "/download/{0}/Xray-windows-{1}.zip", - coreDownloadUrl64 = Global.XrayCoreUrl + "/download/{0}/Xray-windows-{1}.zip", - coreDownloadUrlArm64 = Global.XrayCoreUrl + "/download/{0}/Xray-windows-{1}.zip", - match = "Xray", - versionArg = "-version", - redirectInfo = true, - }); - - coreInfo.Add(new CoreInfo - { - coreType = ECoreType.clash, - coreExes = new List { "clash-windows-amd64-v3", "clash-windows-amd64", "clash-windows-386", "clash" }, - arguments = "-f config.json", - coreUrl = Global.ClashCoreUrl, - coreReleaseApiUrl = Global.ClashCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), - coreDownloadUrl32 = Global.ClashCoreUrl + "/download/{0}/clash-windows-386-{0}.zip", - coreDownloadUrl64 = Global.ClashCoreUrl + "/download/{0}/clash-windows-amd64-{0}.zip", - coreDownloadUrlArm64 = Global.ClashCoreUrl + "/download/{0}/clash-windows-arm64-{0}.zip", - match = "v", - versionArg = "-v", - redirectInfo = true, - }); - - coreInfo.Add(new CoreInfo - { - coreType = ECoreType.clash_meta, - coreExes = new List { "Clash.Meta-windows-amd64-compatible", "Clash.Meta-windows-amd64", "Clash.Meta-windows-386", "Clash.Meta", "clash" }, - arguments = "-f config.json", - coreUrl = Global.ClashMetaCoreUrl, - coreReleaseApiUrl = Global.ClashMetaCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), - coreDownloadUrl32 = Global.ClashMetaCoreUrl + "/download/{0}/Clash.Meta-windows-386-{0}.zip", - coreDownloadUrl64 = Global.ClashMetaCoreUrl + "/download/{0}/Clash.Meta-windows-amd64-compatible-{0}.zip", - coreDownloadUrlArm64 = Global.ClashMetaCoreUrl + "/download/{0}/Clash.Meta-windows-arm64-{0}.zip", - match = "v", - versionArg = "-v", - redirectInfo = true, - }); - - coreInfo.Add(new CoreInfo - { - coreType = ECoreType.mihomo, - coreExes = new List { $"mihomo-windows-amd64{(Avx2.X64.IsSupported ? "" : "-compatible")}", "mihomo-windows-amd64-compatible", "mihomo-windows-amd64", "mihomo-windows-386", "mihomo", "clash" }, - arguments = "-f config.json", - coreUrl = Global.MihomoCoreUrl, - coreReleaseApiUrl = Global.MihomoCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), - coreDownloadUrl32 = Global.ClashMetaCoreUrl + "/download/{0}/mihomo-windows-386-{0}.zip", - coreDownloadUrl64 = Global.ClashMetaCoreUrl + "/download/{0}/mihomo-windows-amd64-compatible-{0}.zip", - coreDownloadUrlArm64 = Global.ClashMetaCoreUrl + "/download/{0}/mihomo-windows-arm64-{0}.zip", - match = "Mihomo", - versionArg = "-v", - redirectInfo = true, - }); - - coreInfo.Add(new CoreInfo - { - coreType = ECoreType.hysteria, - coreExes = new List { "hysteria-windows-amd64", "hysteria-windows-386", "hysteria" }, - arguments = "", - coreUrl = Global.HysteriaCoreUrl, - coreReleaseApiUrl = Global.HysteriaCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), - coreDownloadUrl32 = Global.HysteriaCoreUrl + "/download/{0}/hysteria-windows-386.exe", - coreDownloadUrl64 = Global.HysteriaCoreUrl + "/download/{0}/hysteria-windows-amd64.exe", - coreDownloadUrlArm64 = Global.HysteriaCoreUrl + "/download/{0}/hysteria-windows-arm64.exe", - redirectInfo = true, - }); - - coreInfo.Add(new CoreInfo - { - coreType = ECoreType.naiveproxy, - coreExes = new List { "naiveproxy", "naive" }, - arguments = "config.json", - coreUrl = Global.NaiveproxyCoreUrl, - redirectInfo = false, - }); - - coreInfo.Add(new CoreInfo - { - coreType = ECoreType.tuic, - coreExes = new List { "tuic-client", "tuic" }, - arguments = "-c config.json", - coreUrl = Global.TuicCoreUrl, - redirectInfo = true, - }); - - coreInfo.Add(new CoreInfo - { - coreType = ECoreType.sing_box, - coreExes = new List { "sing-box-client", "sing-box" }, - arguments = "run {0} --disable-color", - coreUrl = Global.SingboxCoreUrl, - redirectInfo = true, - coreReleaseApiUrl = Global.SingboxCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), - coreDownloadUrl32 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-windows-386.zip", - coreDownloadUrl64 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-windows-amd64.zip", - coreDownloadUrlArm64 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-windows-arm64.zip", - match = "sing-box", - versionArg = "version", - }); - - coreInfo.Add(new CoreInfo - { - coreType = ECoreType.juicity, - coreExes = new List { "juicity-client", "juicity" }, - arguments = "run -c config.json", - coreUrl = Global.JuicityCoreUrl - }); - - coreInfo.Add(new CoreInfo - { - coreType = ECoreType.hysteria2, - coreExes = new List { "hysteria-windows-amd64", "hysteria-windows-386", "hysteria" }, - arguments = "", - coreUrl = Global.HysteriaCoreUrl, - coreReleaseApiUrl = Global.HysteriaCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), - coreDownloadUrl32 = Global.HysteriaCoreUrl + "/download/{0}/hysteria-windows-386.exe", - coreDownloadUrl64 = Global.HysteriaCoreUrl + "/download/{0}/hysteria-windows-amd64.exe", - coreDownloadUrlArm64 = Global.HysteriaCoreUrl + "/download/{0}/hysteria-windows-arm64.exe", - redirectInfo = true, - }); - } - #endregion Core Type } } \ No newline at end of file diff --git a/v2rayN/v2rayN/Handler/SpeedtestHandler.cs b/v2rayN/v2rayN/Handler/SpeedtestHandler.cs index 179ffd82a7..3744417d9f 100644 --- a/v2rayN/v2rayN/Handler/SpeedtestHandler.cs +++ b/v2rayN/v2rayN/Handler/SpeedtestHandler.cs @@ -146,7 +146,7 @@ private Task RunRealPing() return Task.CompletedTask; } - DownloadHandle downloadHandle = new DownloadHandle(); + DownloadHandler downloadHandle = new DownloadHandler(); List tasks = new(); foreach (var it in _selecteds) @@ -213,7 +213,7 @@ private async Task RunSpeedTestAsync() string url = _config.speedTestItem.speedTestUrl; var timeout = _config.speedTestItem.speedTestTimeout; - DownloadHandle downloadHandle = new(); + DownloadHandler downloadHandle = new(); var exitLoop = false; MessageBus.Current.Listen(Global.CommandStopSpeedTest) @@ -286,7 +286,7 @@ private async Task RunSpeedTestMulti() string url = _config.speedTestItem.speedTestUrl; var timeout = _config.speedTestItem.speedTestTimeout; - DownloadHandle downloadHandle = new(); + DownloadHandler downloadHandle = new(); var exitLoop = false; MessageBus.Current.Listen(Global.CommandStopSpeedTest) @@ -358,7 +358,7 @@ private async Task RunMixedtestAsync() await RunSpeedTestMulti(); } - private async Task GetRealPingTime(DownloadHandle downloadHandle, IWebProxy webProxy) + private async Task GetRealPingTime(DownloadHandler downloadHandle, IWebProxy webProxy) { int responseTime = await downloadHandle.GetRealPingTime(_config.speedTestItem.speedPingTestUrl, webProxy, 10); //string output = Utile.IsNullOrEmpty(status) ? FormatOut(responseTime, "ms") : status; diff --git a/v2rayN/v2rayN/Handler/SysProxyHandle.cs b/v2rayN/v2rayN/Handler/SysProxyHandler.cs similarity index 98% rename from v2rayN/v2rayN/Handler/SysProxyHandle.cs rename to v2rayN/v2rayN/Handler/SysProxyHandler.cs index bc0c601d7a..af73e311c8 100644 --- a/v2rayN/v2rayN/Handler/SysProxyHandle.cs +++ b/v2rayN/v2rayN/Handler/SysProxyHandler.cs @@ -5,7 +5,7 @@ namespace v2rayN.Handler { - public static class SysProxyHandle + public static class SysProxyHandler { private const string _regPath = @"Software\Microsoft\Windows\CurrentVersion\Internet Settings"; diff --git a/v2rayN/v2rayN/Handler/UpdateHandle.cs b/v2rayN/v2rayN/Handler/UpdateHandler.cs similarity index 96% rename from v2rayN/v2rayN/Handler/UpdateHandle.cs rename to v2rayN/v2rayN/Handler/UpdateHandler.cs index 7a469723f0..a2576bf875 100644 --- a/v2rayN/v2rayN/Handler/UpdateHandle.cs +++ b/v2rayN/v2rayN/Handler/UpdateHandler.cs @@ -11,7 +11,7 @@ namespace v2rayN.Handler { - internal class UpdateHandle + internal class UpdateHandler { private Action _updateFunc; private Config _config; @@ -38,7 +38,7 @@ public void CheckUpdateGuiN(Config config, Action update, bool pre _updateFunc = update; var url = string.Empty; - DownloadHandle downloadHandle = new(); + DownloadHandler downloadHandle = new(); downloadHandle.UpdateCompleted += (sender2, args) => { if (args.Success) @@ -107,7 +107,7 @@ public void CheckUpdateCore(ECoreType type, Config config, Action _updateFunc = update; var url = string.Empty; - DownloadHandle downloadHandle = new(); + DownloadHandler downloadHandle = new(); downloadHandle.UpdateCompleted += (sender2, args) => { if (args.Success) @@ -194,7 +194,7 @@ public void UpdateSubscriptionProcess(Config config, string subId, bool blProxy, continue; } - var downloadHandle = new DownloadHandle(); + var downloadHandle = new DownloadHandler(); downloadHandle.Error += (sender2, args) => { _updateFunc(false, $"{hashCode}{args.GetException().Message}"); @@ -306,7 +306,7 @@ public void RunAvailabilityCheck(Action update) { Task.Run(async () => { - var time = await (new DownloadHandle()).RunAvailabilityCheck(null); + var time = await (new DownloadHandler()).RunAvailabilityCheck(null); update(false, string.Format(ResUI.TestMeOutput, time)); }); @@ -318,10 +318,10 @@ private async void CheckUpdateAsync(ECoreType type, bool preRelease) { try { - var coreInfo = LazyConfig.Instance.GetCoreInfo(type); + var coreInfo = CoreInfoHandler.Instance.GetCoreInfo(type); string url = coreInfo.coreReleaseApiUrl; - var result = await (new DownloadHandle()).DownloadStringAsync(url, true, ""); + var result = await (new DownloadHandler()).DownloadStringAsync(url, true, ""); if (!Utils.IsNullOrEmpty(result)) { ResponseHandler(type, result, preRelease); @@ -346,7 +346,7 @@ private SemanticVersion GetCoreVersion(ECoreType type) { try { - var coreInfo = LazyConfig.Instance.GetCoreInfo(type); + var coreInfo = CoreInfoHandler.Instance.GetCoreInfo(type); string filePath = string.Empty; foreach (string name in coreInfo.coreExes) { @@ -416,7 +416,7 @@ private void ResponseHandler(ECoreType type, string gitHubReleaseApi, bool preRe var version = new SemanticVersion(gitHubRelease?.TagName!); var body = gitHubRelease?.Body; - var coreInfo = LazyConfig.Instance.GetCoreInfo(type); + var coreInfo = CoreInfoHandler.Instance.GetCoreInfo(type); SemanticVersion curVersion; string message; @@ -532,7 +532,7 @@ private void ResponseHandler(ECoreType type, string gitHubReleaseApi, bool preRe } } - private async Task AskToDownload(DownloadHandle downloadHandle, string url, bool blAsk) + private async Task AskToDownload(DownloadHandler downloadHandle, string url, bool blAsk) { //bool blDownload = false; //if (blAsk) @@ -558,7 +558,7 @@ private async Task UpdateGeoFile(string geoName, Config config, Action { if (args.Success) diff --git a/v2rayN/v2rayN/ViewModels/MainWindowViewModel.cs b/v2rayN/v2rayN/ViewModels/MainWindowViewModel.cs index 38584acc2f..d15388c8e2 100644 --- a/v2rayN/v2rayN/ViewModels/MainWindowViewModel.cs +++ b/v2rayN/v2rayN/ViewModels/MainWindowViewModel.cs @@ -466,11 +466,11 @@ public void MyAppExit(bool blWindowsShutDown) if (blWindowsShutDown) { - SysProxyHandle.ResetIEProxy4WindowsShutDown(); + SysProxyHandler.ResetIEProxy4WindowsShutDown(); } else { - SysProxyHandle.UpdateSysProxy(_config, true); + SysProxyHandler.UpdateSysProxy(_config, true); } ProfileExHandler.Instance.SaveTo(); @@ -656,7 +656,7 @@ public void TestServerAvailability() { return; } - (new UpdateHandle()).RunAvailabilityCheck((bool success, string msg) => + (new UpdateHandler()).RunAvailabilityCheck((bool success, string msg) => { _noticeHandler?.SendMessage(msg, true); @@ -687,7 +687,7 @@ private void SubSetting() private void UpdateSubscriptionProcess(string subId, bool blProxy) { - (new UpdateHandle()).UpdateSubscriptionProcess(_config, subId, blProxy, UpdateTaskHandler); + (new UpdateHandler()).UpdateSubscriptionProcess(_config, subId, blProxy, UpdateTaskHandler); } #endregion Subscription @@ -757,7 +757,7 @@ void _updateUI(bool success, string msg) MyAppExit(false); } } - (new UpdateHandle()).CheckUpdateGuiN(_config, _updateUI, _config.guiItem.checkPreReleaseUpdate); + (new UpdateHandler()).CheckUpdateGuiN(_config, _updateUI, _config.guiItem.checkPreReleaseUpdate); } private void CheckUpdateCore(ECoreType type, bool? preRelease) @@ -786,12 +786,12 @@ void _updateUI(bool success, string msg) } } } - (new UpdateHandle()).CheckUpdateCore(type, _config, _updateUI, preRelease ?? _config.guiItem.checkPreReleaseUpdate); + (new UpdateHandler()).CheckUpdateCore(type, _config, _updateUI, preRelease ?? _config.guiItem.checkPreReleaseUpdate); } private void CheckUpdateGeo() { - (new UpdateHandle()).UpdateGeoFileAll(_config, UpdateTaskHandler); + (new UpdateHandler()).UpdateGeoFileAll(_config, UpdateTaskHandler); } #endregion CheckUpdate @@ -865,7 +865,7 @@ public void SetListenerType(ESysProxyType type) private void ChangeSystemProxyStatus(ESysProxyType type, bool blChange) { - SysProxyHandle.UpdateSysProxy(_config, _config.tunModeItem.enableTun ? true : false); + SysProxyHandler.UpdateSysProxy(_config, _config.tunModeItem.enableTun ? true : false); _noticeHandler?.SendMessage($"{ResUI.TipChangeSystemProxy} - {_config.systemProxyItem.sysProxyType.ToString()}", true); BlSystemProxyClear = (type == ESysProxyType.ForcedClear); @@ -1029,7 +1029,7 @@ private async Task UpdateTaskRunSubscription(Config config, Action await Task.Delay(60000); Logging.SaveLog("UpdateTaskRunSubscription"); - var updateHandle = new UpdateHandle(); + var updateHandle = new UpdateHandler(); while (true) { var updateTime = ((DateTimeOffset)DateTime.Now).ToUnixTimeSeconds(); @@ -1062,7 +1062,7 @@ private async Task UpdateTaskRunGeo(Config config, Action update) await Task.Delay(1000 * 120); Logging.SaveLog("UpdateTaskRunGeo"); - var updateHandle = new UpdateHandle(); + var updateHandle = new UpdateHandler(); while (true) { var dtNow = DateTime.Now; diff --git a/v2rayN/v2rayN/ViewModels/RoutingRuleSettingViewModel.cs b/v2rayN/v2rayN/ViewModels/RoutingRuleSettingViewModel.cs index d13ca879e4..e3f6b9f717 100644 --- a/v2rayN/v2rayN/ViewModels/RoutingRuleSettingViewModel.cs +++ b/v2rayN/v2rayN/ViewModels/RoutingRuleSettingViewModel.cs @@ -295,7 +295,7 @@ private void ImportRulesFromUrl() return; } - DownloadHandle downloadHandle = new DownloadHandle(); + DownloadHandler downloadHandle = new DownloadHandler(); var result = downloadHandle.TryDownloadString(url, true, "").Result; if (AddBatchRoutingRules(SelectedRouting, result) == 0) { diff --git a/v2rayN/v2rayN/Views/MainWindow.xaml.cs b/v2rayN/v2rayN/Views/MainWindow.xaml.cs index 957cfd8bff..109d232365 100644 --- a/v2rayN/v2rayN/Views/MainWindow.xaml.cs +++ b/v2rayN/v2rayN/Views/MainWindow.xaml.cs @@ -447,7 +447,7 @@ private void StorageUI() private void AddHelpMenuItem() { - var coreInfo = LazyConfig.Instance.GetCoreInfo(); + var coreInfo = CoreInfoHandler.Instance.GetCoreInfo(); foreach (var it in coreInfo .Where(t => t.coreType != ECoreType.v2fly && t.coreType != ECoreType.clash