mirror of
https://github.com/caiwx86/small-packages.git
synced 2026-11-02 21:33:56 +08:00
update 2026-08-16 04:15:50
This commit is contained in:
1 parent
26de68dd8d
commit
515e212ce3
14 files changed
+90
-49
No files matched your search
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+33
-24
@@ -11,6 +11,10 @@ if not s1.fields["type"].default then
|
|||||||
s1.fields["type"].default = type_name
|
s1.fields["type"].default = type_name
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if not s1.val["type"] then
|
||||||
|
s1.val["type"] = type_name
|
||||||
|
end
|
||||||
|
|
||||||
if s1.val["type"] and s1.val["type"] ~= type_name then
|
if s1.val["type"] and s1.val["type"] ~= type_name then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@@ -29,6 +33,27 @@ local header_type_list = {
|
|||||||
|
|
||||||
o = s:option(Flag, "custom", translate("Use Custom Config"))
|
o = s:option(Flag, "custom", translate("Use Custom Config"))
|
||||||
|
|
||||||
|
o = s:option(TextValue, "custom_config", translate("Custom Config") .. " (JSON)")
|
||||||
|
o.rows = 10
|
||||||
|
o.wrap = "off"
|
||||||
|
o:depends({ custom = true })
|
||||||
|
o.datatype = "json"
|
||||||
|
local o_validate = o.validate
|
||||||
|
o.validate = function(self, value)
|
||||||
|
local v = o_validate(self, value)
|
||||||
|
if v then return v end
|
||||||
|
return nil, translate("Custom Config") .. " " .. translate("Must be JSON text!")
|
||||||
|
end
|
||||||
|
o.custom_cfgvalue = function(self, section, value)
|
||||||
|
local config_str = m:get(section, "config_str")
|
||||||
|
if config_str then
|
||||||
|
return api.base64Decode(config_str)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
o.custom_write = function(self, section, value)
|
||||||
|
m:set(section, "config_str", api.base64Encode(value) or "")
|
||||||
|
end
|
||||||
|
|
||||||
o = s:option(ListValue, "protocol", translate("Protocol"))
|
o = s:option(ListValue, "protocol", translate("Protocol"))
|
||||||
o:value("vmess", "Vmess")
|
o:value("vmess", "Vmess")
|
||||||
o:value("vless", "VLESS")
|
o:value("vless", "VLESS")
|
||||||
@@ -41,6 +66,12 @@ o:value("wireguard", "WireGuard")
|
|||||||
o:value("dokodemo-door", "dokodemo-door")
|
o:value("dokodemo-door", "dokodemo-door")
|
||||||
o:depends({ custom = false })
|
o:depends({ custom = false })
|
||||||
|
|
||||||
|
o = s:option(DummyValue, "is_endpoint", "")
|
||||||
|
o.not_rewrite = true
|
||||||
|
o.template = m:template_path("/cbi/hidevalue")
|
||||||
|
o.value = "1"
|
||||||
|
o:depends({ custom = false, protocol = "wireguard" })
|
||||||
|
|
||||||
o = s:option(Value, "port", translate("Listen Port"))
|
o = s:option(Value, "port", translate("Listen Port"))
|
||||||
o.datatype = "port"
|
o.datatype = "port"
|
||||||
o:depends({ custom = false })
|
o:depends({ custom = false })
|
||||||
@@ -385,7 +416,7 @@ end
|
|||||||
--[[acceptProxyProtocol]]
|
--[[acceptProxyProtocol]]
|
||||||
o = s:option(Flag, "acceptProxyProtocol", translate("acceptProxyProtocol"), translate("Whether to receive PROXY protocol, when this node want to be fallback or forwarded by proxy, it must be enable, otherwise it cannot be used."))
|
o = s:option(Flag, "acceptProxyProtocol", translate("acceptProxyProtocol"), translate("Whether to receive PROXY protocol, when this node want to be fallback or forwarded by proxy, it must be enable, otherwise it cannot be used."))
|
||||||
o.default = "0"
|
o.default = "0"
|
||||||
o:depends({ custom = false })
|
o:depends({ custom = false, is_endpoint = "" })
|
||||||
|
|
||||||
--[[Fast Open]]
|
--[[Fast Open]]
|
||||||
o = s:option(Flag, "tcp_fast_open", "TCP " .. translate("Fast Open"))
|
o = s:option(Flag, "tcp_fast_open", "TCP " .. translate("Fast Open"))
|
||||||
@@ -444,8 +475,7 @@ o.datatype = "base64"
|
|||||||
o:depends({ protocol = "wireguard" })
|
o:depends({ protocol = "wireguard" })
|
||||||
|
|
||||||
o = s:option(DummyValue, "gen_wireguard_key")
|
o = s:option(DummyValue, "gen_wireguard_key")
|
||||||
o.prefix = option_prefix
|
o.template = m:template_path("/server/gen_wireguard_key")
|
||||||
o.template = m:template_path("/server/server_wireguard")
|
|
||||||
o:depends({ protocol = "wireguard" })
|
o:depends({ protocol = "wireguard" })
|
||||||
|
|
||||||
o = s:option(Flag, "bind_local", translate("Bind Local"), translate("When selected, it can only be accessed localhost."))
|
o = s:option(Flag, "bind_local", translate("Bind Local"), translate("When selected, it can only be accessed localhost."))
|
||||||
@@ -505,27 +535,6 @@ for _, d in ipairs(netdev_list) do
|
|||||||
o:value(d.name, d.label)
|
o:value(d.name, d.label)
|
||||||
end
|
end
|
||||||
|
|
||||||
o = s:option(TextValue, "custom_config", translate("Custom Config") .. " (JSON)")
|
|
||||||
o.rows = 10
|
|
||||||
o.wrap = "off"
|
|
||||||
o:depends({ custom = true })
|
|
||||||
o.datatype = "json"
|
|
||||||
local o_validate = o.validate
|
|
||||||
o.validate = function(self, value)
|
|
||||||
local v = o_validate(self, value)
|
|
||||||
if v then return v end
|
|
||||||
return nil, translate("Custom Config") .. " " .. translate("Must be JSON text!")
|
|
||||||
end
|
|
||||||
o.custom_cfgvalue = function(self, section, value)
|
|
||||||
local config_str = m:get(section, "config_str")
|
|
||||||
if config_str then
|
|
||||||
return api.base64Decode(config_str)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
o.custom_write = function(self, section, value)
|
|
||||||
m:set(section, "config_str", api.base64Encode(value) or "")
|
|
||||||
end
|
|
||||||
|
|
||||||
o = s:option(Flag, "log", translate("Log"))
|
o = s:option(Flag, "log", translate("Log"))
|
||||||
o.default = "1"
|
o.default = "1"
|
||||||
o.rmempty = false
|
o.rmempty = false
|
||||||
+33
-24
@@ -13,6 +13,10 @@ if not s1.fields["type"].default then
|
|||||||
s1.fields["type"].default = type_name
|
s1.fields["type"].default = type_name
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if not s1.val["type"] then
|
||||||
|
s1.val["type"] = type_name
|
||||||
|
end
|
||||||
|
|
||||||
if s1.val["type"] and s1.val["type"] ~= type_name then
|
if s1.val["type"] and s1.val["type"] ~= type_name then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@@ -30,6 +34,27 @@ local ss_method_list = {
|
|||||||
|
|
||||||
o = s:option(Flag, "custom", translate("Use Custom Config"))
|
o = s:option(Flag, "custom", translate("Use Custom Config"))
|
||||||
|
|
||||||
|
o = s:option(TextValue, "custom_config", translate("Custom Config") .. " (JSON)")
|
||||||
|
o.rows = 10
|
||||||
|
o.wrap = "off"
|
||||||
|
o:depends({ custom = true })
|
||||||
|
o.datatype = "json"
|
||||||
|
local o_validate = o.validate
|
||||||
|
o.validate = function(self, value)
|
||||||
|
local v = o_validate(self, value)
|
||||||
|
if v then return v end
|
||||||
|
return nil, translate("Custom Config") .. " " .. translate("Must be JSON text!")
|
||||||
|
end
|
||||||
|
o.custom_cfgvalue = function(self, section, value)
|
||||||
|
local config_str = m:get(section, "config_str")
|
||||||
|
if config_str then
|
||||||
|
return api.base64Decode(config_str)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
o.custom_write = function(self, section, value)
|
||||||
|
m:set(section, "config_str", api.base64Encode(value) or "")
|
||||||
|
end
|
||||||
|
|
||||||
o = s:option(ListValue, "protocol", translate("Protocol"))
|
o = s:option(ListValue, "protocol", translate("Protocol"))
|
||||||
o:value("mixed", "Mixed")
|
o:value("mixed", "Mixed")
|
||||||
o:value("socks", "Socks")
|
o:value("socks", "Socks")
|
||||||
@@ -55,6 +80,12 @@ end
|
|||||||
o:value("direct", "Direct")
|
o:value("direct", "Direct")
|
||||||
o:depends({ custom = false })
|
o:depends({ custom = false })
|
||||||
|
|
||||||
|
o = s:option(DummyValue, "is_endpoint", "")
|
||||||
|
o.not_rewrite = true
|
||||||
|
o.template = m:template_path("/cbi/hidevalue")
|
||||||
|
o.value = "1"
|
||||||
|
o:depends({ custom = false, protocol = "wireguard" })
|
||||||
|
|
||||||
o = s:option(Value, "port", translate("Listen Port"))
|
o = s:option(Value, "port", translate("Listen Port"))
|
||||||
o.datatype = "port"
|
o.datatype = "port"
|
||||||
o:depends({ custom = false })
|
o:depends({ custom = false })
|
||||||
@@ -420,14 +451,13 @@ if singbox_tags:find("with_wireguard") then
|
|||||||
o:depends({ protocol = "wireguard" })
|
o:depends({ protocol = "wireguard" })
|
||||||
|
|
||||||
o = s:option(DummyValue, "gen_wireguard_key")
|
o = s:option(DummyValue, "gen_wireguard_key")
|
||||||
o.prefix = option_prefix
|
o.template = m:template_path("/server/gen_wireguard_key")
|
||||||
o.template = m:template_path("/server/server_wireguard")
|
|
||||||
o:depends({ protocol = "wireguard" })
|
o:depends({ protocol = "wireguard" })
|
||||||
end
|
end
|
||||||
|
|
||||||
o = s:option(Flag, "bind_local", translate("Bind Local"), translate("When selected, it can only be accessed localhost."))
|
o = s:option(Flag, "bind_local", translate("Bind Local"), translate("When selected, it can only be accessed localhost."))
|
||||||
o.default = "0"
|
o.default = "0"
|
||||||
o:depends({ custom = false })
|
o:depends({ custom = false, is_endpoint = "" })
|
||||||
|
|
||||||
o = s:option(Flag, "accept_lan", translate("Accept LAN Access"), translate("When selected, it can accessed lan , this will not be safe!"))
|
o = s:option(Flag, "accept_lan", translate("Accept LAN Access"), translate("When selected, it can accessed lan , this will not be safe!"))
|
||||||
o.default = "0"
|
o.default = "0"
|
||||||
@@ -482,27 +512,6 @@ for _, d in ipairs(netdev_list) do
|
|||||||
o:value(d.name, d.label)
|
o:value(d.name, d.label)
|
||||||
end
|
end
|
||||||
|
|
||||||
o = s:option(TextValue, "custom_config", translate("Custom Config") .. " (JSON)")
|
|
||||||
o.rows = 10
|
|
||||||
o.wrap = "off"
|
|
||||||
o:depends({ custom = true })
|
|
||||||
o.datatype = "json"
|
|
||||||
local o_validate = o.validate
|
|
||||||
o.validate = function(self, value)
|
|
||||||
local v = o_validate(self, value)
|
|
||||||
if v then return v end
|
|
||||||
return nil, translate("Custom Config") .. " " .. translate("Must be JSON text!")
|
|
||||||
end
|
|
||||||
o.custom_cfgvalue = function(self, section, value)
|
|
||||||
local config_str = m:get(section, "config_str")
|
|
||||||
if config_str then
|
|
||||||
return api.base64Decode(config_str)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
o.custom_write = function(self, section, value)
|
|
||||||
m:set(section, "config_str", api.base64Encode(value) or "")
|
|
||||||
end
|
|
||||||
|
|
||||||
o = s:option(Flag, "log", translate("Log"))
|
o = s:option(Flag, "log", translate("Log"))
|
||||||
o.default = "1"
|
o.default = "1"
|
||||||
o.rmempty = false
|
o.rmempty = false
|
||||||
+4
@@ -8,6 +8,10 @@ local type_name = "Hysteria2"
|
|||||||
|
|
||||||
s1.fields["type"]:value(type_name, "Hysteria2")
|
s1.fields["type"]:value(type_name, "Hysteria2")
|
||||||
|
|
||||||
|
if not s1.val["type"] then
|
||||||
|
s1.val["type"] = type_name
|
||||||
|
end
|
||||||
|
|
||||||
if s1.val["type"] and s1.val["type"] ~= type_name then
|
if s1.val["type"] and s1.val["type"] ~= type_name then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
+4
@@ -8,6 +8,10 @@ local type_name = "SS-Rust"
|
|||||||
|
|
||||||
s1.fields["type"]:value(type_name, translate("Shadowsocks Rust"))
|
s1.fields["type"]:value(type_name, translate("Shadowsocks Rust"))
|
||||||
|
|
||||||
|
if not s1.val["type"] then
|
||||||
|
s1.val["type"] = type_name
|
||||||
|
end
|
||||||
|
|
||||||
if s1.val["type"] and s1.val["type"] ~= type_name then
|
if s1.val["type"] and s1.val["type"] ~= type_name then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
+4
@@ -8,6 +8,10 @@ local type_name = "SSR"
|
|||||||
|
|
||||||
s1.fields["type"]:value(type_name, translate("ShadowsocksR"))
|
s1.fields["type"]:value(type_name, translate("ShadowsocksR"))
|
||||||
|
|
||||||
|
if not s1.val["type"] then
|
||||||
|
s1.val["type"] = type_name
|
||||||
|
end
|
||||||
|
|
||||||
if s1.val["type"] and s1.val["type"] ~= type_name then
|
if s1.val["type"] and s1.val["type"] ~= type_name then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@@ -1554,6 +1554,7 @@ function luci_types(s, s2)
|
|||||||
for i, v in ipairs(s2.children) do
|
for i, v in ipairs(s2.children) do
|
||||||
local o = s2.children[i]
|
local o = s2.children[i]
|
||||||
o.config_option = o.option
|
o.config_option = o.option
|
||||||
|
o.option_prefix = option_prefix
|
||||||
o.option = option_prefix .. o.option
|
o.option = option_prefix .. o.option
|
||||||
if not o.not_rewrite then
|
if not o.not_rewrite then
|
||||||
o.cfgvalue = function(self, section)
|
o.cfgvalue = function(self, section)
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
<%
|
<%
|
||||||
local map = self.map
|
local map = self.map
|
||||||
local api = map.api
|
local api = map.api
|
||||||
local prefix = self.prefix
|
local prefix = self.option_prefix or ""
|
||||||
-%>
|
-%>
|
||||||
<div class="cbi-value" id="cbi-<%=self.config.."-"..section.."-"..self.option%>" data-index="<%=self.index%>" data-depends="<%=pcdata(self:deplist2json(section))%>">
|
<div class="cbi-value" id="cbi-<%=self.config.."-"..section.."-"..self.option%>" data-index="<%=self.index%>" data-depends="<%=pcdata(self:deplist2json(section))%>">
|
||||||
<label class="cbi-value-title"><%:Generate key%></label>
|
<label class="cbi-value-title"><%:Generate key%></label>
|
||||||
@@ -535,6 +535,7 @@ local function parseClashNode(node, add_mode, group, sub_cfg)
|
|||||||
result = set_ss_implementation(sub_ss_type, result)
|
result = set_ss_implementation(sub_ss_type, result)
|
||||||
if not result then return nil end
|
if not result then return nil end
|
||||||
result.method = node.cipher
|
result.method = node.cipher
|
||||||
|
result.ss_method = node.cipher
|
||||||
result.password = node.password
|
result.password = node.password
|
||||||
if node.plugin == "obfs" then
|
if node.plugin == "obfs" then
|
||||||
result.plugin = "obfs-local"
|
result.plugin = "obfs-local"
|
||||||
@@ -1114,6 +1115,7 @@ local function processData(szType, content, add_mode, group, sub_cfg)
|
|||||||
(_method == "xchacha20-poly1305" and "xchacha20-ietf-poly1305") or _method
|
(_method == "xchacha20-poly1305" and "xchacha20-ietf-poly1305") or _method
|
||||||
|
|
||||||
result.method = method
|
result.method = method
|
||||||
|
result.ss_method = method
|
||||||
result.password = password
|
result.password = password
|
||||||
result.tcp_fast_open = params.tfo
|
result.tcp_fast_open = params.tfo
|
||||||
result.use_finalmask = (params.fm and params.fm ~= "") and "1" or nil
|
result.use_finalmask = (params.fm and params.fm ~= "") and "1" or nil
|
||||||
@@ -1482,6 +1484,7 @@ local function processData(szType, content, add_mode, group, sub_cfg)
|
|||||||
result.port = content.port
|
result.port = content.port
|
||||||
result.password = content.password
|
result.password = content.password
|
||||||
result.method = content.encryption
|
result.method = content.encryption
|
||||||
|
result.ss_method = content.encryption
|
||||||
result.plugin = content.plugin
|
result.plugin = content.plugin
|
||||||
result.plugin_opts = content.plugin_options
|
result.plugin_opts = content.plugin_options
|
||||||
result.group = content.airport
|
result.group = content.airport
|
||||||
@@ -1770,6 +1773,13 @@ local function processData(szType, content, add_mode, group, sub_cfg)
|
|||||||
result.finalmask = (params.fm and params.fm ~= "") and api.base64Encode(params.fm) or nil
|
result.finalmask = (params.fm and params.fm ~= "") and api.base64Encode(params.fm) or nil
|
||||||
elseif has_hysteria2 then
|
elseif has_hysteria2 then
|
||||||
result.type = "Hysteria2"
|
result.type = "Hysteria2"
|
||||||
|
for k1, v1 in pairs(result) do
|
||||||
|
if k1:find("hysteria2_") == 1 then
|
||||||
|
local s = split(k1, "hysteria2_")
|
||||||
|
result[s[2]] = v1
|
||||||
|
result[k1] = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
else
|
else
|
||||||
log(2, i18n.translatef("Skipping the %s node is due to incompatibility with the %s core program or incorrect node usage type settings.", "Hysteria2", "Hysteria2"))
|
log(2, i18n.translatef("Skipping the %s node is due to incompatibility with the %s core program or incorrect node usage type settings.", "Hysteria2", "Hysteria2"))
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
Reference in new issue
Block a user