diff --git a/v2rayN/ServiceLib/Handler/CoreInfoHandler.cs b/v2rayN/ServiceLib/Handler/CoreInfoHandler.cs index 7a947e623f6..1fa073f863f 100644 --- a/v2rayN/ServiceLib/Handler/CoreInfoHandler.cs +++ b/v2rayN/ServiceLib/Handler/CoreInfoHandler.cs @@ -52,144 +52,146 @@ public string GetCoreExecFile(CoreInfo? coreInfo, out string msg) private void InitCoreInfo() { - _coreInfo = []; + _coreInfo = + [ + new CoreInfo + { + CoreType = ECoreType.v2rayN, + Url = Global.NUrl, + ReleaseApiUrl = Global.NUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), + DownloadUrlWin64 = Global.NUrl + "/download/{0}/v2rayN-windows-64.zip", + DownloadUrlWinArm64 = Global.NUrl + "/download/{0}/v2rayN-windows-arm64.zip", + DownloadUrlLinux64 = Global.NUrl + "/download/{0}/v2rayN-linux-64.zip", + DownloadUrlLinuxArm64 = Global.NUrl + "/download/{0}/v2rayN-linux-arm64.zip", + DownloadUrlOSX64 = Global.NUrl + "/download/{0}/v2rayN-macos-64.zip", + DownloadUrlOSXArm64 = Global.NUrl + "/download/{0}/v2rayN-macos-arm64.zip", + }, + + new CoreInfo + { + CoreType = ECoreType.v2fly, + CoreExes = ["wv2ray", "v2ray"], + Arguments = "", + Url = Global.V2flyCoreUrl, + ReleaseApiUrl = Global.V2flyCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), + Match = "V2Ray", + VersionArg = "-version", + RedirectInfo = true, + }, + + new CoreInfo + { + CoreType = ECoreType.v2fly_v5, + CoreExes = ["v2ray"], + Arguments = "run -c config.json -format jsonv5", + Url = Global.V2flyCoreUrl, + ReleaseApiUrl = Global.V2flyCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), + Match = "V2Ray", + VersionArg = "version", + RedirectInfo = true, + }, + + new CoreInfo + { + CoreType = ECoreType.Xray, + CoreExes = ["xray", "wxray"], + Arguments = "run -c {0}", + Url = Global.XrayCoreUrl, + ReleaseApiUrl = Global.XrayCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), + DownloadUrlWin64 = Global.XrayCoreUrl + "/download/{0}/Xray-windows-64.zip", + DownloadUrlWinArm64 = Global.XrayCoreUrl + "/download/{0}/Xray-windows-arm64-v8a.zip", + DownloadUrlLinux64 = Global.XrayCoreUrl + "/download/{0}/Xray-linux-64.zip", + DownloadUrlLinuxArm64 = Global.XrayCoreUrl + "/download/{0}/Xray-linux-arm64-v8a.zip", + DownloadUrlOSX64 = Global.XrayCoreUrl + "/download/{0}/Xray-macos-64.zip", + DownloadUrlOSXArm64 = Global.XrayCoreUrl + "/download/{0}/Xray-macos-arm64-v8a.zip", + Match = "Xray", + VersionArg = "-version", + RedirectInfo = true, + }, + + new CoreInfo + { + CoreType = ECoreType.mihomo, + CoreExes = ["mihomo-windows-amd64-compatible", "mihomo-windows-amd64", "mihomo-linux-amd64", "mihomo", "clash"], + Arguments = "-f config.json" + PortableMode(), + Url = Global.MihomoCoreUrl, + ReleaseApiUrl = Global.MihomoCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), + DownloadUrlWin64 = Global.MihomoCoreUrl + "/download/{0}/mihomo-windows-amd64-compatible-{0}.zip", + DownloadUrlWinArm64 = Global.MihomoCoreUrl + "/download/{0}/mihomo-windows-arm64-{0}.zip", + DownloadUrlLinux64 = Global.MihomoCoreUrl + "/download/{0}/mihomo-linux-amd64-compatible-{0}.gz", + DownloadUrlLinuxArm64 = Global.MihomoCoreUrl + "/download/{0}/mihomo-linux-arm64-{0}.gz", + DownloadUrlOSX64 = Global.MihomoCoreUrl + "/download/{0}/mihomo-darwin-amd64-compatible-{0}.gz", + DownloadUrlOSXArm64 = Global.MihomoCoreUrl + "/download/{0}/mihomo-darwin-arm64-{0}.gz", + Match = "Mihomo", + VersionArg = "-v", + RedirectInfo = true, + }, + + new CoreInfo + { + CoreType = ECoreType.hysteria, + CoreExes = ["hysteria-windows-amd64", "hysteria"], + Arguments = "", + Url = Global.HysteriaCoreUrl, + ReleaseApiUrl = Global.HysteriaCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), + RedirectInfo = true, + }, + + new CoreInfo + { + CoreType = ECoreType.naiveproxy, + CoreExes = ["naiveproxy", "naive"], + Arguments = "config.json", + Url = Global.NaiveproxyCoreUrl, + RedirectInfo = false, + }, + + new CoreInfo + { + CoreType = ECoreType.tuic, + CoreExes = ["tuic-client", "tuic"], + Arguments = "-c config.json", + Url = Global.TuicCoreUrl, + RedirectInfo = true, + }, + + new CoreInfo + { + CoreType = ECoreType.sing_box, + CoreExes = ["sing-box-client", "sing-box"], + Arguments = "run -c {0} --disable-color", + Url = Global.SingboxCoreUrl, + RedirectInfo = true, + ReleaseApiUrl = Global.SingboxCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), + DownloadUrlWin64 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-windows-amd64.zip", + DownloadUrlWinArm64 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-windows-arm64.zip", + DownloadUrlLinux64 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-linux-amd64.tar.gz", + DownloadUrlLinuxArm64 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-linux-arm64.tar.gz", + DownloadUrlOSX64 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-darwin-amd64.tar.gz", + DownloadUrlOSXArm64 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-darwin-arm64.tar.gz", + Match = "sing-box", + VersionArg = "version", + }, + + new CoreInfo + { + CoreType = ECoreType.juicity, + CoreExes = ["juicity-client", "juicity"], + Arguments = "run -c config.json", + Url = Global.JuicityCoreUrl + }, - _coreInfo.Add(new CoreInfo - { - CoreType = ECoreType.v2rayN, - Url = Global.NUrl, - ReleaseApiUrl = Global.NUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), - DownloadUrlWin64 = Global.NUrl + "/download/{0}/v2rayN-windows-64.zip", - DownloadUrlWinArm64 = Global.NUrl + "/download/{0}/v2rayN-windows-arm64.zip", - DownloadUrlLinux64 = Global.NUrl + "/download/{0}/v2rayN-linux-64.zip", - DownloadUrlLinuxArm64 = Global.NUrl + "/download/{0}/v2rayN-linux-arm64.zip", - DownloadUrlOSX64 = Global.NUrl + "/download/{0}/v2rayN-macos-64.zip", - DownloadUrlOSXArm64 = Global.NUrl + "/download/{0}/v2rayN-macos-arm64.zip", - }); - - _coreInfo.Add(new CoreInfo - { - CoreType = ECoreType.v2fly, - CoreExes = new List { "wv2ray", "v2ray" }, - Arguments = "", - Url = Global.V2flyCoreUrl, - ReleaseApiUrl = Global.V2flyCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), - 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", - Url = Global.V2flyCoreUrl, - ReleaseApiUrl = Global.V2flyCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), - Match = "V2Ray", - VersionArg = "version", - RedirectInfo = true, - }); - - _coreInfo.Add(new CoreInfo - { - CoreType = ECoreType.Xray, - CoreExes = new List { "xray", "wxray" }, - Arguments = "run -c {0}", - Url = Global.XrayCoreUrl, - ReleaseApiUrl = Global.XrayCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), - DownloadUrlWin64 = Global.XrayCoreUrl + "/download/{0}/Xray-windows-64.zip", - DownloadUrlWinArm64 = Global.XrayCoreUrl + "/download/{0}/Xray-windows-arm64-v8a.zip", - DownloadUrlLinux64 = Global.XrayCoreUrl + "/download/{0}/Xray-linux-64.zip", - DownloadUrlLinuxArm64 = Global.XrayCoreUrl + "/download/{0}/Xray-linux-arm64-v8a.zip", - DownloadUrlOSX64 = Global.XrayCoreUrl + "/download/{0}/Xray-macos-64.zip", - DownloadUrlOSXArm64 = Global.XrayCoreUrl + "/download/{0}/Xray-macos-arm64-v8a.zip", - Match = "Xray", - VersionArg = "-version", - RedirectInfo = true, - }); - - _coreInfo.Add(new CoreInfo - { - CoreType = ECoreType.mihomo, - CoreExes = new List { "mihomo-windows-amd64-compatible", "mihomo-windows-amd64", "mihomo-linux-amd64", "mihomo", "clash" }, - Arguments = "-f config.json" + PortableMode(), - Url = Global.MihomoCoreUrl, - ReleaseApiUrl = Global.MihomoCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), - DownloadUrlWin64 = Global.MihomoCoreUrl + "/download/{0}/mihomo-windows-amd64-compatible-{0}.zip", - DownloadUrlWinArm64 = Global.MihomoCoreUrl + "/download/{0}/mihomo-windows-arm64-{0}.zip", - DownloadUrlLinux64 = Global.MihomoCoreUrl + "/download/{0}/mihomo-linux-amd64-compatible-{0}.gz", - DownloadUrlLinuxArm64 = Global.MihomoCoreUrl + "/download/{0}/mihomo-linux-arm64-{0}.gz", - DownloadUrlOSX64 = Global.MihomoCoreUrl + "/download/{0}/mihomo-darwin-amd64-compatible-{0}.gz", - DownloadUrlOSXArm64 = Global.MihomoCoreUrl + "/download/{0}/mihomo-darwin-arm64-{0}.gz", - Match = "Mihomo", - VersionArg = "-v", - RedirectInfo = true, - }); - - _coreInfo.Add(new CoreInfo - { - CoreType = ECoreType.hysteria, - CoreExes = new List { "hysteria-windows-amd64", "hysteria" }, - Arguments = "", - Url = Global.HysteriaCoreUrl, - ReleaseApiUrl = Global.HysteriaCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), - RedirectInfo = true, - }); - - _coreInfo.Add(new CoreInfo - { - CoreType = ECoreType.naiveproxy, - CoreExes = new List { "naiveproxy", "naive" }, - Arguments = "config.json", - Url = Global.NaiveproxyCoreUrl, - RedirectInfo = false, - }); - - _coreInfo.Add(new CoreInfo - { - CoreType = ECoreType.tuic, - CoreExes = new List { "tuic-client", "tuic" }, - Arguments = "-c config.json", - Url = Global.TuicCoreUrl, - RedirectInfo = true, - }); - - _coreInfo.Add(new CoreInfo - { - CoreType = ECoreType.sing_box, - CoreExes = new List { "sing-box-client", "sing-box" }, - Arguments = "run -c {0} --disable-color", - Url = Global.SingboxCoreUrl, - RedirectInfo = true, - ReleaseApiUrl = Global.SingboxCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), - DownloadUrlWin64 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-windows-amd64.zip", - DownloadUrlWinArm64 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-windows-arm64.zip", - DownloadUrlLinux64 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-linux-amd64.tar.gz", - DownloadUrlLinuxArm64 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-linux-arm64.tar.gz", - DownloadUrlOSX64 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-darwin-amd64.tar.gz", - DownloadUrlOSXArm64 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-darwin-arm64.tar.gz", - Match = "sing-box", - VersionArg = "version", - }); - - _coreInfo.Add(new CoreInfo - { - CoreType = ECoreType.juicity, - CoreExes = new List { "juicity-client", "juicity" }, - Arguments = "run -c config.json", - Url = Global.JuicityCoreUrl - }); + new CoreInfo + { + CoreType = ECoreType.hysteria2, + CoreExes = ["hysteria-windows-amd64", "hysteria-linux-amd64", "hysteria"], + Arguments = "", + Url = Global.HysteriaCoreUrl, + ReleaseApiUrl = Global.HysteriaCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), + RedirectInfo = true, + } - _coreInfo.Add(new CoreInfo - { - CoreType = ECoreType.hysteria2, - CoreExes = new List { "hysteria-windows-amd64", "hysteria-linux-amd64", "hysteria" }, - Arguments = "", - Url = Global.HysteriaCoreUrl, - ReleaseApiUrl = Global.HysteriaCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl), - RedirectInfo = true, - }); + ]; } private string PortableMode()