luci: optimise

This commit is contained in:
xiaorouji 2024-03-10 03:12:24 +08:00 committed by sbwml
parent 2b18407aea
commit aa883bf93e
28 changed files with 43 additions and 49 deletions

View File

@ -6,7 +6,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-passwall
PKG_VERSION:=4.75-6
PKG_VERSION:=4.75-7
PKG_RELEASE:=
PKG_CONFIG_DEPENDS:= \

View File

@ -3,14 +3,14 @@
module("luci.controller.passwall", package.seeall)
local api = require "luci.passwall.api"
local appname = api.appname
local appname = "passwall"
local ucic = luci.model.uci.cursor()
local http = require "luci.http"
local util = require "luci.util"
local i18n = require "luci.i18n"
function index()
appname = require "luci.passwall.api".appname
appname = "passwall"
entry({"admin", "services", appname}).dependent = true
entry({"admin", "services", appname, "reset_config"}, call("reset_config")).leaf = true
entry({"admin", "services", appname, "show"}, call("show_menu")).leaf = true
@ -148,12 +148,13 @@ function socks_autoswitch_remove_node()
end
function get_now_use_node()
local path = "/tmp/etc/passwall/acl/default"
local e = {}
local data, code, msg = nixio.fs.readfile("/tmp/etc/passwall/id/TCP")
local data, code, msg = nixio.fs.readfile(path .. "/TCP.id")
if data then
e["TCP"] = util.trim(data)
end
local data, code, msg = nixio.fs.readfile("/tmp/etc/passwall/id/UDP")
local data, code, msg = nixio.fs.readfile(path .. "/UDP.id")
if data then
e["UDP"] = util.trim(data)
end
@ -162,13 +163,15 @@ function get_now_use_node()
end
function get_redir_log()
local name = luci.http.formvalue("name")
local proto = luci.http.formvalue("proto")
local path = "/tmp/etc/passwall/acl/" .. name
proto = proto:upper()
if proto == "UDP" and (ucic:get(appname, "@global[0]", "udp_node") or "nil") == "tcp" and not nixio.fs.access("/tmp/etc/passwall/" .. proto .. ".log") then
if proto == "UDP" and (ucic:get(appname, "@global[0]", "udp_node") or "nil") == "tcp" and not nixio.fs.access(path .. "/" .. proto .. ".log") then
proto = "TCP"
end
if nixio.fs.access("/tmp/etc/passwall/" .. proto .. ".log") then
local content = luci.sys.exec("cat /tmp/etc/passwall/" .. proto .. ".log")
if nixio.fs.access(path .. "/" .. proto .. ".log") then
local content = luci.sys.exec("cat ".. path .. "/" .. proto .. ".log")
content = content:gsub("\n", "<br />")
luci.http.write(content)
else

View File

@ -1,5 +1,5 @@
local api = require "luci.passwall.api"
local appname = api.appname
local appname = "passwall"
local sys = api.sys
m = Map(appname)

View File

@ -1,5 +1,5 @@
local api = require "luci.passwall.api"
local appname = api.appname
local appname = "passwall"
local uci = api.uci
local sys = api.sys
local has_singbox = api.finded_com("singbox")

View File

@ -1,5 +1,5 @@
local api = require "luci.passwall.api"
local appname = api.appname
local appname = "passwall"
m = Map(appname)

View File

@ -1,5 +1,5 @@
local api = require "luci.passwall.api"
local appname = api.appname
local appname = "passwall"
local uci = api.uci
local datatypes = api.datatypes
local has_singbox = api.finded_com("singbox")

View File

@ -1,5 +1,5 @@
local api = require "luci.passwall.api"
local appname = api.appname
local appname = "passwall"
local sys = api.sys
local net = require "luci.model.network".init()
local datatypes = api.datatypes

View File

@ -1,5 +1,5 @@
local api = require "luci.passwall.api"
local appname = api.appname
local appname = "passwall"
f = SimpleForm(appname)
f.reset = false

View File

@ -1,5 +1,5 @@
local api = require "luci.passwall.api"
local appname = api.appname
local appname = "passwall"
local uci = api.uci
local fs = require "nixio.fs"
local types_dir = "/usr/lib/lua/luci/model/cbi/passwall/client/type/"

View File

@ -1,5 +1,5 @@
local api = require "luci.passwall.api"
local appname = api.appname
local appname = "passwall"
local sys = api.sys
local datatypes = api.datatypes

View File

@ -1,5 +1,5 @@
local api = require "luci.passwall.api"
local appname = api.appname
local appname = "passwall"
local has_ss = api.is_finded("ss-redir")
local has_ss_rust = api.is_finded("sslocal")
local has_trojan_plus = api.is_finded("trojan-plus")

View File

@ -1,5 +1,5 @@
local api = require "luci.passwall.api"
local appname = api.appname
local appname = "passwall"
local has_ss = api.is_finded("ss-redir")
local has_ss_rust = api.is_finded("sslocal")
local has_trojan_plus = api.is_finded("trojan-plus")

View File

@ -1,5 +1,5 @@
local api = require "luci.passwall.api"
local appname = api.appname
local appname = "passwall"
local fs = api.fs
local has_singbox = api.finded_com("singbox")
local has_xray = api.finded_com("xray")

View File

@ -1,5 +1,5 @@
local api = require "luci.passwall.api"
local appname = api.appname
local appname = "passwall"
local has_xray = api.finded_com("xray")
local has_singbox = api.finded_com("singbox")

View File

@ -1,5 +1,5 @@
local api = require "luci.passwall.api"
local appname = api.appname
local appname = "passwall"
local fs = api.fs
local sys = api.sys
local datatypes = api.datatypes

View File

@ -1,5 +1,5 @@
local api = require "luci.passwall.api"
local appname = api.appname
local appname = "passwall"
local datatypes = api.datatypes
m = Map(appname, "Sing-Box/Xray " .. translate("Shunt Rule"))

View File

@ -1,5 +1,5 @@
local api = require "luci.passwall.api"
local appname = api.appname
local appname = "passwall"
local uci = api.uci
local has_xray = api.finded_com("xray")

View File

@ -6,7 +6,7 @@ if not api.finded_com("xray") then
return
end
local appname = api.appname
local appname = "passwall"
local uci = api.uci
local type_name = "Xray"

View File

@ -10,7 +10,7 @@ end
local singbox_tags = luci.sys.exec(singbox_bin .. " version | grep 'Tags:' | awk '{print $2}'")
local appname = api.appname
local appname = "passwall"
local uci = api.uci
local type_name = "sing-box"

View File

@ -73,7 +73,7 @@ end
function curl_proxy(url, file, args)
--使用代理
local socks_server = luci.sys.exec("[ -f /tmp/etc/passwall/TCP_SOCKS_server ] && echo -n $(cat /tmp/etc/passwall/TCP_SOCKS_server) || echo -n ''")
local socks_server = luci.sys.exec("[ -f /tmp/etc/passwall/acl/default/TCP_SOCKS_server ] && echo -n $(cat /tmp/etc/passwall/acl/default/TCP_SOCKS_server) || echo -n ''")
if socks_server ~= "" then
if not args then args = {} end
local tmp_args = clone(args)

View File

@ -3,7 +3,7 @@ local api = require "luci.passwall.api"
local uci = api.uci
local sys = api.sys
local jsonc = api.jsonc
local appname = api.appname
local appname = "passwall"
local fs = api.fs
local new_port

View File

@ -3,7 +3,7 @@ local api = require "luci.passwall.api"
local uci = api.uci
local sys = api.sys
local jsonc = api.jsonc
local appname = api.appname
local appname = "passwall"
local fs = api.fs
local new_port

View File

@ -78,7 +78,7 @@ local api = require "luci.passwall.api"
var log_a = document.createElement("a");
log_a.innerHTML = "<%:Log%>";
log_a.href = "#";
log_a.setAttribute("onclick", "window.open('" + '<%=api.url("get_redir_log")%>' + "?proto=" + s[0] + "', '_blank')");
log_a.setAttribute("onclick", "window.open('" + '<%=api.url("get_redir_log")%>' + "?name=default&proto=" + s[0] + "', '_blank')");
new_html += "&nbsp&nbsp" + log_a.outerHTML;
}

View File

@ -97,7 +97,7 @@ local api = require "luci.passwall.api"
<div class="cbi-value">
<label class="cbi-value-title"></label>
<div class="cbi-value-field">
<input class="btn cbi-button cbi-button-add" type="submit" name="cbi.cts.<%=api.appname%>.nodes." value="<%:Add%>" />
<input class="btn cbi-button cbi-button-add" type="submit" name="cbi.cts.passwall.nodes." value="<%:Add%>" />
<input class="btn cbi-button cbi-button-add" type="button" onclick="open_add_link_div()" value="<%:Add the node via the link%>" />
<input class="btn cbi-button cbi-button-remove" type="button" onclick="clear_all_nodes()" value="<%:Clear all nodes%>" />
<input class="btn cbi-button cbi-button-remove" type="button" onclick="delete_select_nodes()" value="<%:Delete select nodes%>" />

View File

@ -10,7 +10,6 @@ TMP_PATH=/tmp/etc/$CONFIG
TMP_BIN_PATH=$TMP_PATH/bin
TMP_SCRIPT_FUNC_PATH=$TMP_PATH/script_func
TMP_ID_PATH=$TMP_PATH/id
TMP_PORT_PATH=$TMP_PATH/port
TMP_ROUTE_PATH=$TMP_PATH/route
TMP_ACL_PATH=$TMP_PATH/acl
TMP_IFACE_PATH=$TMP_PATH/iface
@ -672,9 +671,9 @@ run_redir() {
local node proto bind local_port config_file log_file
eval_set_val $@
local tcp_node_socks_flag tcp_node_http_flag
[ -n "$config_file" ] && [ -z "$(echo ${config_file} | grep $TMP_PATH)" ] && config_file=$TMP_PATH/$config_file
[ -n "$config_file" ] && [ -z "$(echo ${config_file} | grep $TMP_PATH)" ] && config_file=${TMP_ACL_PATH}/default/${config_file}
if [ -n "$log_file" ] && [ -z "$(echo ${log_file} | grep $TMP_PATH)" ]; then
log_file=$TMP_PATH/$log_file
log_file=${TMP_ACL_PATH}/default/${log_file}
else
log_file="/dev/null"
fi
@ -982,7 +981,8 @@ run_redir() {
}
[ "$tcp_node_socks" = "1" ] && {
echo "127.0.0.1:$tcp_node_socks_port" > $TMP_PATH/TCP_SOCKS_server
TCP_SOCKS_server="127.0.0.1:$tcp_node_socks_port"
echo "${TCP_SOCKS_server}" > $TMP_ACL_PATH/default/TCP_SOCKS_server
}
;;
esac
@ -1001,15 +1001,7 @@ start_redir() {
local port=$(echo $(get_new_port $current_port $proto))
eval ${proto}_REDIR=$port
run_redir node=$node proto=${proto} bind=0.0.0.0 local_port=$port config_file=$config_file log_file=$log_file
#eval ip=\$${proto}_NODE_IP
echo $port > $TMP_PORT_PATH/${proto}
echo $node > $TMP_ID_PATH/${proto}
[ "$(config_n_get $node protocol nil)" = "_shunt" ] && {
local default_node=$(config_n_get $node default_node nil)
local main_node=$(config_n_get $node main_node nil)
echo $default_node > $TMP_ID_PATH/${proto}_default
echo $main_node > $TMP_ID_PATH/${proto}_main
}
echo $node > $TMP_ACL_PATH/default/${proto}.id
else
[ "${proto}" = "UDP" ] && [ "$TCP_UDP" = "1" ] && return
echolog "${proto}节点没有选择或为空,不代理${proto}"
@ -1628,6 +1620,7 @@ start() {
}
[ "$ENABLED_DEFAULT_ACL" == 1 ] && {
mkdir -p $TMP_ACL_PATH/default
start_redir TCP
start_redir UDP
start_dns
@ -1728,7 +1721,7 @@ DNS_QUERY_STRATEGY="UseIPv4"
export V2RAY_LOCATION_ASSET=$(config_t_get global_rules v2ray_location_asset "/usr/share/v2ray/")
export XRAY_LOCATION_ASSET=$V2RAY_LOCATION_ASSET
mkdir -p /tmp/etc $TMP_PATH $TMP_BIN_PATH $TMP_SCRIPT_FUNC_PATH $TMP_ID_PATH $TMP_PORT_PATH $TMP_ROUTE_PATH $TMP_ACL_PATH $TMP_IFACE_PATH $TMP_PATH2
mkdir -p /tmp/etc $TMP_PATH $TMP_BIN_PATH $TMP_SCRIPT_FUNC_PATH $TMP_ID_PATH $TMP_ROUTE_PATH $TMP_ACL_PATH $TMP_IFACE_PATH $TMP_PATH2
arg1=$1
shift

View File

@ -1,7 +1,7 @@
#!/usr/bin/lua
local api = require ("luci.passwall.api")
local appname = api.appname
local appname = "passwall"
local fs = api.fs
local jsonc = api.jsonc
local uci = api.uci

View File

@ -1,5 +1,6 @@
require "luci.sys"
local api = require "luci.passwall.api"
local appname = "passwall"
local var = api.get_args(arg)
local FLAG = var["-FLAG"]
@ -28,7 +29,6 @@ local CACHE_TEXT_FILE = CACHE_DNS_PATH .. ".txt"
local uci = api.uci
local sys = api.sys
local appname = api.appname
local fs = api.fs
local datatypes = api.datatypes

View File

@ -2,9 +2,7 @@
CONFIG=passwall
TMP_PATH=/tmp/etc/$CONFIG
TMP_BIN_PATH=$TMP_PATH/bin
TMP_SCRIPT_FUNC_PATH=$TMP_PATH/script_func
TMP_ID_PATH=$TMP_PATH/id
LOCK_FILE_DIR=/tmp/lock
LOCK_FILE=${LOCK_FILE_DIR}/${CONFIG}_script.lock