mirror of https://github.com/2dust/v2rayN
Fix delete duplicate server
parent
785a30e623
commit
9dc6ba182a
|
@ -800,16 +800,15 @@ namespace v2rayN.Handler
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int DedupServerList(ref Config config, ref List<ProfileItem> lstProfile)
|
public static Tuple<int, int> DedupServerList(Config config, string subId)
|
||||||
{
|
{
|
||||||
List<ProfileItem> source = lstProfile;
|
var lstProfile = LazyConfig.Instance.ProfileItems(subId);
|
||||||
bool keepOlder = config.guiItem.keepOlderDedupl;
|
|
||||||
|
|
||||||
List<ProfileItem> lstKeep = new();
|
List<ProfileItem> lstKeep = new();
|
||||||
List<ProfileItem> lstRemove = new();
|
List<ProfileItem> lstRemove = new();
|
||||||
if (!keepOlder) source.Reverse(); // Remove the early items first
|
if (config.guiItem.keepOlderDedupl) lstProfile.Reverse();
|
||||||
|
|
||||||
foreach (ProfileItem item in source)
|
foreach (ProfileItem item in lstProfile)
|
||||||
{
|
{
|
||||||
if (!lstKeep.Exists(i => CompareProfileItem(i, item, false)))
|
if (!lstKeep.Exists(i => CompareProfileItem(i, item, false)))
|
||||||
{
|
{
|
||||||
|
@ -822,7 +821,7 @@ namespace v2rayN.Handler
|
||||||
}
|
}
|
||||||
RemoveServer(config, lstRemove);
|
RemoveServer(config, lstRemove);
|
||||||
|
|
||||||
return lstKeep.Count;
|
return new Tuple<int, int>(lstProfile.Count, lstKeep.Count);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int AddServerCommon(ref Config config, ProfileItem profileItem, bool toFile = true)
|
public static int AddServerCommon(ref Config config, ProfileItem profileItem, bool toFile = true)
|
||||||
|
|
|
@ -971,11 +971,10 @@ namespace v2rayN.ViewModels
|
||||||
|
|
||||||
private void RemoveDuplicateServer()
|
private void RemoveDuplicateServer()
|
||||||
{
|
{
|
||||||
int oldCount = _lstProfile.Count;
|
var tuple = ConfigHandler.DedupServerList(_config, _subId);
|
||||||
int newCount = ConfigHandler.DedupServerList(ref _config, ref _lstProfile);
|
|
||||||
RefreshServers();
|
RefreshServers();
|
||||||
Reload();
|
Reload();
|
||||||
_noticeHandler?.Enqueue(string.Format(ResUI.RemoveDuplicateServerResult, oldCount, newCount));
|
_noticeHandler?.Enqueue(string.Format(ResUI.RemoveDuplicateServerResult, tuple.Item1, tuple.Item2));
|
||||||
}
|
}
|
||||||
private void CopyServer()
|
private void CopyServer()
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue