mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-10-31 20:55:13 +08:00
🤞 Sync 2026-07-14 23:59:34
This commit is contained in:
1 parent
40d4011279
commit
1431f4da57
14 files changed
+254
-95
No files matched your search
@@ -1598,6 +1598,56 @@ function match_node_rule(name, rule)
|
||||
return false
|
||||
end
|
||||
|
||||
local normal_nodes = {}
|
||||
function get_batch_nodes(node)
|
||||
if #normal_nodes == 0 then
|
||||
for k, e in ipairs(get_valid_nodes()) do
|
||||
if e.node_type == "normal" and (not e.chain_proxy or e.chain_proxy == "") then
|
||||
normal_nodes[#normal_nodes + 1] = {
|
||||
id = e[".name"],
|
||||
remarks = e["remarks"],
|
||||
group = e["group"]
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
if not node.node_group or node.node_group == "" then return {} end
|
||||
local nodes = {}
|
||||
for g in node.node_group:gmatch("%S+") do
|
||||
g = UrlDecode(g)
|
||||
for k, v in pairs(normal_nodes) do
|
||||
local gn = (v.group and v.group ~= "") and v.group or "default"
|
||||
if gn:lower() == g:lower() and match_node_rule(v.remarks, node.node_match_rule) then
|
||||
nodes[#nodes + 1] = v.id
|
||||
end
|
||||
end
|
||||
end
|
||||
return nodes
|
||||
end
|
||||
|
||||
function get_socks_backup_nodes(id)
|
||||
id = trim(id)
|
||||
if id == "" then return "" end
|
||||
local socks = uci:get_all(appname, id)
|
||||
local nodes
|
||||
if socks.backup_node_add_mode and socks.backup_node_add_mode == "batch" then
|
||||
local node = {}
|
||||
node.node_group = socks.backup_node_group
|
||||
node.node_match_rule = socks.backup_node_match_rule
|
||||
nodes = get_batch_nodes(node)
|
||||
else
|
||||
nodes = socks.autoswitch_backup_node
|
||||
end
|
||||
local backup_nodes, seen = {}, {}
|
||||
for _, v in ipairs(nodes or {}) do
|
||||
if v ~= socks.node and not seen[v] then
|
||||
seen[v] = true
|
||||
table.insert(backup_nodes, v)
|
||||
end
|
||||
end
|
||||
return table.concat(backup_nodes, " ")
|
||||
end
|
||||
|
||||
function get_core(field, candidates)
|
||||
local v = uci:get(appname, "@global_subscribe[0]", field)
|
||||
if v and v ~= "" then
|
||||
|
||||
Reference in new issue
Block a user