mirror of
https://github.com/2dust/v2rayN.git
synced 2025-10-13 11:59:13 +00:00
Avoid duplicate tags
This commit is contained in:
parent
ff6ce3334a
commit
4a37b53fe1
2 changed files with 28 additions and 26 deletions
|
@ -369,6 +369,20 @@ public partial class CoreConfigSingboxService
|
||||||
|
|
||||||
var node = await AppManager.Instance.GetProfileItemViaRemarks(outboundTag);
|
var node = await AppManager.Instance.GetProfileItemViaRemarks(outboundTag);
|
||||||
|
|
||||||
|
if (node == null
|
||||||
|
|| (!Global.SingboxSupportConfigType.Contains(node.ConfigType)
|
||||||
|
&& node.ConfigType is not (EConfigType.PolicyGroup or EConfigType.ProxyChain)))
|
||||||
|
{
|
||||||
|
return Global.ProxyTag;
|
||||||
|
}
|
||||||
|
|
||||||
|
var tag = Global.ProxyTag + node.IndexId.ToString();
|
||||||
|
if (singboxConfig.outbounds.Any(o => o.tag == tag)
|
||||||
|
|| (singboxConfig.endpoints != null && singboxConfig.endpoints.Any(e => e.tag == tag)))
|
||||||
|
{
|
||||||
|
return tag;
|
||||||
|
}
|
||||||
|
|
||||||
if (node.ConfigType is EConfigType.PolicyGroup or EConfigType.ProxyChain)
|
if (node.ConfigType is EConfigType.PolicyGroup or EConfigType.ProxyChain)
|
||||||
{
|
{
|
||||||
ProfileGroupItemManager.Instance.TryGet(node.IndexId, out var profileGroupItem);
|
ProfileGroupItemManager.Instance.TryGet(node.IndexId, out var profileGroupItem);
|
||||||
|
@ -401,26 +415,13 @@ public partial class CoreConfigSingboxService
|
||||||
return Global.ProxyTag;
|
return Global.ProxyTag;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (node == null
|
|
||||||
|| !Global.SingboxSupportConfigType.Contains(node.ConfigType))
|
|
||||||
{
|
|
||||||
return Global.ProxyTag;
|
|
||||||
}
|
|
||||||
|
|
||||||
var tag = Global.ProxyTag + node.IndexId.ToString();
|
|
||||||
if (singboxConfig.outbounds.Any(o => o.tag == tag)
|
|
||||||
|| (singboxConfig.endpoints != null && singboxConfig.endpoints.Any(e => e.tag == tag)))
|
|
||||||
{
|
|
||||||
return tag;
|
|
||||||
}
|
|
||||||
|
|
||||||
var server = await GenServer(node);
|
var server = await GenServer(node);
|
||||||
if (server is null)
|
if (server is null)
|
||||||
{
|
{
|
||||||
return Global.ProxyTag;
|
return Global.ProxyTag;
|
||||||
}
|
}
|
||||||
|
|
||||||
server.tag = Global.ProxyTag + node.IndexId.ToString();
|
server.tag = tag;
|
||||||
if (server is Endpoints4Sbox endpoint)
|
if (server is Endpoints4Sbox endpoint)
|
||||||
{
|
{
|
||||||
singboxConfig.endpoints ??= new();
|
singboxConfig.endpoints ??= new();
|
||||||
|
|
|
@ -126,6 +126,19 @@ public partial class CoreConfigV2rayService
|
||||||
|
|
||||||
var node = await AppManager.Instance.GetProfileItemViaRemarks(outboundTag);
|
var node = await AppManager.Instance.GetProfileItemViaRemarks(outboundTag);
|
||||||
|
|
||||||
|
if (node == null
|
||||||
|
|| (!Global.XraySupportConfigType.Contains(node.ConfigType)
|
||||||
|
&& node.ConfigType is not (EConfigType.PolicyGroup or EConfigType.ProxyChain)))
|
||||||
|
{
|
||||||
|
return Global.ProxyTag;
|
||||||
|
}
|
||||||
|
|
||||||
|
var tag = Global.ProxyTag + node.IndexId.ToString();
|
||||||
|
if (v2rayConfig.outbounds.Any(p => p.tag == tag))
|
||||||
|
{
|
||||||
|
return tag;
|
||||||
|
}
|
||||||
|
|
||||||
if (node.ConfigType is EConfigType.PolicyGroup or EConfigType.ProxyChain)
|
if (node.ConfigType is EConfigType.PolicyGroup or EConfigType.ProxyChain)
|
||||||
{
|
{
|
||||||
ProfileGroupItemManager.Instance.TryGet(node.IndexId, out var profileGroupItem);
|
ProfileGroupItemManager.Instance.TryGet(node.IndexId, out var profileGroupItem);
|
||||||
|
@ -162,18 +175,6 @@ public partial class CoreConfigV2rayService
|
||||||
return Global.ProxyTag;
|
return Global.ProxyTag;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (node == null
|
|
||||||
|| !Global.XraySupportConfigType.Contains(node.ConfigType))
|
|
||||||
{
|
|
||||||
return Global.ProxyTag;
|
|
||||||
}
|
|
||||||
|
|
||||||
var tag = Global.ProxyTag + node.IndexId.ToString();
|
|
||||||
if (v2rayConfig.outbounds.Any(p => p.tag == tag))
|
|
||||||
{
|
|
||||||
return tag;
|
|
||||||
}
|
|
||||||
|
|
||||||
var txtOutbound = EmbedUtils.GetEmbedText(Global.V2raySampleOutbound);
|
var txtOutbound = EmbedUtils.GetEmbedText(Global.V2raySampleOutbound);
|
||||||
var outbound = JsonUtils.Deserialize<Outbounds4Ray>(txtOutbound);
|
var outbound = JsonUtils.Deserialize<Outbounds4Ray>(txtOutbound);
|
||||||
await GenOutbound(node, outbound);
|
await GenOutbound(node, outbound);
|
||||||
|
|
Loading…
Reference in a new issue