From 1a7dca8e585a3d3154d108362a31c2d0676a235b Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Tue, 4 Apr 2023 20:19:52 +0800 Subject: [PATCH] Fix subscription update duplicate server bug --- v2rayN/v2rayN/Handler/ConfigHandler.cs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/v2rayN/v2rayN/Handler/ConfigHandler.cs b/v2rayN/v2rayN/Handler/ConfigHandler.cs index c8287c01..a26d61de 100644 --- a/v2rayN/v2rayN/Handler/ConfigHandler.cs +++ b/v2rayN/v2rayN/Handler/ConfigHandler.cs @@ -933,6 +933,8 @@ namespace v2rayN.Handler } int countServers = 0; + //Check for duplicate indexId + List? lstDbIndexId = null; List lstAdd = new(); string[] arrData = clipboardData.Split(Environment.NewLine.ToCharArray()); foreach (string str in arrData) @@ -958,7 +960,20 @@ namespace v2rayN.Handler var existItem = lstOriSub?.FirstOrDefault(t => t.isSub == isSub && CompareProfileItem(t, profileItem, true)); if (existItem != null) { - profileItem.indexId = existItem.indexId; + //Check for duplicate indexId + if (lstDbIndexId is null) + { + lstDbIndexId = LazyConfig.Instance.ProfileItemIndexs(""); + } + if (lstAdd.Any(t => t.indexId == existItem.indexId) + || lstDbIndexId.Any(t => t == existItem.indexId)) + { + profileItem.indexId = string.Empty; + } + else + { + profileItem.indexId = existItem.indexId; + } } //filter if (!Utils.IsNullOrEmpty(subFilter))