add clash core

pull/2148/head
2dust 2022-03-19 19:26:51 +08:00
parent 5b8ce1836b
commit 5e5893362c
5 changed files with 39 additions and 4 deletions

View File

@ -18,6 +18,7 @@ namespace v2rayN.Forms
private void AddServer2Form_Load(object sender, EventArgs e)
{
cmbCoreType.Items.AddRange(Global.coreTypes.ToArray());
cmbCoreType.Items.Add("clash");
cmbCoreType.Items.Add(string.Empty);
txtAddress.ReadOnly = true;
@ -112,7 +113,7 @@ namespace v2rayN.Forms
OpenFileDialog fileDialog = new OpenFileDialog
{
Multiselect = false,
Filter = "Config|*.json|All|*.*"
Filter = "Config|*.json|YAML|*.yaml|All|*.*"
};
if (fileDialog.ShowDialog() != DialogResult.OK)
{

View File

@ -14,6 +14,9 @@ namespace v2rayN
public const string v2flyCoreUrl = "https://github.com/v2fly/v2ray-core/releases";
public const string xrayCoreUrl = "https://github.com/XTLS/Xray-core/releases";
public const string NUrl = @"https://github.com/2dust/v2rayN/releases";
public const string clashCoreUrl = "https://github.com/Dreamacro/clash/releases";
/// <summary>

View File

@ -426,7 +426,12 @@ namespace v2rayN.Handler
public static int AddCustomServer(ref Config config, VmessItem vmessItem)
{
var fileName = vmessItem.address;
string newFileName = string.Format("{0}.json", Utils.GetGUID());
if (!File.Exists(fileName))
{
return -1;
}
var ext = Path.GetExtension(fileName);
string newFileName = string.Format("{0}{1}", Utils.GetGUID(), ext);
//newFileName = Path.Combine(Utils.GetTempPath(), newFileName);
try

View File

@ -23,6 +23,7 @@ namespace v2rayN.Handler
private static string v2rayConfigRes = Global.v2rayConfigFileName;
private List<string> lstV2ray;
private string coreUrl;
private string coreArguments;
public event ProcessDelegate ProcessEvent;
//private int processId = 0;
private Process _process;
@ -39,6 +40,12 @@ namespace v2rayN.Handler
if (Global.reloadV2ray)
{
var item = ConfigHandler.GetDefaultServer(ref config);
if (item == null)
{
ShowMsg(false, UIRes.I18N("CheckServerSettings"));
return;
}
SetCore(config, item);
string fileName = Utils.GetPath(v2rayConfigRes);
if (V2rayConfigHandler.GenerateClientConfig(item, fileName, false, out string msg) != 0)
@ -196,6 +203,7 @@ namespace v2rayN.Handler
StartInfo = new ProcessStartInfo
{
FileName = fileName,
Arguments = coreArguments,
WorkingDirectory = Utils.StartupPath(),
UseShellExecute = false,
RedirectStandardOutput = true,
@ -320,6 +328,10 @@ namespace v2rayN.Handler
private void SetCore(Config config, VmessItem item)
{
if (item == null)
{
return;
}
var coreType = config.GetCoreType(item.configType);
if (item.coreType != null)
{
@ -334,14 +346,27 @@ namespace v2rayN.Handler
"v2ray"
};
coreUrl = Global.v2flyCoreUrl;
coreArguments = string.Empty;
}
else
else if (coreType == ECoreType.Xray)
{
lstV2ray = new List<string>
{
"xray"
};
coreUrl = Global.xrayCoreUrl;
coreArguments = string.Empty;
}
else if (coreType == ECoreType.clash)
{
lstV2ray = new List<string>
{
"clash-windows-amd64",
"clash-windows-386",
"clash"
};
coreUrl = Global.clashCoreUrl;
coreArguments = "-f config.json";
}
}
}

View File

@ -4,6 +4,7 @@ namespace v2rayN.Mode
public enum ECoreType
{
v2fly = 1,
Xray = 2
Xray = 2,
clash = 3
}
}