mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-11-03 10:53:56 +08:00
🎁 Sync 2026-10-18 22:41:16
This commit is contained in:
1 parent
3eca35a513
commit
3159b4f938
88 files changed
+5597
-1051
No files matched your search
@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-passwall
|
||||
PKG_VERSION:=26.10.16
|
||||
PKG_RELEASE:=337
|
||||
PKG_RELEASE:=338
|
||||
PKG_PO_VERSION:=$(PKG_VERSION)
|
||||
|
||||
PKG_CONFIG_DEPENDS:= \
|
||||
|
||||
@@ -253,6 +253,7 @@ function get_redir_log()
|
||||
local path = api.TMP_PATH .. "/acl/" .. id
|
||||
|
||||
local function alert(msg)
|
||||
http.prepare_content("text/html; charset=utf-8")
|
||||
http.write(string.format("<script>alert('%s');window.close();</script>", i18n.translate(msg)))
|
||||
end
|
||||
|
||||
@@ -273,9 +274,8 @@ function get_redir_log()
|
||||
end
|
||||
|
||||
if fs.access(path .. "/" .. name .. ".log") then
|
||||
local content = luci.sys.exec("tail -n 5000 ".. path .. "/" .. name .. ".log")
|
||||
content = content:gsub("\n", "<br />")
|
||||
http.write(content)
|
||||
http.prepare_content("text/plain; charset=utf-8")
|
||||
http.write(luci.sys.exec("tail -n 5000 " .. util.shellquote(path)))
|
||||
else
|
||||
alert("Not enabled log")
|
||||
end
|
||||
@@ -285,10 +285,10 @@ function get_socks_log()
|
||||
local name = http.formvalue("name")
|
||||
local path = api.TMP_PATH .. "/" .. name .. ".log"
|
||||
if fs.access(path) then
|
||||
local content = luci.sys.exec("tail -n 5000 ".. path)
|
||||
content = content:gsub("\n", "<br />")
|
||||
http.write(content)
|
||||
http.prepare_content("text/plain; charset=utf-8")
|
||||
http.write(luci.sys.exec("tail -n 5000 " .. util.shellquote(path)))
|
||||
else
|
||||
http.prepare_content("text/html; charset=utf-8")
|
||||
http.write(string.format("<script>alert('%s');window.close();</script>", i18n.translate("Not enabled log")))
|
||||
end
|
||||
end
|
||||
@@ -308,21 +308,22 @@ function get_chinadns_log()
|
||||
end
|
||||
end
|
||||
if fs.access(path) then
|
||||
local content = luci.sys.exec("tail -n 5000 ".. path)
|
||||
content = content:gsub("\n", "<br />")
|
||||
http.write(content)
|
||||
http.prepare_content("text/plain; charset=utf-8")
|
||||
http.write(luci.sys.exec("tail -n 5000 " .. util.shellquote(path)))
|
||||
else
|
||||
http.prepare_content("text/html; charset=utf-8")
|
||||
http.write(string.format("<script>alert('%s');window.close();</script>", i18n.translate("Not enabled log")))
|
||||
end
|
||||
end
|
||||
|
||||
function get_smartdns_log()
|
||||
local path = api.TMP_PATH .. "/acl/default/smartdns.log"
|
||||
http.prepare_content("text/plain; charset=utf-8")
|
||||
if fs.access(path) then
|
||||
http.prepare_content("text/plain; charset=utf-8")
|
||||
http.write(luci.sys.exec("tail -n 5000 " .. util.shellquote(path)))
|
||||
else
|
||||
http.write(i18n.translate("Not enabled log"))
|
||||
http.prepare_content("text/html; charset=utf-8")
|
||||
http.write(string.format("<script>alert('%s');window.close();</script>", i18n.translate("Not enabled log")))
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -270,10 +270,11 @@ end
|
||||
-- 计算字符串 MD5
|
||||
function md5_string(str)
|
||||
if type(str) ~= "string" then return "" end
|
||||
local quoted = "'" .. str:gsub("'", "'\\''") .. "'"
|
||||
local out = sys.exec("printf '%s' " .. quoted .. " | md5sum")
|
||||
if not out then return "" end
|
||||
return out:sub(1, 32)
|
||||
local path = trim(sys.exec("mktemp /tmp/md5.XXXXXX") or "")
|
||||
if path == "" then return "" end
|
||||
local md5 = fs.writefile(path, str) == #str and md5_file(path) or ""
|
||||
fs.unlink(path)
|
||||
return md5
|
||||
end
|
||||
|
||||
--提取URL中的域名和端口(no ip)
|
||||
|
||||
@@ -196,10 +196,9 @@ local sid = "@global[0]"
|
||||
}
|
||||
requestAnimationFrame(waitForDnsSelect);
|
||||
};
|
||||
waitForDnsSelect();
|
||||
|
||||
const initDnsSelect = (dns_select) => {
|
||||
if (dns_select.value === "chinadns-ng") {
|
||||
if (dns_select.value === "chinadns-ng" || dns_select.value === "smartdns") {
|
||||
addLogLink(dns_select);
|
||||
}
|
||||
if (dns_select._dnsLogBinded) return;
|
||||
@@ -210,7 +209,7 @@ local sid = "@global[0]"
|
||||
if (existingLogLink) {
|
||||
existingLogLink.remove();
|
||||
}
|
||||
if (dns_select.value === "chinadns-ng") {
|
||||
if (dns_select.value === "chinadns-ng" || dns_select.value === "smartdns") {
|
||||
addLogLink(dns_select);
|
||||
}
|
||||
});
|
||||
@@ -225,9 +224,12 @@ local sid = "@global[0]"
|
||||
logLink.href = "#";
|
||||
logLink.className = "dns-log-link";
|
||||
logLink.style.marginLeft = "10px";
|
||||
logLink.setAttribute("onclick", "window.open('" + '<%=api.url("get_chinadns_log")%>' + "?flag=default', '_blank')");
|
||||
const logUrl = select.value === "smartdns" ? '<%=api.url("get_smartdns_log")%>' : '<%=api.url("get_chinadns_log")%>?flag=default';
|
||||
logLink.setAttribute("onclick", "window.open('" + logUrl + "', '_blank')");
|
||||
select.insertAdjacentElement("afterend", logLink);
|
||||
};
|
||||
|
||||
waitForDnsSelect();
|
||||
})();
|
||||
|
||||
(function () {
|
||||
|
||||
@@ -196,10 +196,6 @@ if not is_file_nonzero(file_vpslist) then
|
||||
api.uci_foreach_c("nodes", function(t)
|
||||
process_address(t.address)
|
||||
process_address(t.download_address)
|
||||
local dns, _ = api.get_domain_port_from_url(t.domain_resolver_dns or t.domain_resolver_dns_https or "")
|
||||
if dns and dns ~= "" then
|
||||
process_address(dns)
|
||||
end
|
||||
end)
|
||||
f_out:close()
|
||||
end
|
||||
|
||||
@@ -334,7 +334,7 @@ function add_rule(var)
|
||||
end
|
||||
|
||||
local function get_dns_config_key()
|
||||
local address_md5 = api.md5_string(sys.exec([[uci show passwall | grep -E '\.(address|download_address|domain_resolver_dns|domain_resolver_dns_https)=' | cut -d "'" -f 2 | sort -u]]))
|
||||
local address_md5 = api.md5_string(sys.exec([[uci show passwall | grep -E '\.(address|download_address)=' | cut -d "'" -f 2 | sort -u]]))
|
||||
local new_rules = sys.exec([[
|
||||
for f in \
|
||||
/usr/share/passwall/rules/chnlist \
|
||||
@@ -462,10 +462,6 @@ function add_rule(var)
|
||||
api.uci_foreach_c("nodes", function(t)
|
||||
process_address(t.address)
|
||||
process_address(t.download_address)
|
||||
local dns, _ = api.get_domain_port_from_url(t.domain_resolver_dns or t.domain_resolver_dns_https or "")
|
||||
if dns and dns ~= "" then
|
||||
process_address(dns)
|
||||
end
|
||||
end)
|
||||
log(string.format(" - 节点列表中的域名(vpslist):%s", fwd_dns or "默认"))
|
||||
end
|
||||
|
||||
@@ -401,10 +401,6 @@ if not is_file_nonzero(file_vpslist) then
|
||||
api.uci_foreach_c("nodes", function(t)
|
||||
process_address(t.address)
|
||||
process_address(t.download_address)
|
||||
local dns, _ = api.get_domain_port_from_url(t.domain_resolver_dns or t.domain_resolver_dns_https or "")
|
||||
if dns and dns ~= "" then
|
||||
process_address(dns)
|
||||
end
|
||||
end)
|
||||
f_out:close()
|
||||
end
|
||||
@@ -418,6 +414,8 @@ if is_file_nonzero(file_vpslist) then
|
||||
"#6:" .. setflag .. "psw_vps6"
|
||||
}
|
||||
local domain_rules_str = string.format('domain-rules /domain-set:%s/ -nameserver direct', domain_set_name) .. DIRECT_RULE_OPTIONS
|
||||
-- 节点域名最多缓存 30 秒,到期后重新查询,避免继续返回过期的节点 IP。
|
||||
domain_rules_str = domain_rules_str .. " -rr-ttl-max 30 -no-serve-expired"
|
||||
domain_rules_str = domain_rules_str .. " " .. set_type .. " " .. table.concat(sets, ",")
|
||||
table.insert(tmp_lines, domain_rules_str)
|
||||
insert_array_after(config_lines, tmp_lines, "#--9")
|
||||
|
||||
@@ -767,7 +767,7 @@ filter_haproxy() {
|
||||
}
|
||||
|
||||
filter_vpsip() {
|
||||
local vps_addrs=$(uci show $CONFIG | grep -E "(\.address=|\.download_address=|\.domain_resolver_dns=|\.domain_resolver_dns_https=)" | cut -d "'" -f 2 | grep -Ev "$EXCLUDE_VPSIP")
|
||||
local vps_addrs=$(uci show $CONFIG | grep -E "(\.address=|\.download_address=)" | cut -d "'" -f 2 | grep -Ev "$EXCLUDE_VPSIP")
|
||||
local ipv4_addrs=$(echo "$vps_addrs" | grep -Eo "$IPv4_REGEX")
|
||||
[ -n "$ipv4_addrs" ] && {
|
||||
echo "$ipv4_addrs" | sed "s/^/add $IPSET_VPS /" | awk '1; END{print "COMMIT"}' | ipset -! -R
|
||||
|
||||
@@ -816,7 +816,7 @@ filter_vps_addr() {
|
||||
}
|
||||
|
||||
filter_vpsip() {
|
||||
local vps_addrs=$(uci show $CONFIG | grep -E "(\.address=|\.download_address=|\.domain_resolver_dns=|\.domain_resolver_dns_https=)" | cut -d "'" -f 2 | grep -Ev "$EXCLUDE_VPSIP")
|
||||
local vps_addrs=$(uci show $CONFIG | grep -E "(\.address=|\.download_address=)" | cut -d "'" -f 2 | grep -Ev "$EXCLUDE_VPSIP")
|
||||
local ipv4_addrs=$(echo "$vps_addrs" | grep -Eo "$IPv4_REGEX")
|
||||
[ -n "$ipv4_addrs" ] && {
|
||||
echo "$ipv4_addrs" | insert_nftset $NFTSET_VPS
|
||||
|
||||
@@ -8,10 +8,7 @@ LOCK_FILE=${LOCK_PATH}/${CONFIG}_tasks.lock
|
||||
CFG_UPDATE_INT=0
|
||||
|
||||
exec 99>"$LOCK_FILE"
|
||||
flock -n 99
|
||||
if [ "$?" != 0 ]; then
|
||||
exit 0
|
||||
fi
|
||||
flock -n 99 || exit 0
|
||||
|
||||
while true
|
||||
do
|
||||
@@ -23,7 +20,7 @@ do
|
||||
restart_interval_mode=$(expr "$restart_interval_mode" \* 60)
|
||||
if [ -n "$restart_week_mode" ]; then
|
||||
[ "$restart_week_mode" = "8" ] && {
|
||||
[ "$(expr "$CFG_UPDATE_INT" % "$restart_interval_mode")" -eq 0 ] && { /etc/init.d/$CONFIG restart cron > /dev/null 2>&1 & }
|
||||
[ "$(expr "$CFG_UPDATE_INT" % "$restart_interval_mode")" -eq 0 ] && { /etc/init.d/$CONFIG restart cron > /dev/null 2>&1 99>&- & }
|
||||
}
|
||||
fi
|
||||
|
||||
@@ -32,7 +29,7 @@ do
|
||||
rules_update_interval_mode=$(expr "$rules_update_interval_mode" \* 60)
|
||||
if [ -n "$rules_update_week_mode" ]; then
|
||||
[ "$rules_update_week_mode" = "8" ] && {
|
||||
[ "$(expr "$CFG_UPDATE_INT" % "$rules_update_interval_mode")" -eq 0 ] && { lua $APP_PATH/rule_update.lua log all cron > /dev/null 2>&1 & }
|
||||
[ "$(expr "$CFG_UPDATE_INT" % "$rules_update_interval_mode")" -eq 0 ] && { lua "$APP_PATH/rule_update.lua" log all cron > /dev/null 2>&1 99>&- & }
|
||||
}
|
||||
fi
|
||||
|
||||
@@ -53,9 +50,9 @@ do
|
||||
sub_update_week_mode=${name%_*}
|
||||
sub_update_interval_mode=${name#*_}
|
||||
sub_update_interval_mode=$(expr "$sub_update_interval_mode" \* 60)
|
||||
cfgids=$(echo -n $(cat ${TMP_SUB_PATH}/${name}) | sed 's# #,#g')
|
||||
cfgids=$(tr '\n' ',' < "${TMP_SUB_PATH}/${name}" | sed 's/,$//')
|
||||
[ "$sub_update_week_mode" = "8" ] && {
|
||||
[ "$(expr "$CFG_UPDATE_INT" % "$sub_update_interval_mode")" -eq 0 ] && { lua $APP_PATH/subscribe.lua start $cfgids cron > /dev/null 2>&1 & }
|
||||
[ "$(expr "$CFG_UPDATE_INT" % "$sub_update_interval_mode")" -eq 0 ] && { lua "$APP_PATH/subscribe.lua" start "$cfgids" cron > /dev/null 2>&1 99>&- & }
|
||||
}
|
||||
done
|
||||
rm -rf $TMP_SUB_PATH
|
||||
@@ -65,6 +62,6 @@ do
|
||||
|
||||
CFG_UPDATE_INT=$(expr "$CFG_UPDATE_INT" + 10)
|
||||
|
||||
sleep 600
|
||||
sleep 600 99>&-
|
||||
|
||||
done 2>/dev/null
|
||||
Reference in new issue
Block a user