mirror of https://github.com/2dust/v2rayN
Add linux download url
parent
6f3e4b3682
commit
43753b1b7a
|
@ -33,6 +33,22 @@ namespace ServiceLib.Common
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void UncompressedFile(string fileName, string toPath, string? toName)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
FileInfo fileInfo = new(fileName);
|
||||||
|
using FileStream originalFileStream = fileInfo.OpenRead();
|
||||||
|
using FileStream decompressedFileStream = File.Create(toName != null ? Path.Combine(toPath, toName) : toPath);
|
||||||
|
using GZipStream decompressionStream = new(originalFileStream, CompressionMode.Decompress);
|
||||||
|
decompressionStream.CopyTo(decompressedFileStream);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logging.SaveLog(ex.Message, ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static string NonExclusiveReadAllText(string path)
|
public static string NonExclusiveReadAllText(string path)
|
||||||
{
|
{
|
||||||
return NonExclusiveReadAllText(path, Encoding.Default);
|
return NonExclusiveReadAllText(path, Encoding.Default);
|
||||||
|
@ -99,5 +115,6 @@ namespace ServiceLib.Common
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -593,20 +593,22 @@ namespace ServiceLib.Common
|
||||||
string location = GetExePath();
|
string location = GetExePath();
|
||||||
if (blFull)
|
if (blFull)
|
||||||
{
|
{
|
||||||
return string.Format("v2rayN - V{0} - {1}",
|
return string.Format("{0} - V{1} - {2}",
|
||||||
|
Global.AppName,
|
||||||
FileVersionInfo.GetVersionInfo(location).FileVersion?.ToString(),
|
FileVersionInfo.GetVersionInfo(location).FileVersion?.ToString(),
|
||||||
File.GetLastWriteTime(location).ToString("yyyy/MM/dd"));
|
File.GetLastWriteTime(location).ToString("yyyy/MM/dd"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return string.Format("v2rayN/{0}",
|
return string.Format("{0}/{1}",
|
||||||
|
Global.AppName,
|
||||||
FileVersionInfo.GetVersionInfo(location).FileVersion?.ToString());
|
FileVersionInfo.GetVersionInfo(location).FileVersion?.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Logging.SaveLog(ex.Message, ex);
|
Logging.SaveLog(ex.Message, ex);
|
||||||
return string.Empty;
|
return Global.AppName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
{
|
{
|
||||||
#region const
|
#region const
|
||||||
|
|
||||||
|
public const string AppName = "v2rayN";
|
||||||
public const string GithubUrl = "https://github.com";
|
public const string GithubUrl = "https://github.com";
|
||||||
public const string GithubApiUrl = "https://api.github.com/repos";
|
public const string GithubApiUrl = "https://api.github.com/repos";
|
||||||
public const string V2flyCoreUrl = "https://github.com/v2fly/v2ray-core/releases";
|
public const string V2flyCoreUrl = "https://github.com/v2fly/v2ray-core/releases";
|
||||||
|
|
|
@ -42,7 +42,10 @@ namespace ServiceLib.Handler
|
||||||
coreReleaseApiUrl = Global.NUrl.Replace(Global.GithubUrl, Global.GithubApiUrl),
|
coreReleaseApiUrl = Global.NUrl.Replace(Global.GithubUrl, Global.GithubApiUrl),
|
||||||
coreDownloadUrl32 = Global.NUrl + "/download/{0}/v2rayN-32.zip",
|
coreDownloadUrl32 = Global.NUrl + "/download/{0}/v2rayN-32.zip",
|
||||||
coreDownloadUrl64 = Global.NUrl + "/download/{0}/v2rayN.zip",
|
coreDownloadUrl64 = Global.NUrl + "/download/{0}/v2rayN.zip",
|
||||||
coreDownloadUrlArm64 = Global.NUrl + "/download/{0}/v2rayN-arm64.zip"
|
coreDownloadUrlArm64 = Global.NUrl + "/download/{0}/v2rayN-arm64.zip",
|
||||||
|
coreDownloadUrlLinux32 = Global.NUrl + "/download/{0}/v2rayN-linux-32.zip",
|
||||||
|
coreDownloadUrlLinux64 = Global.NUrl + "/download/{0}/v2rayN-linux-64.zip",
|
||||||
|
coreDownloadUrlLinuxArm64 = Global.NUrl + "/download/{0}/v2rayN-linux-arm64.zip",
|
||||||
});
|
});
|
||||||
|
|
||||||
_coreInfo.Add(new CoreInfo
|
_coreInfo.Add(new CoreInfo
|
||||||
|
@ -52,9 +55,6 @@ namespace ServiceLib.Handler
|
||||||
arguments = "",
|
arguments = "",
|
||||||
coreUrl = Global.V2flyCoreUrl,
|
coreUrl = Global.V2flyCoreUrl,
|
||||||
coreReleaseApiUrl = Global.V2flyCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl),
|
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",
|
match = "V2Ray",
|
||||||
versionArg = "-version",
|
versionArg = "-version",
|
||||||
redirectInfo = true,
|
redirectInfo = true,
|
||||||
|
@ -67,9 +67,6 @@ namespace ServiceLib.Handler
|
||||||
arguments = "run",
|
arguments = "run",
|
||||||
coreUrl = Global.SagerNetCoreUrl,
|
coreUrl = Global.SagerNetCoreUrl,
|
||||||
coreReleaseApiUrl = Global.SagerNetCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl),
|
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",
|
match = "V2Ray",
|
||||||
versionArg = "version",
|
versionArg = "version",
|
||||||
redirectInfo = true,
|
redirectInfo = true,
|
||||||
|
@ -82,9 +79,6 @@ namespace ServiceLib.Handler
|
||||||
arguments = "run -c config.json -format jsonv5",
|
arguments = "run -c config.json -format jsonv5",
|
||||||
coreUrl = Global.V2flyCoreUrl,
|
coreUrl = Global.V2flyCoreUrl,
|
||||||
coreReleaseApiUrl = Global.V2flyCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl),
|
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",
|
match = "V2Ray",
|
||||||
versionArg = "version",
|
versionArg = "version",
|
||||||
redirectInfo = true,
|
redirectInfo = true,
|
||||||
|
@ -97,9 +91,12 @@ namespace ServiceLib.Handler
|
||||||
arguments = "run {0}",
|
arguments = "run {0}",
|
||||||
coreUrl = Global.XrayCoreUrl,
|
coreUrl = Global.XrayCoreUrl,
|
||||||
coreReleaseApiUrl = Global.XrayCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl),
|
coreReleaseApiUrl = Global.XrayCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl),
|
||||||
coreDownloadUrl32 = Global.XrayCoreUrl + "/download/{0}/Xray-windows-{1}.zip",
|
coreDownloadUrl32 = Global.XrayCoreUrl + "/download/{0}/Xray-windows-32.zip",
|
||||||
coreDownloadUrl64 = Global.XrayCoreUrl + "/download/{0}/Xray-windows-{1}.zip",
|
coreDownloadUrl64 = Global.XrayCoreUrl + "/download/{0}/Xray-windows-64.zip",
|
||||||
coreDownloadUrlArm64 = Global.XrayCoreUrl + "/download/{0}/Xray-windows-{1}.zip",
|
coreDownloadUrlArm64 = Global.XrayCoreUrl + "/download/{0}/Xray-windows-arm64-v8a.zip",
|
||||||
|
coreDownloadUrlLinux32 = Global.XrayCoreUrl + "/download/{0}/Xray-linux-32.zip",
|
||||||
|
coreDownloadUrlLinux64 = Global.XrayCoreUrl + "/download/{0}/Xray-linux-64.zip",
|
||||||
|
coreDownloadUrlLinuxArm64 = Global.XrayCoreUrl + "/download/{0}/Xray-linux-arm64-v8a.zip",
|
||||||
match = "Xray",
|
match = "Xray",
|
||||||
versionArg = "-version",
|
versionArg = "-version",
|
||||||
redirectInfo = true,
|
redirectInfo = true,
|
||||||
|
@ -112,9 +109,6 @@ namespace ServiceLib.Handler
|
||||||
arguments = "-f config.json",
|
arguments = "-f config.json",
|
||||||
coreUrl = Global.ClashCoreUrl,
|
coreUrl = Global.ClashCoreUrl,
|
||||||
coreReleaseApiUrl = Global.ClashCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl),
|
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",
|
match = "v",
|
||||||
versionArg = "-v",
|
versionArg = "-v",
|
||||||
redirectInfo = true,
|
redirectInfo = true,
|
||||||
|
@ -127,9 +121,6 @@ namespace ServiceLib.Handler
|
||||||
arguments = "-f config.json",
|
arguments = "-f config.json",
|
||||||
coreUrl = Global.ClashMetaCoreUrl,
|
coreUrl = Global.ClashMetaCoreUrl,
|
||||||
coreReleaseApiUrl = Global.ClashMetaCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl),
|
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",
|
match = "v",
|
||||||
versionArg = "-v",
|
versionArg = "-v",
|
||||||
redirectInfo = true,
|
redirectInfo = true,
|
||||||
|
@ -145,6 +136,9 @@ namespace ServiceLib.Handler
|
||||||
coreDownloadUrl32 = Global.ClashMetaCoreUrl + "/download/{0}/mihomo-windows-386-{0}.zip",
|
coreDownloadUrl32 = Global.ClashMetaCoreUrl + "/download/{0}/mihomo-windows-386-{0}.zip",
|
||||||
coreDownloadUrl64 = Global.ClashMetaCoreUrl + "/download/{0}/mihomo-windows-amd64-compatible-{0}.zip",
|
coreDownloadUrl64 = Global.ClashMetaCoreUrl + "/download/{0}/mihomo-windows-amd64-compatible-{0}.zip",
|
||||||
coreDownloadUrlArm64 = Global.ClashMetaCoreUrl + "/download/{0}/mihomo-windows-arm64-{0}.zip",
|
coreDownloadUrlArm64 = Global.ClashMetaCoreUrl + "/download/{0}/mihomo-windows-arm64-{0}.zip",
|
||||||
|
coreDownloadUrlLinux32 = Global.ClashMetaCoreUrl + "/download/{0}/mihomo-linux-386-{0}.gz",
|
||||||
|
coreDownloadUrlLinux64 = Global.ClashMetaCoreUrl + "/download/{0}/mihomo-linux-amd64-compatible-{0}.gz",
|
||||||
|
coreDownloadUrlLinuxArm64 = Global.ClashMetaCoreUrl + "/download/{0}/mihomo-linux-arm64-{0}.gz",
|
||||||
match = "Mihomo",
|
match = "Mihomo",
|
||||||
versionArg = "-v",
|
versionArg = "-v",
|
||||||
redirectInfo = true,
|
redirectInfo = true,
|
||||||
|
@ -157,9 +151,6 @@ namespace ServiceLib.Handler
|
||||||
arguments = "",
|
arguments = "",
|
||||||
coreUrl = Global.HysteriaCoreUrl,
|
coreUrl = Global.HysteriaCoreUrl,
|
||||||
coreReleaseApiUrl = Global.HysteriaCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl),
|
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,
|
redirectInfo = true,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -192,6 +183,9 @@ namespace ServiceLib.Handler
|
||||||
coreDownloadUrl32 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-windows-386.zip",
|
coreDownloadUrl32 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-windows-386.zip",
|
||||||
coreDownloadUrl64 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-windows-amd64.zip",
|
coreDownloadUrl64 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-windows-amd64.zip",
|
||||||
coreDownloadUrlArm64 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-windows-arm64.zip",
|
coreDownloadUrlArm64 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-windows-arm64.zip",
|
||||||
|
coreDownloadUrlLinux32 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-linux-386.tar.gz",
|
||||||
|
coreDownloadUrlLinux64 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-linux-amd64.tar.gz",
|
||||||
|
coreDownloadUrlLinuxArm64 = Global.SingboxCoreUrl + "/download/{0}/sing-box-{1}-linux-arm64.tar.gz",
|
||||||
match = "sing-box",
|
match = "sing-box",
|
||||||
versionArg = "version",
|
versionArg = "version",
|
||||||
});
|
});
|
||||||
|
@ -211,9 +205,6 @@ namespace ServiceLib.Handler
|
||||||
arguments = "",
|
arguments = "",
|
||||||
coreUrl = Global.HysteriaCoreUrl,
|
coreUrl = Global.HysteriaCoreUrl,
|
||||||
coreReleaseApiUrl = Global.HysteriaCoreUrl.Replace(Global.GithubUrl, Global.GithubApiUrl),
|
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,
|
redirectInfo = true,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -308,7 +308,7 @@ namespace ServiceLib.Handler
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取V2RayCore版本
|
/// 获取Core版本
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private SemanticVersion GetCoreVersion(ECoreType type)
|
private SemanticVersion GetCoreVersion(ECoreType type)
|
||||||
{
|
{
|
||||||
|
@ -318,7 +318,7 @@ namespace ServiceLib.Handler
|
||||||
string filePath = string.Empty;
|
string filePath = string.Empty;
|
||||||
foreach (string name in coreInfo.coreExes)
|
foreach (string name in coreInfo.coreExes)
|
||||||
{
|
{
|
||||||
string vName = $"{name}.exe";
|
string vName = Utils.GetExeName(name);
|
||||||
vName = Utils.GetBinPath(vName, coreInfo.coreType.ToString());
|
vName = Utils.GetBinPath(vName, coreInfo.coreType.ToString());
|
||||||
if (File.Exists(vName))
|
if (File.Exists(vName))
|
||||||
{
|
{
|
||||||
|
@ -385,10 +385,9 @@ namespace ServiceLib.Handler
|
||||||
var body = gitHubRelease?.Body;
|
var body = gitHubRelease?.Body;
|
||||||
|
|
||||||
var coreInfo = CoreInfoHandler.Instance.GetCoreInfo(type);
|
var coreInfo = CoreInfoHandler.Instance.GetCoreInfo(type);
|
||||||
|
|
||||||
SemanticVersion curVersion;
|
SemanticVersion curVersion;
|
||||||
string message;
|
string message;
|
||||||
string url;
|
string? url;
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case ECoreType.v2fly:
|
case ECoreType.v2fly:
|
||||||
|
@ -398,23 +397,7 @@ namespace ServiceLib.Handler
|
||||||
{
|
{
|
||||||
curVersion = GetCoreVersion(type);
|
curVersion = GetCoreVersion(type);
|
||||||
message = string.Format(ResUI.IsLatestCore, type, curVersion.ToVersionString("v"));
|
message = string.Format(ResUI.IsLatestCore, type, curVersion.ToVersionString("v"));
|
||||||
string osBit = "64";
|
url = string.Format(GetUrlFromCore(coreInfo), version.ToVersionString("v"));
|
||||||
switch (RuntimeInformation.ProcessArchitecture)
|
|
||||||
{
|
|
||||||
case Architecture.Arm64:
|
|
||||||
osBit = "arm64-v8a";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case Architecture.X86:
|
|
||||||
osBit = "32";
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
osBit = "64";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
url = string.Format(coreInfo.coreDownloadUrl64, version.ToVersionString("v"), osBit);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ECoreType.clash:
|
case ECoreType.clash:
|
||||||
|
@ -423,62 +406,21 @@ namespace ServiceLib.Handler
|
||||||
{
|
{
|
||||||
curVersion = GetCoreVersion(type);
|
curVersion = GetCoreVersion(type);
|
||||||
message = string.Format(ResUI.IsLatestCore, type, curVersion);
|
message = string.Format(ResUI.IsLatestCore, type, curVersion);
|
||||||
switch (RuntimeInformation.ProcessArchitecture)
|
url = string.Format(GetUrlFromCore(coreInfo), version.ToVersionString("v"));
|
||||||
{
|
|
||||||
case Architecture.Arm64:
|
|
||||||
url = coreInfo.coreDownloadUrlArm64;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case Architecture.X86:
|
|
||||||
url = coreInfo.coreDownloadUrl32;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
url = coreInfo.coreDownloadUrl64;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
url = string.Format(url, version.ToVersionString("v"));
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ECoreType.sing_box:
|
case ECoreType.sing_box:
|
||||||
{
|
{
|
||||||
curVersion = GetCoreVersion(type);
|
curVersion = GetCoreVersion(type);
|
||||||
message = string.Format(ResUI.IsLatestCore, type, curVersion.ToVersionString("v"));
|
message = string.Format(ResUI.IsLatestCore, type, curVersion.ToVersionString("v"));
|
||||||
switch (RuntimeInformation.ProcessArchitecture)
|
url = string.Format(GetUrlFromCore(coreInfo), version.ToVersionString("v"), version);
|
||||||
{
|
|
||||||
case Architecture.Arm64:
|
|
||||||
url = coreInfo.coreDownloadUrlArm64;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case Architecture.X86:
|
|
||||||
url = coreInfo.coreDownloadUrl32;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
url = coreInfo.coreDownloadUrl64;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
url = string.Format(url, version.ToVersionString("v"), version);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ECoreType.v2rayN:
|
case ECoreType.v2rayN:
|
||||||
{
|
{
|
||||||
curVersion = new SemanticVersion(FileVersionInfo.GetVersionInfo(Utils.GetExePath()).FileVersion.ToString());
|
curVersion = new SemanticVersion(FileVersionInfo.GetVersionInfo(Utils.GetExePath()).FileVersion.ToString());
|
||||||
message = string.Format(ResUI.IsLatestN, type, curVersion);
|
message = string.Format(ResUI.IsLatestN, type, curVersion);
|
||||||
switch (RuntimeInformation.ProcessArchitecture)
|
url = string.Format(GetUrlFromCore(coreInfo), version);
|
||||||
{
|
|
||||||
case Architecture.Arm64:
|
|
||||||
url = string.Format(coreInfo.coreDownloadUrlArm64, version);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case Architecture.X86:
|
|
||||||
url = string.Format(coreInfo.coreDownloadUrl32, version);
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
url = string.Format(coreInfo.coreDownloadUrl64, version);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
@ -500,6 +442,31 @@ namespace ServiceLib.Handler
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string? GetUrlFromCore(CoreInfo? coreInfo)
|
||||||
|
{
|
||||||
|
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
||||||
|
{
|
||||||
|
return RuntimeInformation.ProcessArchitecture switch
|
||||||
|
{
|
||||||
|
Architecture.Arm64 => coreInfo?.coreDownloadUrlArm64,
|
||||||
|
Architecture.X86 => coreInfo?.coreDownloadUrl32,
|
||||||
|
Architecture.X64 => coreInfo?.coreDownloadUrl64,
|
||||||
|
_ => null,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
|
||||||
|
{
|
||||||
|
return RuntimeInformation.ProcessArchitecture switch
|
||||||
|
{
|
||||||
|
Architecture.Arm64 => coreInfo?.coreDownloadUrlLinuxArm64,
|
||||||
|
Architecture.X86 => coreInfo?.coreDownloadUrlLinux32,
|
||||||
|
Architecture.X64 => coreInfo?.coreDownloadUrlLinux64,
|
||||||
|
_ => null,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
private async Task AskToDownload(DownloadHandler downloadHandle, string url, bool blAsk)
|
private async Task AskToDownload(DownloadHandler downloadHandle, string url, bool blAsk)
|
||||||
{
|
{
|
||||||
//bool blDownload = false;
|
//bool blDownload = false;
|
||||||
|
|
|
@ -18,6 +18,9 @@
|
||||||
public string coreDownloadUrl64 { get; set; }
|
public string coreDownloadUrl64 { get; set; }
|
||||||
|
|
||||||
public string coreDownloadUrlArm64 { get; set; }
|
public string coreDownloadUrlArm64 { get; set; }
|
||||||
|
public string? coreDownloadUrlLinux32 { get; set; }
|
||||||
|
public string? coreDownloadUrlLinux64 { get; set; }
|
||||||
|
public string? coreDownloadUrlLinuxArm64 { get; set; }
|
||||||
|
|
||||||
public string match { get; set; }
|
public string match { get; set; }
|
||||||
public string versionArg { get; set; }
|
public string versionArg { get; set; }
|
||||||
|
|
|
@ -766,7 +766,18 @@ namespace ServiceLib.ViewModels
|
||||||
string fileName = Utils.GetTempPath(Utils.GetDownloadFileName(msg));
|
string fileName = Utils.GetTempPath(Utils.GetDownloadFileName(msg));
|
||||||
string toPath = Utils.GetBinPath("", type.ToString());
|
string toPath = Utils.GetBinPath("", type.ToString());
|
||||||
|
|
||||||
|
if (fileName.Contains(".tar.gz"))
|
||||||
|
{
|
||||||
|
//It's too complicated to unzip. TODO
|
||||||
|
}
|
||||||
|
else if (fileName.Contains(".gz"))
|
||||||
|
{
|
||||||
|
FileManager.UncompressedFile(fileName, toPath, type.ToString());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
FileManager.ZipExtractToFile(fileName, toPath, _config.guiItem.ignoreGeoUpdateCore ? "geo" : "");
|
FileManager.ZipExtractToFile(fileName, toPath, _config.guiItem.ignoreGeoUpdateCore ? "geo" : "");
|
||||||
|
}
|
||||||
|
|
||||||
_noticeHandler?.SendMessage(ResUI.MsgUpdateV2rayCoreSuccessfullyMore);
|
_noticeHandler?.SendMessage(ResUI.MsgUpdateV2rayCoreSuccessfullyMore);
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ namespace v2rayN
|
||||||
{
|
{
|
||||||
internal class UI
|
internal class UI
|
||||||
{
|
{
|
||||||
private static readonly string caption = "v2rayN";
|
private static readonly string caption = Global.AppName;
|
||||||
|
|
||||||
public static void Show(string msg)
|
public static void Show(string msg)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue