From be4a18d599f28369c5e42c38b389fd7236ee9de0 Mon Sep 17 00:00:00 2001 From: ChsBuffer <33744752+chsbuffer@users.noreply.github.com> Date: Tue, 13 Oct 2020 11:24:07 +0800 Subject: [PATCH] feat: Trojan GetShareLink fix: Socks5 Auth ShareLink --- Netch/Models/IServerUtil.cs | 2 +- Netch/Servers/Socks5/Form/Socks5Form.cs | 3 ++- Netch/Servers/Socks5/S5Util.cs | 7 +++++-- Netch/Servers/Trojan/TrojanUtil.cs | 6 +++--- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Netch/Models/IServerUtil.cs b/Netch/Models/IServerUtil.cs index 48536d16..0b619001 100644 --- a/Netch/Models/IServerUtil.cs +++ b/Netch/Models/IServerUtil.cs @@ -34,7 +34,7 @@ namespace Netch.Models public void Create(); - string GetShareLink(Server server); + string GetShareLink(Server s); public abstract IServerController GetController(); diff --git a/Netch/Servers/Socks5/Form/Socks5Form.cs b/Netch/Servers/Socks5/Form/Socks5Form.cs index 088fb8c9..7cb6a00c 100644 --- a/Netch/Servers/Socks5/Form/Socks5Form.cs +++ b/Netch/Servers/Socks5/Form/Socks5Form.cs @@ -13,7 +13,8 @@ namespace Netch.Servers.Socks5.Form CreateTextBox("Username", "Username", s => true, s => server.Username = s, - server.Username);CreateTextBox("Password", "Password", + server.Username); + CreateTextBox("Password", "Password", s => true, s => server.Password = s, server.Password); diff --git a/Netch/Servers/Socks5/S5Util.cs b/Netch/Servers/Socks5/S5Util.cs index 655665e0..81a5102e 100644 --- a/Netch/Servers/Socks5/S5Util.cs +++ b/Netch/Servers/Socks5/S5Util.cs @@ -30,10 +30,13 @@ namespace Netch.Servers.Socks5 new Socks5Form().ShowDialog(); } - public string GetShareLink(Server server) + public string GetShareLink(Server s) { + var server = (Socks5) s; // https://t.me/socks?server=1.1.1.1&port=443 - return $"https://t.me/socks?server={server.Hostname}&port={server.Port}"; + return $"https://t.me/socks?server={server.Hostname}&port={server.Port}" + + $"{(!string.IsNullOrWhiteSpace(server.Username) ? $"&user={server.Username}" : "")}" + + $"{(server.Auth() ? $"&user={server.Password}" : "")}"; } public IServerController GetController() diff --git a/Netch/Servers/Trojan/TrojanUtil.cs b/Netch/Servers/Trojan/TrojanUtil.cs index 422836ae..2408e289 100644 --- a/Netch/Servers/Trojan/TrojanUtil.cs +++ b/Netch/Servers/Trojan/TrojanUtil.cs @@ -32,10 +32,10 @@ namespace Netch.Servers.Trojan new TrojanForm().ShowDialog(); } - public string GetShareLink(Server server) + public string GetShareLink(Server s) { - // TODO - return ""; + var server = (Trojan) s; + return $"trojan://{HttpUtility.UrlEncode(server.Password)}@{server.Hostname}:{server.Port}#{server.Remark}"; } public IServerController GetController()