mirror of
https://github.com/2dust/v2rayN.git
synced 2025-07-05 22:42:10 +00:00
Add one click deduplicate feature
添加一键删除重复服务器功能
This commit is contained in:
parent
f036f12925
commit
2861bff5a0
5 changed files with 55 additions and 2 deletions
9
v2rayN/v2rayN/Forms/MainForm.Designer.cs
generated
9
v2rayN/v2rayN/Forms/MainForm.Designer.cs
generated
|
@ -115,6 +115,7 @@
|
||||||
this.tsbPromotion = new System.Windows.Forms.ToolStripButton();
|
this.tsbPromotion = new System.Windows.Forms.ToolStripButton();
|
||||||
this.toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.tsbClose = new System.Windows.Forms.ToolStripButton();
|
this.tsbClose = new System.Windows.Forms.ToolStripButton();
|
||||||
|
this.menuRemoveDuplicateServer = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||||
this.splitContainer1.Panel1.SuspendLayout();
|
this.splitContainer1.Panel1.SuspendLayout();
|
||||||
this.splitContainer1.Panel2.SuspendLayout();
|
this.splitContainer1.Panel2.SuspendLayout();
|
||||||
|
@ -172,6 +173,7 @@
|
||||||
this.menuScanScreen,
|
this.menuScanScreen,
|
||||||
this.toolStripSeparator1,
|
this.toolStripSeparator1,
|
||||||
this.menuRemoveServer,
|
this.menuRemoveServer,
|
||||||
|
this.menuRemoveDuplicateServer,
|
||||||
this.menuCopyServer,
|
this.menuCopyServer,
|
||||||
this.menuSetDefaultServer,
|
this.menuSetDefaultServer,
|
||||||
this.toolStripSeparator3,
|
this.toolStripSeparator3,
|
||||||
|
@ -727,6 +729,12 @@
|
||||||
this.tsbClose.Name = "tsbClose";
|
this.tsbClose.Name = "tsbClose";
|
||||||
this.tsbClose.Click += new System.EventHandler(this.tsbClose_Click);
|
this.tsbClose.Click += new System.EventHandler(this.tsbClose_Click);
|
||||||
//
|
//
|
||||||
|
// menuRemoveDuplicateServer
|
||||||
|
//
|
||||||
|
this.menuRemoveDuplicateServer.Name = "menuRemoveDuplicateServer";
|
||||||
|
resources.ApplyResources(this.menuRemoveDuplicateServer, "menuRemoveDuplicateServer");
|
||||||
|
this.menuRemoveDuplicateServer.Click += new System.EventHandler(this.menuRemoveDuplicateServer_Click);
|
||||||
|
//
|
||||||
// MainForm
|
// MainForm
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this, "$this");
|
resources.ApplyResources(this, "$this");
|
||||||
|
@ -848,6 +856,7 @@
|
||||||
private System.Windows.Forms.ToolStripStatusLabel toolSslPacPortLab;
|
private System.Windows.Forms.ToolStripStatusLabel toolSslPacPortLab;
|
||||||
private System.Windows.Forms.ToolStripStatusLabel toolSslServerSpeed;
|
private System.Windows.Forms.ToolStripStatusLabel toolSslServerSpeed;
|
||||||
private System.Windows.Forms.ToolStripStatusLabel toolSslBlank4;
|
private System.Windows.Forms.ToolStripStatusLabel toolSslBlank4;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem menuRemoveDuplicateServer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -580,6 +580,22 @@ namespace v2rayN.Forms
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void menuRemoveDuplicateServer_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
List<Mode.VmessItem> servers = null;
|
||||||
|
Utils.DedupServerList(config.vmess, out servers);
|
||||||
|
if (servers != null)
|
||||||
|
{
|
||||||
|
config.vmess = servers;
|
||||||
|
}
|
||||||
|
//刷新
|
||||||
|
RefreshServers();
|
||||||
|
LoadV2ray();
|
||||||
|
|
||||||
|
// save to config file
|
||||||
|
ConfigHandler.ToJsonFile(config);
|
||||||
|
}
|
||||||
|
|
||||||
private void menuCopyServer_Click(object sender, EventArgs e)
|
private void menuCopyServer_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
int index = GetLvSelectedIndex();
|
int index = GetLvSelectedIndex();
|
||||||
|
@ -1565,6 +1581,5 @@ namespace v2rayN.Forms
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -173,6 +173,12 @@
|
||||||
<data name="menuRemoveServer.Text" xml:space="preserve">
|
<data name="menuRemoveServer.Text" xml:space="preserve">
|
||||||
<value>Remove selected server (multiple choice) (Delete)</value>
|
<value>Remove selected server (multiple choice) (Delete)</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="menuRemoveDuplicateServer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>447, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuRemoveDuplicateServer.Text" xml:space="preserve">
|
||||||
|
<value>Remove duplicate server</value>
|
||||||
|
</data>
|
||||||
<data name="menuCopyServer.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="menuCopyServer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>447, 22</value>
|
<value>447, 22</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -273,7 +279,7 @@
|
||||||
<value>ImageAboveText</value>
|
<value>ImageAboveText</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmsLv.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="cmsLv.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>448, 468</value>
|
<value>448, 512</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>cmsLv.Name" xml:space="preserve">
|
<data name=">>cmsLv.Name" xml:space="preserve">
|
||||||
<value>cmsLv</value>
|
<value>cmsLv</value>
|
||||||
|
@ -1346,6 +1352,12 @@
|
||||||
<data name=">>tsbClose.Type" xml:space="preserve">
|
<data name=">>tsbClose.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name=">>menuRemoveDuplicateServer.Name" xml:space="preserve">
|
||||||
|
<value>menuRemoveDuplicateServer</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuRemoveDuplicateServer.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
<data name=">>$this.Name" xml:space="preserve">
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
<value>MainForm</value>
|
<value>MainForm</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
@ -453,4 +453,7 @@
|
||||||
<data name="toolSslServerSpeed.Text" xml:space="preserve">
|
<data name="toolSslServerSpeed.Text" xml:space="preserve">
|
||||||
<value>代理速度</value>
|
<value>代理速度</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="menuRemoveDuplicateServer.Text" xml:space="preserve">
|
||||||
|
<value>移除重复的服务器</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -311,6 +311,20 @@ namespace v2rayN
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void DedupServerList(List<Mode.VmessItem> source, out List<Mode.VmessItem> result)
|
||||||
|
{
|
||||||
|
var list = new List<Mode.VmessItem>();
|
||||||
|
foreach (var item in source)
|
||||||
|
{
|
||||||
|
if(!list.Exists(i => item.address == i.address && item.port == i.port))
|
||||||
|
{
|
||||||
|
list.Add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
result = list;
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue