show custom config variables properly in config table

This commit is contained in:
Muhammad 2024-06-01 20:30:44 +03:30
parent 2000ec8d62
commit 8b49b22d92
2 changed files with 26 additions and 4 deletions

View file

@ -563,7 +563,7 @@ namespace v2rayN.Handler
/// <returns></returns> /// <returns></returns>
public static int AddCustomServer(Config config, ProfileItem profileItem, bool blDelete) public static int AddCustomServer(Config config, ProfileItem profileItem, bool blDelete)
{ {
var fileName = profileItem.address; var fileName = profileItem.jsonFileAddress;
if (!File.Exists(fileName)) if (!File.Exists(fileName))
{ {
return -1; return -1;
@ -586,7 +586,8 @@ namespace v2rayN.Handler
return -1; return -1;
} }
profileItem.address = newFileName; profileItem.address = profileItem.address.TrimEx();
profileItem.jsonFileAddress = newFileName;
profileItem.configType = EConfigType.Custom; profileItem.configType = EConfigType.Custom;
if (Utils.IsNullOrEmpty(profileItem.remarks)) if (Utils.IsNullOrEmpty(profileItem.remarks))
{ {
@ -1207,7 +1208,7 @@ namespace v2rayN.Handler
{ {
var objectString = JsonUtils.Serialize(configObject); var objectString = JsonUtils.Serialize(configObject);
var v2rayCon = JsonUtils.Deserialize<V2rayConfig>(objectString); var v2rayCon = JsonUtils.Deserialize<V2rayConfig>(objectString);
if (v2rayCon?.inbounds?.Count > 0 && v2rayCon.outbounds?.Count > 0) if (v2rayCon?.inbounds.Count > 0 && v2rayCon.outbounds.Count > 0)
{ {
var fileName = Utils.GetTempPath($"{Utils.GetGUID(false)}.json"); var fileName = Utils.GetTempPath($"{Utils.GetGUID(false)}.json");
File.WriteAllText(fileName, objectString); File.WriteAllText(fileName, objectString);
@ -1215,7 +1216,10 @@ namespace v2rayN.Handler
var profileIt = new ProfileItem var profileIt = new ProfileItem
{ {
coreType = ECoreType.Xray, coreType = ECoreType.Xray,
address = fileName, jsonFileAddress = fileName,
address = GetCustomConfigAddress(v2rayCon) ?? "",
port = GetCustomConfigPort(v2rayCon) ?? 0,
network = v2rayCon.outbounds.FirstOrDefault()?.streamSettings.network ?? "",
remarks = v2rayCon.remarks ?? "v2ray_custom", remarks = v2rayCon.remarks ?? "v2ray_custom",
subid = subid, subid = subid,
isSub = isSub isSub = isSub
@ -1313,6 +1317,18 @@ namespace v2rayN.Handler
} }
} }
private static string? GetCustomConfigAddress(V2rayConfig v2RayConfig)
{
var outboundSettings = v2RayConfig.outbounds.FirstOrDefault()?.settings;
return outboundSettings?.vnext != null ? outboundSettings.vnext.FirstOrDefault()?.address : outboundSettings?.servers.FirstOrDefault()?.address;
}
private static int? GetCustomConfigPort(V2rayConfig v2RayConfig)
{
var outboundSettings = v2RayConfig.outbounds.FirstOrDefault()?.settings;
return outboundSettings?.vnext != null ? outboundSettings.vnext.FirstOrDefault()?.port : outboundSettings?.servers.FirstOrDefault()?.port;
}
private static int AddBatchServers4SsSIP008(Config config, string clipboardData, string subid, bool isSub, List<ProfileItem> lstOriSub) private static int AddBatchServers4SsSIP008(Config config, string clipboardData, string subid, bool isSub, List<ProfileItem> lstOriSub)
{ {
if (Utils.IsNullOrEmpty(clipboardData)) if (Utils.IsNullOrEmpty(clipboardData))

View file

@ -11,6 +11,7 @@ namespace v2rayN.Models
configType = EConfigType.VMess; configType = EConfigType.VMess;
configVersion = 2; configVersion = 2;
address = string.Empty; address = string.Empty;
jsonFileAddress = null;
port = 0; port = 0;
id = string.Empty; id = string.Empty;
alterId = 0; alterId = 0;
@ -98,6 +99,11 @@ namespace v2rayN.Models
/// 远程服务器地址 /// 远程服务器地址
/// </summary> /// </summary>
public string address { get; set; } public string address { get; set; }
/// <summary>
/// 远程服务器地址
/// </summary>
public string? jsonFileAddress { get; set; }
/// <summary> /// <summary>
/// 远程服务器端口 /// 远程服务器端口