Skip to content
This repository has been archived by the owner on Jan 6, 2021. It is now read-only.

Commit

Permalink
5.1.5.2
Browse files Browse the repository at this point in the history
添加服务器时查重;提示订阅正在更新;退出服务器编辑窗口清除剪贴板中复制的链接;调整节点测速和自动订阅;服务器连接统计延迟引用测速结果。
  • Loading branch information
githubzgr committed Nov 1, 2018
1 parent 81e447b commit 8ad683c
Show file tree
Hide file tree
Showing 9 changed files with 99 additions and 38 deletions.
55 changes: 37 additions & 18 deletions shadowsocks-csharp/Controller/ShadowsocksController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public class ShadowsocksController
private Listener _listener;
private List<Listener> _port_map_listener;
private PACServer _pacServer;
public static Configuration _config;
private Configuration _config;
private ServerTransferTotal _transfer;
public IPRangeSet _rangeSet;
#if !_CONSOLE
Expand Down Expand Up @@ -111,10 +111,11 @@ public Configuration GetConfiguration()
return Configuration.Load();
}

public void SetCurrentConfiguration(Configuration config)
public void SyncConfigFormServerLogForm(Configuration config)
{
_config = config;
SaveConfig(_config);
_config.ServerLogFormLocation = config.ServerLogFormLocation;
_config.IsServerLogFormTopmost = config.IsServerLogFormTopmost;
SaveConfig(_config, false);
}

public Configuration GetCurrentConfiguration()
Expand Down Expand Up @@ -202,15 +203,15 @@ public bool SaveServersConfig(string config)
return false;
}

public void SaveServersConfig(Configuration config)
public void SaveServersConfig(Configuration config, bool reload = true)
{
List<Server> missingServers = MergeConfiguration(_config, config.configs);
_config.CopyFrom(config);
foreach (Server s in missingServers)
{
s.GetConnections().CloseAll();
}
SelectServerIndex(_config.index);
SelectServerIndex(_config.index, reload);
}

public void SaveServersPortMap(Configuration config)
Expand All @@ -220,13 +221,23 @@ public void SaveServersPortMap(Configuration config)
_config.FlushPortMapCache();
}

private bool IsServerExisting(Server server)
{
for (int i = 0; i < _config.configs.Count; i++)
if (server.server == _config.configs[i].server && server.server_port == _config.configs[i].server_port)
return true;
return false;
}

public bool AddServerBySSURL(string ssURL, string force_group = null, bool toLast = false)
{
if (ssURL.StartsWith("ss://", StringComparison.OrdinalIgnoreCase) || ssURL.StartsWith("ssr://", StringComparison.OrdinalIgnoreCase))
{
try
{
var server = new Server(ssURL, force_group);
if (IsServerExisting(server))
return false;
if (toLast)
{
_config.configs.Add(server);
Expand Down Expand Up @@ -301,10 +312,10 @@ public void ToggleSameHostForSameTargetRandom(bool enabled)
SaveConfig(_config);
}

public void SelectServerIndex(int index)
public void SelectServerIndex(int index, bool reload = true)
{
_config.index = index;
SaveConfig(_config);
SaveConfig(_config, reload);
}

public void Stop()
Expand Down Expand Up @@ -543,9 +554,15 @@ protected void Reload()
}


protected void SaveConfig(Configuration newConfig)
protected void SaveConfig(Configuration newConfig, bool reload = true)
{
Configuration.Save(newConfig);
if(reload)
Reload();
}

public void JustReload()
{
Reload();
}

Expand Down Expand Up @@ -579,20 +596,22 @@ private void pacServer_PACUpdateError(object sender, ErrorEventArgs e)

public void ShowConfigForm(int index)
{
if (ShowConfigFormEvent != null)
{
ShowConfigFormEvent(index, new EventArgs());
}
//if (ShowConfigFormEvent != null)
//{
ShowConfigFormEvent?.Invoke(index, new EventArgs());
//}
}

public void SaveHotkeyConfig(HotkeyConfig newConfig)
{
_config.hotkey = newConfig;
SaveConfig(_config);
if (ConfigChanged != null)
{
ConfigChanged(this, new EventArgs());
}
SaveConfig(_config, false);
ConfigChanged?.Invoke(this, new EventArgs());
}

public void SaveTimerUpdateLatency()
{
SaveConfig(_config, false);
}

//public void SaveServerLogFormTopmost(bool enable)
Expand Down
2 changes: 1 addition & 1 deletion shadowsocks-csharp/Controller/UpdateChecker.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public class UpdateChecker

public const string Name = "ShadowsocksR";
public const string Copyright = "Copyright © BreakWa11 2017. Fork from Shadowsocks by clowwindy";
public const string Version = "5.1.5.1";
public const string Version = "5.1.5.2";
#if !_CONSOLE
public const string NetVer = "4.0";
#else
Expand Down
6 changes: 6 additions & 0 deletions shadowsocks-csharp/Controller/UpdateFreeNode.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
using System.Xml;
using System.Windows.Forms;

using Shadowsocks;

namespace Shadowsocks.Controller
{
public class UpdateFreeNode
Expand Down Expand Up @@ -119,6 +121,10 @@ public void CreateTask(Configuration config, UpdateFreeNode updater, int index,
}
Next();
}
else
{
Program._viewController.ShowTextByNotifyIconBalloon(I18N.GetString("Tips"), I18N.GetString("Updating server subscription."), ToolTipIcon.Info, 3);
}
}

public bool Next()
Expand Down
1 change: 1 addition & 0 deletions shadowsocks-csharp/Data/cn.txt
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,7 @@ URL=网址
Group name=组名
Last Update=最近更新
Auto update=自动更新
Updating server subscription.=正在更新服务器订阅...

# Messages

Expand Down
1 change: 1 addition & 0 deletions shadowsocks-csharp/Data/zh-tw.txt
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@ URL=網址
Group name=組名
Last Update=最近更新
Auto update=自動更新
Updating server subscription.=正在更新服務器訂閱...

# Messages

Expand Down
1 change: 1 addition & 0 deletions shadowsocks-csharp/View/ConfigForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -686,6 +686,7 @@ private void TextLinkTextBox_MouseUp(object sender, MouseEventArgs e)
{
((TextBox)sender).SelectAll();
Clipboard.SetDataObject(((TextBox)sender).Text);
MenuViewController.IsCopyLinksToClipboard = true;
}
}

Expand Down
64 changes: 47 additions & 17 deletions shadowsocks-csharp/View/MenuViewController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ public class MenuViewController {
private List<EventParams> eventList = new List<EventParams>();

public static AppBarForm appbarform;
public static bool IsCopyLinksToClipboard = false;
//public static bool appbarformAtStart = false;

public MenuViewController(ShadowsocksController controller)
Expand Down Expand Up @@ -120,9 +121,10 @@ public MenuViewController(ShadowsocksController controller)
timerDelayCheckUpdate.Elapsed += timerDelayCheckUpdate_Elapsed;
timerDelayCheckUpdate.Start();

timerUpdateLatency = new System.Timers.Timer(1000.0 * 3);
timerUpdateLatency = new System.Timers.Timer(1000.0 * 1);
timerUpdateLatency.Elapsed += timerUpdateLatency_Elapsed;
timerUpdateLatency.Start();
if(!_controller.GetCurrentConfiguration().nodeFeedAutoUpdate)
timerUpdateLatency.Start();
}

public void ShownotifyIcontext()
Expand Down Expand Up @@ -152,20 +154,25 @@ private void timerDelayCheckUpdate_Elapsed(object sender, System.Timers.ElapsedE
}
}

private void timerUpdateLatency_Elapsed(object sender, System.Timers.ElapsedEventArgs e) {
timerUpdateLatency.Interval = 1000.0 * 60 * 30;
private void timerUpdateLatency_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
timerUpdateLatency.Stop();
try {
timerUpdateLatency.Interval = 1000.0 * 60 * 31;
try
{
Configuration configuration = _controller.GetCurrentConfiguration();
for (int i = 0; i < configuration.configs.Count; i++) {
var server = configuration.configs[i];
server.tcpingLatency();
for (int i = 0; i < configuration.configs.Count; i++)
{
configuration.configs[i].tcpingLatency();
Utils.ReleaseMemory(true);
}

}
catch {
catch
{
timerUpdateLatency.Interval = 1000.0 * 60;
}
//_controller.SaveTimerUpdateLatency();
UpdateServersMenu();
timerUpdateLatency.Start();
}
Expand Down Expand Up @@ -366,6 +373,8 @@ private void controller_ConfigChanged(object sender, EventArgs e) {
private void controller_ToggleModeChanged(object sender, EventArgs e) {
Configuration config = _controller.GetCurrentConfiguration();
UpdateSysProxyMode(config);
if (config.sysProxyMode == (int)ProxyMode.Direct)
DisconnectCurrent_Click(null, null);
}

private void controller_ToggleRuleModeChanged(object sender, EventArgs e) {
Expand Down Expand Up @@ -551,7 +560,7 @@ void updateFreeNodeChecker_NewFreeNodeFound(object sender, EventArgs e) {
}
}
}
_controller.SaveServersConfig(config);
_controller.SaveServersConfig(config, false);
}
config = _controller.GetCurrentConfiguration();
if (selected_server != null) {
Expand Down Expand Up @@ -584,7 +593,7 @@ void updateFreeNodeChecker_NewFreeNodeFound(object sender, EventArgs e) {
}
}
}
_controller.SaveServersConfig(config);
_controller.SaveServersConfig(config, false);
}
}

Expand All @@ -601,9 +610,18 @@ void updateFreeNodeChecker_NewFreeNodeFound(object sender, EventArgs e) {
ShowBalloonTip(I18N.GetString("Error"),
String.Format(I18N.GetString("Update subscribe {0} failure"), lastGroup), ToolTipIcon.Info, 10000);
}
if (updateSubscribeManager.Next()) {

if (updateSubscribeManager.Next())
{
}
else
{
_controller.JustReload();
timerUpdateLatency.Stop();
timerUpdateLatency.Interval = 1000.0 * 1;
timerUpdateLatency.Start();
}

}

void updateChecker_NewVersionFound(object sender, EventArgs e) {
Expand Down Expand Up @@ -679,16 +697,20 @@ private void UpdateServersMenu() {
group_name = server.group;

string latency;
if (server.latency == Server.LATENCY_TESTING) {
if (server.latency == Server.LATENCY_TESTING)
{
latency = "[testing]";
}
else if (server.latency == Server.LATENCY_ERROR) {
else if (server.latency == Server.LATENCY_ERROR)
{
latency = "[error]";
}
else if (server.latency == Server.LATENCY_PENDING) {
else if (server.latency == Server.LATENCY_PENDING)
{
latency = "[pending]";
}
else {
else
{
latency = "[" + server.latency.ToString() + "ms]";
}
MenuItem item = new MenuItem(latency + " " + server.FriendlyName());
Expand Down Expand Up @@ -849,6 +871,11 @@ private void ShowSubscribeSettingForm() {
}

void configForm_FormClosed(object sender, FormClosedEventArgs e) {
if (IsCopyLinksToClipboard)
{
IsCopyLinksToClipboard = false;
Clipboard.Clear();
}
configForm = null;
configfrom_open = false;
Utils.ReleaseMemory(true);
Expand Down Expand Up @@ -940,10 +967,12 @@ private void Quit() {
timerDelayCheckUpdate.Stop();
timerDelayCheckUpdate = null;
}
if (timerUpdateLatency != null) {
if (timerUpdateLatency != null)
{
timerUpdateLatency.Elapsed -= timerUpdateLatency_Elapsed;
timerUpdateLatency.Stop();
timerUpdateLatency = null;
_controller.SaveTimerUpdateLatency();
}
if (_notifyIcon != null)
_notifyIcon.Visible = false;
Expand Down Expand Up @@ -1008,6 +1037,7 @@ private void NoModifyItem_Click(object sender, EventArgs e) {

private void EnableItem_Click(object sender, EventArgs e) {
_controller.ToggleMode(ProxyMode.Direct);
DisconnectCurrent_Click(null, null);
}

private void GlobalModeItem_Click(object sender, EventArgs e) {
Expand Down
5 changes: 4 additions & 1 deletion shadowsocks-csharp/View/ServerLogForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -417,6 +417,8 @@ public void RefreshLog()
{
if (serverSpeedLog.avgConnectTime >= 0)
SetCellText(cell, serverSpeedLog.avgConnectTime / 1000);
else if (server.latency >0)//!= Shadowsocks.Model.Server.LATENCY_ERROR && server.latency != Shadowsocks.Model.Server.LATENCY_PENDING && server.latency != Shadowsocks.Model.Server.LATENCY_TESTING)
SetCellText(cell, server.latency);
else
SetCellText(cell, "-");
}
Expand Down Expand Up @@ -1057,7 +1059,8 @@ private void ServerLogForm_FormClosed(object sender, FormClosedEventArgs e)
{
config.IsServerLogFormTopmost = this.TopMost;
}
controller.SetCurrentConfiguration(config);
controller.SyncConfigFormServerLogForm(config);

controller.ConfigChanged -= controller_ConfigChanged;
Thread thread = workerThread;
workerThread = null;
Expand Down
2 changes: 1 addition & 1 deletion shadowsocks-csharp/ssr-win-4.0.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:files="https://sourceforge.net/api/files.rdf#" xmlns:media="http://video.search.yahoo.com/mrss/" xmlns:doap="http://usefulinc.com/ns/doap#" xmlns:sf="https://sourceforge.net/api/sfelements.rdf#" version="2.0">
<channel xmlns:files="https://sourceforge.net/api/files.rdf#" xmlns:media="http://video.search.yahoo.com/mrss/" xmlns:doap="http://usefulinc.com/ns/doap#" xmlns:sf="https://sourceforge.net/api/sfelements.rdf#">
<item>
<media:content xmlns:media="http://video.search.yahoo.com/mrss/" type="application/zip; charset=binary" url="https://github.com/SoDa-GitHub/shadowsocksrr-csharp/releases/download/5.1.5.1/ShadowsocksR-win-5.1.5.1.7z" filesize="828669"></media:content>
<media:content xmlns:media="http://video.search.yahoo.com/mrss/" type="application/zip; charset=binary" url="https://github.com/SoDa-GitHub/shadowsocksrr-csharp/releases/download/5.1.5.2/ShadowsocksR-win-5.1.5.2.7z" filesize="828669"></media:content>
</item>
</channel>
</rss>
Expand Down

0 comments on commit 8ad683c

Please sign in to comment.