Переглянути джерело

luci-app-ssr-plus: Optimize hysteria2 config code.

zxlhhyccc 3 місяців тому
батько
коміт
1115cdd150

+ 3 - 3
luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua

@@ -66,10 +66,10 @@ function act_ping()
 		socket:setopt("socket", "sndtimeo", 3)
 		e.socket = socket:connect(domain, port)
 		socket:close()
-		-- 	e.ping = luci.sys.exec("ping -c 1 -W 1 %q 2>&1 | grep -o 'time=[0-9]*.[0-9]' | awk -F '=' '{print$2}'" % domain)
-		-- 	if (e.ping == "") then
 		e.ping = luci.sys.exec(string.format("echo -n $(tcping -q -c 1 -i 1 -t 2 -p %s %s 2>&1 | grep -o 'time=[0-9]*' | awk -F '=' '{print $2}') 2>/dev/null", port, domain))
-		-- 	end
+		if (e.ping == "") then
+			e.ping = luci.sys.exec("echo -n $(ping -c 1 -W 1 %q 2>&1 | grep -o 'time=[0-9]*' | awk -F '=' '{print $2}') 2>/dev/null" % domain)
+		end
 	end
 	if (iret == 0) then
 		luci.sys.call(" ipset del ss_spec_wan_ac " .. domain)

+ 4 - 3
luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua

@@ -431,11 +431,12 @@ o.default = "0"
 o = s:option(Value, "obfs_type", translate("Obfuscation Type"))
 o:depends({type = "hysteria2", flag_obfs = "1"})
 o.rmempty = true
-o.default = "salamander"
+o.placeholder = "salamander"
 
 o = s:option(Value, "salamander", translate("Obfuscation Password"))
 o:depends({type = "hysteria2", flag_obfs = "1"})
 o.rmempty = true
+o.placeholder = "cry_me_a_r1ver"
 
 o = s:option(Flag, "flag_quicparam", translate("Hysterir QUIC parameters"))
 o:depends("type", "hysteria2")
@@ -955,14 +956,14 @@ o = s:option(Value, "uplink_capacity", translate("Uplink Capacity(Default:Mbps)"
 o.datatype = "uinteger"
 o:depends("transport", "kcp")
 o:depends("type", "hysteria2")
-o.default = 5
+o.placeholder = 5
 o.rmempty = true
 
 o = s:option(Value, "downlink_capacity", translate("Downlink Capacity(Default:Mbps)"))
 o.datatype = "uinteger"
 o:depends("transport", "kcp")
 o:depends("type", "hysteria2")
-o.default = 20
+o.placeholder = 20
 o.rmempty = true
 
 o = s:option(Value, "read_buffer_size", translate("Read Buffer Size"))

+ 7 - 5
luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm

@@ -131,14 +131,16 @@ function import_ssr_url(btn, urlname, sid) {
 			}
 			document.getElementsByName('cbid.shadowsocksr.' + sid + '.hy2_auth')[0].value = decodeURIComponent(url.username);
 			document.getElementsByName('cbid.shadowsocksr.' + sid + '.hy2_auth')[0].dispatchEvent(event);
-			document.getElementsByName('cbid.shadowsocksr.' + sid + '.uplink_capacity')[0].value = params.get("upmbps") || "5";
-			document.getElementsByName('cbid.shadowsocksr.' + sid + '.downlink_capacity')[0].value = params.get("downmbps") || "20";
-			if (params.get("obfs")) {
+			document.getElementsByName('cbid.shadowsocksr.' + sid + '.uplink_capacity')[0].value =
+				(params.get("upmbps") && params.get("upmbps").match(/\d+/)) ? params.get("upmbps").match(/\d+/)[0] : "";
+			document.getElementsByName('cbid.shadowsocksr.' + sid + '.downlink_capacity')[0].value =
+				(params.get("downmbps") && params.get("downmbps").match(/\d+/)) ? params.get("downmbps").match(/\d+/)[0] : "";
+			if (params.get("obfs") && params.get("obfs") !== "none") {
 				document.getElementsByName('cbid.shadowsocksr.' + sid + '.flag_obfs')[0].checked = true; // 设置 flag_obfs 为 true
 				document.getElementsByName('cbid.shadowsocksr.' + sid + '.flag_obfs')[0].dispatchEvent(event); // 触发事件
 
-			document.getElementsByName('cbid.shadowsocksr.' + sid + '.obfs_type')[0].value = params.get("obfs") || "salamander";
-			document.getElementsByName('cbid.shadowsocksr.' + sid + '.salamander')[0].value = params.get("obfs-password") || params.get("obfs_password") || "";
+			document.getElementsByName('cbid.shadowsocksr.' + sid + '.obfs_type')[0].value = params.get("obfs");
+			document.getElementsByName('cbid.shadowsocksr.' + sid + '.salamander')[0].value = params.get("obfs-password") || params.get("obfs_password");
 			}
 			if (params.get("sni")) {
 				document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls')[0].checked = true; // 设置 flag_obfs 为 true

+ 24 - 9
luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua

@@ -4,11 +4,11 @@ local ucursor = require "luci.model.uci".cursor()
 local json = require "luci.jsonc"
 
 local server_section = arg[1]
-local proto = arg[2] or "tcp"
-local local_port = arg[3] or "0"
-local socks_port = arg[4] or "0"
+local proto          = arg[2] or "tcp"
+local local_port     = arg[3] or "0"
+local socks_port     = arg[4] or "0"
 
-local chain = arg[5] or "0"
+local chain          = arg[5] or "0"
 local chain_local_port = string.split(chain, "/")[2] or "0"
 
 local server = ucursor:get_all("shadowsocksr", server_section)
@@ -412,14 +412,29 @@ local ss = {
 	reuse_port = true
 }
 local hysteria2 = {
-	server = (server.server_port and (server.port_range and (server.server .. ":" .. server.server_port .. "," .. string.gsub(server.port_range, ":", "-")) or (server.server .. ":" .. server.server_port) or (server.port_range and server.server .. ":" .. string.gsub(server.port_range, ":", "-") or server.server .. ":443"))),
+	server = (
+		server.server_port and 
+		(
+			server.port_range and 
+			(server.server .. ":" .. server.server_port .. "," .. string.gsub(server.port_range, ":", "-")) 
+			or 
+			(server.server .. ":" .. server.server_port)
+		) 
+		or 
+		(
+			server.port_range and 
+			server.server .. ":" .. string.gsub(server.port_range, ":", "-") 
+			or 
+			server.server .. ":443"
+		)
+	),
 	bandwidth = (server.uplink_capacity or server.downlink_capacity) and {
-	up = tonumber(server.uplink_capacity) and tonumber(server.uplink_capacity) .. " mbps" or nil,
-	down = tonumber(server.downlink_capacity) and tonumber(server.downlink_capacity) .. " mbps" or nil 
+		up = tonumber(server.uplink_capacity) and tonumber(server.uplink_capacity) .. " mbps" or nil,
+		down = tonumber(server.downlink_capacity) and tonumber(server.downlink_capacity) .. " mbps" or nil 
 	} or nil,
 	socks5 = (proto:find("tcp") and tonumber(socks_port) and tonumber(socks_port) ~= 0) and {
 		listen = "0.0.0.0:" .. tonumber(socks_port),
-		disable_udp = false
+		disableUDP = false
 	} or nil,
 	transport = server.transport_protocol and {
 		type = server.transport_protocol or "udp",
@@ -452,7 +467,7 @@ local hysteria2 = {
 		disablePathMTUDiscovery = (server.disablepathmtudiscovery == "1") and true or false
 	} or nil,
 	auth = server.hy2_auth,
-	tls = (server.tls_host) and {
+	tls = server.tls_host and {
 		sni = server.tls_host,
 		--alpn = server.tls_alpn or nil,
 		insecure = (server.insecure == "1") and true or false,

+ 4 - 4
luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua

@@ -203,12 +203,12 @@ local function processData(szType, content)
 			result.transport_protocol = params.protocol or "udp"
 		end
 		result.hy2_auth = url.user
-		result.uplink_capacity = tonumber((params.upmbps or ""):match("^(%d+)")) or 5
-		result.downlink_capacity = tonumber((params.downmbps or ""):match("^(%d+)")) or 20
-		if params.obfs then
+		result.uplink_capacity = tonumber((params.upmbps or ""):match("^(%d+)")) or nil
+		result.downlink_capacity = tonumber((params.downmbps or ""):match("^(%d+)")) or nil
+		if params.obfs and params.obfs ~= "none" then
 			result.flag_obfs = "1"
 			result.obfs_type = params.obfs
-			result.salamander = params["obfs-password"] or params["obfs_password"] or nil
+			result.salamander = params["obfs-password"] or params["obfs_password"]
 		end
 		if params.sni then
 			result.tls = "1"