diff --git a/package/lienol/luci-app-passwall/Makefile b/package/lienol/luci-app-passwall/Makefile index 7c8080419d..6d0b3457ef 100644 --- a/package/lienol/luci-app-passwall/Makefile +++ b/package/lienol/luci-app-passwall/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 2018-2020 Lienol +# Copyright (C) 2018-2020 L-WRT Team # # This is free software, licensed under the GNU General Public License v3. # @@ -7,8 +7,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-passwall PKG_VERSION:=3.9 -PKG_RELEASE:=39 -PKG_DATE:=20200819 +PKG_RELEASE:=41 +PKG_DATE:=20200820 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) diff --git a/package/lienol/luci-app-passwall/luasrc/controller/passwall.lua b/package/lienol/luci-app-passwall/luasrc/controller/passwall.lua index e08d77c766..fa946cc44f 100644 --- a/package/lienol/luci-app-passwall/luasrc/controller/passwall.lua +++ b/package/lienol/luci-app-passwall/luasrc/controller/passwall.lua @@ -1,4 +1,4 @@ --- Copyright 2018-2020 Lienol +-- Copyright (C) 2018-2020 L-WRT Team module("luci.controller.passwall", package.seeall) local appname = "passwall" local ucic = luci.model.uci.cursor() @@ -187,7 +187,8 @@ function ping_node() local port = luci.http.formvalue("port") local e = {} e.index = index - if (ucic:get(appname, "@global_other[0]", "use_tcping") or 1) == "1" and luci.sys.exec("echo -n $(command -v tcping)") ~= "" then + local nodes_ping = ucic:get(appname, "@global_other[0]", "nodes_ping") or "" + if nodes_ping:find("tcping") and luci.sys.exec("echo -n $(command -v tcping)") ~= "" 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, address)) end if e.ping == nil or tonumber(e.ping) == 0 then diff --git a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua index 026c2e6695..965a28c70f 100644 --- a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua +++ b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua @@ -50,8 +50,8 @@ uci:foreach(appname, "socks", function(s) end) m = Map(appname) -local status_use_big_icon = m:get("@global_other[0]", "status_use_big_icon") or 1 -if status_use_big_icon and tonumber(status_use_big_icon) == 1 then +local status = m:get("@global_other[0]", "status") or "" +if status:find("big_icon") then m:append(Template(appname .. "/global/status")) else m:append(Template(appname .. "/global/status2")) @@ -182,6 +182,12 @@ o:depends({dns_mode = "chinadns-ng", up_trust_chinadns_ng_dns = "dns2socks"}) o:depends({dns_mode = "dns2socks"}) o:depends({dns_mode = "pdnsd"}) +o = s:taboption("DNS", Button, "clear_ipset", translate("Clear IPSET")) +o.inputstyle = "remove" +function o.write(e, e) + luci.sys.call("/etc/init.d/" .. appname .. " stop && /usr/share/" .. appname .. "/iptables.sh flush_ipset && /etc/init.d/" .. appname .. " restart") +end + s:tab("Proxy", translate("Mode")) ---- TCP Default Proxy Mode @@ -225,6 +231,11 @@ o:value("global", translate("Global Proxy")) o.default = "default" o.rmempty = false +s:tab("tips", translate("Tips")) + +o = s:taboption("tips", DummyValue, "") +o.template = appname .. "/global/tips" + -- [[ Socks Server ]]-- s = m:section(TypedSection, "socks", translate("Socks Config")) s.anonymous = true diff --git a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/node_list.lua b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/node_list.lua index 958adc4808..adea9a3e40 100644 --- a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/node_list.lua +++ b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/node_list.lua @@ -8,31 +8,21 @@ m = Map(appname) s = m:section(TypedSection, "global_other") s.anonymous = true ----- Auto Ping -o = s:option(Flag, "auto_ping", translate("Auto Ping"), - translate("This will automatically ping the node for latency")) -o.default = 1 +o = s:option(MultiValue, "nodes_ping", "Ping") +o:value("auto_ping", translate("Auto Ping"), translate("This will automatically ping the node for latency")) +o:value("tcping", translate("Tcping"), translate("This will use tcping replace ping detection of node")) ----- Use TCP Detection delay -o = s:option(Flag, "use_tcping", translate("Use TCP Detection delay"), - translate("This will use tcping replace ping detection of node")) -o.default = 1 - ----- Concise display nodes -o = s:option(Flag, "compact_display_nodes", translate("Concise display nodes")) -o.default = 0 - ----- Show Add Mode -o = s:option(Flag, "show_add_mode", translate("Show Add Mode")) -o.default = 1 - ----- Show group -o = s:option(Flag, "show_group", translate("Show Group")) -o.default = 1 +o = s:option(MultiValue, "nodes_display", translate("Operation")) +o:value("compact_display_nodes", translate("Concise display nodes")) +o:value("show_add_mode", translate("Show Add Mode")) +o:value("show_group", translate("Show Group")) -- [[ Add the node via the link ]]-- s:append(Template(appname .. "/node_list/link_add_node")) +local nodes_ping = m:get("@global_other[0]", "nodes_ping") or "" +local nodes_display = m:get("@global_other[0]", "nodes_display") or "" + -- [[ Node List ]]-- s = m:section(TypedSection, "nodes") s.anonymous = true @@ -52,7 +42,7 @@ function s.remove(e, t) luci.http.redirect(d.build_url("admin", "services", appname, "node_list")) end -if m:get("@global_other[0]", "show_group") == "1" then +if nodes_display:find("show_group") then show_group = s:option(DummyValue, "group", translate("Group")) show_group.cfgvalue = function(t, n) local group = m:get(n, "group") or "无" @@ -62,7 +52,7 @@ end s.sortable = true -- 简洁模式 -if m:get("@global_other[0]", "compact_display_nodes") == "1" then +if nodes_display:find("compact_display_nodes") then if show_group then show_group.width = "25%" end o = s:option(DummyValue, "remarks", translate("Remarks")) o.cfgvalue = function(t, n) @@ -90,7 +80,7 @@ if m:get("@global_other[0]", "compact_display_nodes") == "1" then end else ---- Add Mode - if m:get("@global_other[0]", "show_add_mode") == "1" then + if nodes_display:find("show_add_mode") then o = s:option(DummyValue, "add_mode", translate("Add Mode")) o.cfgvalue = function(t, n) local v = Value.cfgvalue(t, n) @@ -140,7 +130,8 @@ end ---- Ping o = s:option(DummyValue, "ping", translate("Latency")) -if m:get("@global_other[0]", "auto_ping") == "0" then +o.width = "6%" +if not nodes_ping:find("auto_ping") then o.template = appname .. "/node_list/ping" else o.template = appname .. "/node_list/auto_ping" diff --git a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/other.lua b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/other.lua index adcba7b5dd..e8de32dc22 100644 --- a/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/other.lua +++ b/package/lienol/luci-app-passwall/luasrc/model/cbi/passwall/client/other.lua @@ -144,21 +144,10 @@ o:value("1") o:value("2") o:value("3") ----- 状态使用大图标 -o = s:option(Flag, "status_use_big_icon", translate("Status Use Big Icon")) -o.default = "1" -o.rmempty = false - ----- 显示节点检测 -o = - s:option(Flag, "status_show_check_port", translate("Status Show Check Port")) -o.default = "0" -o.rmempty = false - ----- 显示IP111 -o = s:option(Flag, "status_show_ip111", translate("Status Show IP111")) -o.default = "0" -o.rmempty = false +o = s:option(MultiValue, "status", translate("Status info")) +o:value("big_icon", translate("Big icon")) -- 大图标 +o:value("show_check_port", translate("Show node check")) -- 显示节点检测 +o:value("show_ip111", translate("Show Show IP111")) -- 显示IP111 local nodes_table = {} uci:foreach(appname, "nodes", function(e) diff --git a/package/lienol/luci-app-passwall/luasrc/view/passwall/global/status.htm b/package/lienol/luci-app-passwall/luasrc/view/passwall/global/status.htm index 78fc1e9de9..e6fb79e646 100644 --- a/package/lienol/luci-app-passwall/luasrc/view/passwall/global/status.htm +++ b/package/lienol/luci-app-passwall/luasrc/view/passwall/global/status.htm @@ -5,8 +5,7 @@ local api = require "luci.model.cbi.passwall.api.api" local tcp_node_num = api.uci_get_type("global_other", "tcp_node_num", 1) local udp_node_num = api.uci_get_type("global_other", "udp_node_num", 1) -local status_show_check_port = api.uci_get_type("global_other", "status_show_check_port", 0) -local status_show_ip111 = api.uci_get_type("global_other", "status_show_ip111", 0) +local status = api.uci_get_type("global_other", "status", "") -%>