diff --git a/dae/Makefile b/dae/Makefile
index a8ef61a6..6f9f1747 100644
--- a/dae/Makefile
+++ b/dae/Makefile
@@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=dae
-PKG_VERSION:=2026.07.10
+PKG_VERSION:=2026.07.13
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=e36cac93a606ca61498a96ba796ca977e3dcde27
+PKG_SOURCE_VERSION:=a96efcb689ed3a10f46c8ebc1a08be7634449c75
PKG_SOURCE_URL:=https://github.com/olicesx/dae.git
PKG_MIRROR_HASH:=skip
diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/type/ray.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/type/ray.lua
index dda5e4dd..8cc72e1a 100644
--- a/luci-app-passwall/luasrc/model/cbi/passwall/client/type/ray.lua
+++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/type/ray.lua
@@ -155,8 +155,7 @@ if load_balancing_options then -- [[ Load balancing Start ]]
descrStr = descrStr .. "Conditions are joined by && (AND), and their order does not affect the result.
"
descrStr = descrStr .. "Multiple groups can be separated by || (OR), matching succeeds if any group matches.
"
descrStr = descrStr .. "Example: A && B || C && D means (A AND B) OR (C AND D)."
- o.description = translate(descrStr) .. string.format("
%s",
- translate("Keep the match scope small. Too many nodes can impact router performance."))
+ o.description = translate(descrStr)
o = s:option(ListValue, _n("balancingStrategy"), translate("Balancing Strategy"))
o:depends({ [_n("protocol")] = "_balancing" })
diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/type/sing-box.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/type/sing-box.lua
index f60f4151..439cfb71 100644
--- a/luci-app-passwall/luasrc/model/cbi/passwall/client/type/sing-box.lua
+++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/type/sing-box.lua
@@ -154,8 +154,7 @@ if load_urltest_options then -- [[ URLTest Start ]]
descrStr = descrStr .. "Conditions are joined by && (AND), and their order does not affect the result.
"
descrStr = descrStr .. "Multiple groups can be separated by || (OR), matching succeeds if any group matches.
"
descrStr = descrStr .. "Example: A && B || C && D means (A AND B) OR (C AND D)."
- o.description = translate(descrStr) .. string.format("
%s",
- translate("Keep the match scope small. Too many nodes can impact router performance."))
+ o.description = translate(descrStr)
o = s:option(Value, _n("urltest_url"), translate("Probe URL"))
o:depends({ [_n("protocol")] = "_urltest" })
diff --git a/luci-app-passwall/luasrc/passwall/api.lua b/luci-app-passwall/luasrc/passwall/api.lua
index 2e8e8290..7a2ebdc4 100644
--- a/luci-app-passwall/luasrc/passwall/api.lua
+++ b/luci-app-passwall/luasrc/passwall/api.lua
@@ -1537,7 +1537,7 @@ function match_node_rule(name, rule)
-- split rule by || into OR groups
local function split_or(expr)
local t = {}
- for part in expr:gmatch("[^|]+") do
+ for part in (expr .. "||"):gmatch("(.-)%|%|") do
part = trim(part)
if part ~= "" then
table.insert(t, part)
@@ -1548,7 +1548,7 @@ function match_node_rule(name, rule)
-- split rule by &&
local function split_and(expr)
local t = {}
- for part in expr:gmatch("[^&]+") do
+ for part in (expr .. "&&"):gmatch("(.-)%&%&") do
part = trim(part)
if part ~= "" then
table.insert(t, part)
diff --git a/luci-app-passwall/po/zh-cn/passwall.po b/luci-app-passwall/po/zh-cn/passwall.po
index e2780e3a..f8c83143 100644
--- a/luci-app-passwall/po/zh-cn/passwall.po
+++ b/luci-app-passwall/po/zh-cn/passwall.po
@@ -500,9 +500,6 @@ msgstr ""
"多组条件之间可使用 ||(或)分隔,任意一组匹配即视为成功。
"
"示例:A && B || C && D 表示 (A 且 B) 或 (C 且 D)。"
-msgid "Keep the match scope small. Too many nodes can impact router performance."
-msgstr "建议尽量缩小匹配范围,节点过多会增加路由器负载。"
-
msgid "Balancing Strategy"
msgstr "负载均衡策略"
diff --git a/luci-app-passwall2/luasrc/passwall2/api.lua b/luci-app-passwall2/luasrc/passwall2/api.lua
index f5bfffc8..7da2d87a 100644
--- a/luci-app-passwall2/luasrc/passwall2/api.lua
+++ b/luci-app-passwall2/luasrc/passwall2/api.lua
@@ -1524,7 +1524,7 @@ function match_node_rule(name, rule)
-- split rule by || into OR groups
local function split_or(expr)
local t = {}
- for part in expr:gmatch("[^|]+") do
+ for part in (expr .. "||"):gmatch("(.-)%|%|") do
part = trim(part)
if part ~= "" then
table.insert(t, part)
@@ -1535,7 +1535,7 @@ function match_node_rule(name, rule)
-- split rule by &&
local function split_and(expr)
local t = {}
- for part in expr:gmatch("[^&]+") do
+ for part in (expr .. "&&"):gmatch("(.-)%&%&") do
part = trim(part)
if part ~= "" then
table.insert(t, part)
diff --git a/v2ray-geodata/Makefile b/v2ray-geodata/Makefile
index dbd69e43..9676595e 100644
--- a/v2ray-geodata/Makefile
+++ b/v2ray-geodata/Makefile
@@ -21,16 +21,16 @@ define Download/geoip
HASH:=b71d1999439dde2de2d2b6844a2befa50c50211ff739785c005ca7c230a17d6a
endef
-GEOSITE_VER:=20260712115932
+GEOSITE_VER:=20260713024410
GEOSITE_FILE:=dlc.dat.$(GEOSITE_VER)
define Download/geosite
URL:=https://github.com/v2fly/domain-list-community/releases/download/$(GEOSITE_VER)/
URL_FILE:=dlc.dat
FILE:=$(GEOSITE_FILE)
- HASH:=9c75264410e1cc0dc2de2ba66283f7724c38f2b7476eb8207f7e4cf69ecbb633
+ HASH:=8c74aac8e5076c1f0110e40a0bf4e2540ad890b553fff16bffde45754244645c
endef
-GEOSITE_IRAN_VER:=202607060129
+GEOSITE_IRAN_VER:=202607130116
GEOSITE_IRAN_FILE:=iran.dat.$(GEOSITE_IRAN_VER)
define Download/geosite-ir
URL:=https://github.com/bootmortis/iran-hosted-domains/releases/download/$(GEOSITE_IRAN_VER)/