openwrt_helloworld/patch-luci-app-passwall.patch
private 3d8c244bfb 添加 patch-luci-app-passwall.patch
Signed-off-by: private <2519840456@qq.com>
2025-07-18 00:59:04 +08:00

471 lines
17 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

diff --git a/luci-app-passwall/Makefile b/luci-app-passwall/Makefile
index 2568ff2..8f11744 100644
--- a/luci-app-passwall/Makefile
+++ b/luci-app-passwall/Makefile
@@ -68,7 +68,7 @@ config PACKAGE_$(PKG_NAME)_Nftables_Transparent_Proxy
config PACKAGE_$(PKG_NAME)_INCLUDE_Geoview
bool "Include Geoview"
select PACKAGE_geoview
- default y if aarch64||arm||i386||x86_64
+ default n
config PACKAGE_$(PKG_NAME)_INCLUDE_Haproxy
bool "Include Haproxy"
@@ -184,7 +184,6 @@ define Package/$(PKG_NAME)/conffiles
/usr/share/passwall/rules/lanlist_ipv4
/usr/share/passwall/rules/lanlist_ipv6
/usr/share/passwall/rules/domains_excluded
-/www/luci-static/resources/qrcode.min.js
endef
define Package/$(PKG_NAME)/postrm
diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/acl.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/acl.lua
index 9d5edc7..d825e87 100644
--- a/luci-app-passwall/luasrc/model/cbi/passwall/client/acl.lua
+++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/acl.lua
@@ -3,7 +3,6 @@ local appname = "passwall"
local sys = api.sys
m = Map(appname)
-api.set_apply_on_parse(m)
s = m:section(TypedSection, "global", translate("ACLs"), "<font color='red'>" .. translate("ACLs is a tools which used to designate specific IP proxy mode.") .. "</font>")
s.anonymous = true
diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/acl_config.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/acl_config.lua
index 41b2e2b..c255149 100644
--- a/luci-app-passwall/luasrc/model/cbi/passwall/client/acl_config.lua
+++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/acl_config.lua
@@ -2,11 +2,9 @@ local api = require "luci.passwall.api"
local appname = "passwall"
m = Map(appname)
-m.redirect = api.url("acl")
-api.set_apply_on_parse(m)
if not arg[1] or not m:get(arg[1]) then
- luci.http.redirect(m.redirect)
+ luci.http.redirect(api.url("acl"))
end
local fs = api.fs
diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/app_update.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/app_update.lua
index b39d6df..d105b3f 100644
--- a/luci-app-passwall/luasrc/model/cbi/passwall/client/app_update.lua
+++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/app_update.lua
@@ -2,7 +2,6 @@ local api = require "luci.passwall.api"
local appname = "passwall"
m = Map(appname)
-api.set_apply_on_parse(m)
-- [[ App Settings ]]--
s = m:section(TypedSection, "global_app", translate("App Update"),
diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua
index 93ba2b8..6cb5892 100644
--- a/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua
+++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/global.lua
@@ -10,7 +10,6 @@ local has_chnroute = fs.access("/usr/share/passwall/rules/chnroute")
local chinadns_tls = os.execute("chinadns-ng -V | grep -i wolfssl >/dev/null")
m = Map(appname)
-api.set_apply_on_parse(m)
local nodes_table = {}
for k, e in ipairs(api.get_valid_nodes()) do
@@ -512,6 +511,12 @@ o:value("9.9.9.9", "9.9.9.9 (Quad9)")
o:value("149.112.112.112", "149.112.112.112 (Quad9)")
o:value("208.67.220.220", "208.67.220.220 (OpenDNS)")
o:value("208.67.222.222", "208.67.222.222 (OpenDNS)")
+if nixio.fs.access("/usr/share/mosdns/mosdns.sh") then
+ local mosdns_port = string.gsub(luci.sys.exec("uci -q get mosdns.config.listen_port"), "\n", "")
+ if mosdns_port ~= nil and result ~= "" then
+ o:value("127.0.0.1:" .. mosdns_port, "127.0.0.1:" .. mosdns_port .. " (MosDNS)")
+ end
+end
o:depends({dns_mode = "dns2socks"})
o:depends({dns_mode = "tcp"})
o:depends({dns_mode = "udp"})
@@ -623,7 +628,7 @@ o:depends({direct_dns_mode = "dot"})
o:depends({dns_mode = "dot"})
o = s:taboption("DNS", Flag, "dns_redirect", translate("DNS Redirect"), translate("Force special DNS server to need proxy devices."))
-o.default = "1"
+o.default = "0"
o.rmempty = false
if (m:get("@global_forwarding[0]", "use_nft") or "0") == "1" then
diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/haproxy.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/haproxy.lua
index 8be9f27..4c6b3f2 100644
--- a/luci-app-passwall/luasrc/model/cbi/passwall/client/haproxy.lua
+++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/haproxy.lua
@@ -15,7 +15,6 @@ for k, e in ipairs(api.get_valid_nodes()) do
end
m = Map(appname)
-api.set_apply_on_parse(m)
-- [[ Haproxy Settings ]]--
s = m:section(TypedSection, "global_haproxy", translate("Basic Settings"))
diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/node_config.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/node_config.lua
index 31c6d12..b6a3511 100644
--- a/luci-app-passwall/luasrc/model/cbi/passwall/client/node_config.lua
+++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/node_config.lua
@@ -2,11 +2,10 @@ local api = require "luci.passwall.api"
local appname = "passwall"
m = Map(appname, translate("Node Config"))
-m.redirect = api.url("node_list")
-api.set_apply_on_parse(m)
+m.redirect = api.url()
if not arg[1] or not m:get(arg[1]) then
- luci.http.redirect(m.redirect)
+ luci.http.redirect(api.url("node_list"))
end
s = m:section(NamedSection, arg[1], "nodes", "")
diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/node_list.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/node_list.lua
index 0cd8ad9..5659632 100644
--- a/luci-app-passwall/luasrc/model/cbi/passwall/client/node_list.lua
+++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/node_list.lua
@@ -4,7 +4,6 @@ local sys = api.sys
local datatypes = api.datatypes
m = Map(appname)
-api.set_apply_on_parse(m)
-- [[ Other Settings ]]--
s = m:section(TypedSection, "global_other")
diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/node_subscribe.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/node_subscribe.lua
index fa5dc57..57e5949 100644
--- a/luci-app-passwall/luasrc/model/cbi/passwall/client/node_subscribe.lua
+++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/node_subscribe.lua
@@ -46,6 +46,10 @@ end
m = Map(appname)
+-- [[ Subscribe Settings ]]--
+s = m:section(TypedSection, "global_subscribe", "")
+s.anonymous = true
+
function m.commit_handler(self)
if self.no_commit then
return
@@ -55,21 +59,6 @@ function m.commit_handler(self)
end)
end
-if api.is_js_luci() then
- m.apply_on_parse = false
- m.on_after_apply = function(self)
- uci:foreach(appname, "subscribe_list", function(e)
- uci:delete(appname, e[".name"], "md5")
- end)
- uci:commit(appname)
- api.showMsg_Redirect()
- end
-end
-
--- [[ Subscribe Settings ]]--
-s = m:section(TypedSection, "global_subscribe", "")
-s.anonymous = true
-
o = s:option(ListValue, "filter_keyword_mode", translate("Filter keyword Mode"))
o:value("0", translate("Close"))
o:value("1", translate("Discard List"))
@@ -157,7 +146,6 @@ s.sortable = true
s.template = "cbi/tblsection"
s.extedit = api.url("node_subscribe_config", "%s")
function s.create(e, t)
- m.no_commit = true
local id = TypedSection.create(e, t)
luci.http.redirect(e.extedit:format(id))
end
diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/node_subscribe_config.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/node_subscribe_config.lua
index 28b4e88..2f5c9c7 100644
--- a/luci-app-passwall/luasrc/model/cbi/passwall/client/node_subscribe_config.lua
+++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/node_subscribe_config.lua
@@ -9,19 +9,6 @@ if not arg[1] or not m:get(arg[1]) then
luci.http.redirect(m.redirect)
end
-function m.commit_handler(self)
- self:del(arg[1], "md5")
-end
-
-if api.is_js_luci() then
- m.apply_on_parse = false
- m.on_after_apply = function(self)
- uci:delete(appname, arg[1], "md5")
- uci:commit(appname)
- api.showMsg_Redirect(self.redirect, 3000)
- end
-end
-
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")
@@ -69,6 +56,10 @@ s = m:section(NamedSection, arg[1])
s.addremove = false
s.dynamic = false
+function m.commit_handler(self)
+ self:del(arg[1], "md5")
+end
+
o = s:option(Value, "remark", translate("Subscribe Remark"))
o.rmempty = false
diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/other.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/other.lua
index d4f45b7..85608a8 100644
--- a/luci-app-passwall/luasrc/model/cbi/passwall/client/other.lua
+++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/other.lua
@@ -11,7 +11,6 @@ local port_validate = function(self, value, t)
end
m = Map(appname)
-api.set_apply_on_parse(m)
-- [[ Delay Settings ]]--
s = m:section(TypedSection, "global_delay", translate("Delay Settings"))
diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/rule.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/rule.lua
index f94caec..baeb996 100644
--- a/luci-app-passwall/luasrc/model/cbi/passwall/client/rule.lua
+++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/rule.lua
@@ -4,8 +4,6 @@ local has_xray = api.finded_com("xray")
local has_singbox = api.finded_com("sing-box")
m = Map(appname)
-api.set_apply_on_parse(m)
-
-- [[ Rule Settings ]]--
s = m:section(TypedSection, "global_rules", translate("Rule status"))
s.anonymous = true
diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/rule_list.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/rule_list.lua
index 6d4631f..2738beb 100644
--- a/luci-app-passwall/luasrc/model/cbi/passwall/client/rule_list.lua
+++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/rule_list.lua
@@ -10,7 +10,6 @@ local chnlist_path = "/usr/share/passwall/rules/chnlist"
local chnroute_path = "/usr/share/passwall/rules/chnroute"
m = Map(appname)
-api.set_apply_on_parse(m)
function clean_text(text)
local nbsp = string.char(0xC2, 0xA0) -- 不间断空格U+00A0
diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/shunt_rules.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/shunt_rules.lua
index f387d70..1571e63 100644
--- a/luci-app-passwall/luasrc/model/cbi/passwall/client/shunt_rules.lua
+++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/shunt_rules.lua
@@ -4,7 +4,6 @@ local datatypes = api.datatypes
m = Map(appname, "Sing-Box/Xray " .. translate("Shunt Rule"))
m.redirect = api.url()
-api.set_apply_on_parse(m)
function clean_text(text)
local nbsp = string.char(0xC2, 0xA0) -- 不间断空格U+00A0
diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/socks_config.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/socks_config.lua
index ffb269b..b20475e 100644
--- a/luci-app-passwall/luasrc/model/cbi/passwall/client/socks_config.lua
+++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/socks_config.lua
@@ -2,11 +2,9 @@ local api = require "luci.passwall.api"
local appname = "passwall"
m = Map(appname)
-m.redirect = api.url()
-api.set_apply_on_parse(m)
if not arg[1] or not m:get(arg[1]) then
- luci.http.redirect(m.redirect)
+ luci.http.redirect(api.url())
end
local has_singbox = api.finded_com("sing-box")
diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/server/index.lua b/luci-app-passwall/luasrc/model/cbi/passwall/server/index.lua
index d6ee932..625c024 100644
--- a/luci-app-passwall/luasrc/model/cbi/passwall/server/index.lua
+++ b/luci-app-passwall/luasrc/model/cbi/passwall/server/index.lua
@@ -1,7 +1,6 @@
local api = require "luci.passwall.api"
m = Map("passwall_server", translate("Server-Side"))
-api.set_apply_on_parse(m)
t = m:section(NamedSection, "global", "global")
t.anonymous = true
diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/server/user.lua b/luci-app-passwall/luasrc/model/cbi/passwall/server/user.lua
index a42a0ac..6affd2c 100644
--- a/luci-app-passwall/luasrc/model/cbi/passwall/server/user.lua
+++ b/luci-app-passwall/luasrc/model/cbi/passwall/server/user.lua
@@ -4,11 +4,6 @@ local types_dir = "/usr/lib/lua/luci/model/cbi/passwall/server/type/"
m = Map("passwall_server", translate("Server Config"))
m.redirect = api.url("server")
-api.set_apply_on_parse(m)
-
-if not arg[1] or not m:get(arg[1]) then
- luci.http.redirect(m.redirect)
-end
s = m:section(NamedSection, arg[1], "user", "")
s.addremove = false
diff --git a/luci-app-passwall/luasrc/passwall/api.lua b/luci-app-passwall/luasrc/passwall/api.lua
index d73daac..3bc978d 100644
--- a/luci-app-passwall/luasrc/passwall/api.lua
+++ b/luci-app-passwall/luasrc/passwall/api.lua
@@ -38,68 +38,6 @@ function is_old_uci()
return sys.call("grep -E 'require[ \t]*\"uci\"' /usr/lib/lua/luci/model/uci.lua >/dev/null 2>&1") == 0
end
-function set_apply_on_parse(map)
- if not map then
- return
- end
- if is_js_luci() then
- map.apply_on_parse = false
- map.on_after_apply = function(self)
- showMsg_Redirect(self.redirect, 3000)
- end
- end
-end
-
-function showMsg_Redirect(redirectUrl, delay)
- local message = "PassWall " .. i18n.translate("Settings have been successfully saved and applied!")
- luci.http.write([[
- <script type="text/javascript">
- document.addEventListener('DOMContentLoaded', function() {
- // 创建遮罩层
- var overlay = document.createElement('div');
- overlay.style.position = 'fixed';
- overlay.style.top = '0';
- overlay.style.left = '0';
- overlay.style.width = '100%';
- overlay.style.height = '100%';
- overlay.style.backgroundColor = 'rgba(0, 0, 0, 0.5)';
- overlay.style.zIndex = '9999';
- // 创建提示条
- var messageDiv = document.createElement('div');
- messageDiv.style.position = 'fixed';
- messageDiv.style.top = '0';
- messageDiv.style.left = '0';
- messageDiv.style.width = '100%';
- messageDiv.style.background = '#4caf50';
- messageDiv.style.color = '#fff';
- messageDiv.style.textAlign = 'center';
- messageDiv.style.padding = '10px';
- messageDiv.style.zIndex = '10000';
- messageDiv.textContent = ']] .. message .. [[';
- // 将遮罩层和提示条添加到页面
- document.body.appendChild(overlay);
- document.body.appendChild(messageDiv);
- // 重定向或隐藏提示条和遮罩层
- var redirectUrl = ']] .. (redirectUrl or "") .. [[';
- var delay = ]] .. (delay or 3000) .. [[;
- setTimeout(function() {
- if (redirectUrl) {
- window.location.href = redirectUrl;
- } else {
- if (messageDiv && messageDiv.parentNode) {
- messageDiv.parentNode.removeChild(messageDiv);
- }
- if (overlay && overlay.parentNode) {
- overlay.parentNode.removeChild(overlay);
- }
- window.location.href = window.location.href;
- }
- }, delay);
- });
- </script>
- ]])
-end
-
function uci_save(cursor, config, commit, apply)
if is_old_uci() then
cursor:save(config)
diff --git a/luci-app-passwall/luasrc/view/passwall/global/status.htm b/luci-app-passwall/luasrc/view/passwall/global/status.htm
index eb5527e..133c295 100644
--- a/luci-app-passwall/luasrc/view/passwall/global/status.htm
+++ b/luci-app-passwall/luasrc/view/passwall/global/status.htm
@@ -1,5 +1,11 @@
<%
local api = require "luci.passwall.api"
+local fs = require "nixio.fs"
+local uci = require 'luci.model.uci'.cursor()
+local mode = 'normal'
+if fs.access('/etc/config/argon') then
+ mode = uci:get_first('argon', 'global', 'mode')
+end
-%>
<style>
@@ -53,8 +59,30 @@ https://github.com/pure-css/pure/blob/master/LICENSE.md
line-height: 1.8em;
min-height: 48px;
border-radius: 12.375px;
+ background-image: linear-gradient(270deg, #dde2ff 0%, #fffeff 100%);
}
+ @media (prefers-color-scheme: dark) {
+ .block h4 {
+ background-image: none;
+ background-color: #2c323c;
+ }
+ .block.pure-g {
+ background: #444950;
+ box-shadow: unset;
+ }
+ }
+ <% if mode == 'dark' then %>
+ .block h4 {
+ background-image: none;
+ background-color: #2c323c;
+ }
+ .block.pure-g {
+ background: #444950;
+ box-shadow: unset;
+ }
+ <% end -%>
+
.check {
cursor: pointer;
}
diff --git a/luci-app-passwall/po/zh-cn/passwall.po b/luci-app-passwall/po/zh-cn/passwall.po
index 1f0d6b6..0b76142 100644
--- a/luci-app-passwall/po/zh-cn/passwall.po
+++ b/luci-app-passwall/po/zh-cn/passwall.po
@@ -1837,9 +1837,6 @@ msgstr "是否要恢复客户端默认配置?"
msgid "Are you sure you want to restore the client to default settings?"
msgstr "是否真的要恢复客户端默认配置?"
-msgid "Settings have been successfully saved and applied!"
-msgstr "设置已成功保存并应用!"
-
msgid "_urltest"
msgstr "URLTest"
diff --git a/luci-app-passwall/root/usr/share/passwall/0_default_config b/luci-app-passwall/root/usr/share/passwall/0_default_config
index 0c5490e..6771513 100644
--- a/luci-app-passwall/root/usr/share/passwall/0_default_config
+++ b/luci-app-passwall/root/usr/share/passwall/0_default_config
@@ -32,7 +32,7 @@ config global_haproxy
config global_delay
option start_daemon '1'
- option start_delay '60'
+ option start_delay '15'
config global_forwarding
option tcp_no_redir_ports 'disable'
diff --git a/luci-app-passwall/root/usr/share/passwall/rules/direct_ip b/luci-app-passwall/root/usr/share/passwall/rules/direct_ip
index b73edaa..ada52ad 100644
--- a/luci-app-passwall/root/usr/share/passwall/rules/direct_ip
+++ b/luci-app-passwall/root/usr/share/passwall/rules/direct_ip
@@ -8,3 +8,7 @@
120.53.53.53
180.184.1.1
180.184.2.2
+203.208.39.192/28
+203.208.40.0/23
+34.149.0.0/16
+72.18.83.0/24