Compare commits

...

3 Commits

Author SHA1 Message Date
action
15def9aa03 update 2026-07-23 21:44:19 2026-07-23 21:44:19 +08:00
action
6035fee545 update 2026-07-23 18:15:05 2026-07-23 18:15:05 +08:00
action
f7b785a2e2 update 2026-07-23 14:26:08 2026-07-23 14:26:08 +08:00
6 changed files with 53 additions and 26 deletions

View File

@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=dae
PKG_VERSION:=2026.07.22
PKG_VERSION:=2026.07.23
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=aba844dae7643fbc27a14e69ec2d9ffe5980817c
PKG_SOURCE_VERSION:=c09d1535f6a1bb584bf3ab953948fb2f2691dd4b
PKG_SOURCE_URL:=https://github.com/olicesx/dae.git
PKG_MIRROR_HASH:=skip

View File

@ -112,10 +112,12 @@ o.rewrite_option = o.option
o = s:option(Value, _n("recv_window_conn"), translate("QUIC connection receive window"))
o.rewrite_option = o.option
o = s:option(Value, _n("idle_timeout"), translate("Idle Timeout"), translate("Example:") .. "30s (4s~120s)")
o = s:option(Value, _n("idle_timeout"), translate("Idle Timeout"), translate("Units:seconds") .. " (4~120)")
o.datatype = "range(4,120)"
o.rewrite_option = o.option
o = s:option(Value, _n("keep_alive_period"), translate("QUIC KeepAlive interval"), translate("Example:") .. "10s (2s~60s)")
o = s:option(Value, _n("keep_alive_period"), translate("QUIC KeepAlive interval"), translate("Units:seconds") .. " (2~60)")
o.datatype = "range(2,60)"
o.rewrite_option = o.option
o = s:option(Flag, _n("disable_mtu_discovery"), translate("Disable MTU detection"))

View File

@ -395,10 +395,12 @@ o:depends({ [_n("protocol")] = "hysteria2" })
o = s:option(Value, _n("hysteria2_down_mbps"), translate("Max download Mbps"))
o:depends({ [_n("protocol")] = "hysteria2" })
o = s:option(Value, _n("hysteria2_idle_timeout"), translate("Idle Timeout"), translate("Example:") .. "30s (4s~120s)")
o = s:option(Value, _n("hysteria2_idle_timeout"), translate("Idle Timeout"), translate("Units:seconds") .. " (4~120)")
o.datatype = "range(4,120)"
o:depends({ [_n("protocol")] = "hysteria2"})
o = s:option(Value, _n("hysteria2_keep_alive_period"), translate("QUIC KeepAlive interval"), translate("Example:") .. "10s (2s~60s)")
o = s:option(Value, _n("hysteria2_keep_alive_period"), translate("QUIC KeepAlive interval"), translate("Units:seconds") .. " (2~60)")
o.datatype = "range(2,60)"
o:depends({ [_n("protocol")] = "hysteria2"})
o = s:option(Flag, _n("hysteria2_disable_mtu_discovery"), translate("Disable MTU detection"))

View File

@ -419,10 +419,12 @@ if singbox_tags:find("with_quic") then
o = s:option(Value, _n("hysteria2_down_mbps"), translate("Max download Mbps"))
o:depends({ [_n("protocol")] = "hysteria2" })
o = s:option(Value, _n("hysteria2_idle_timeout"), translate("Idle Timeout"), translate("Example:") .. "30s (4s~120s)")
o = s:option(Value, _n("hysteria2_idle_timeout"), translate("Idle Timeout"), translate("Units:seconds") .. " (4~120)")
o.datatype = "range(4,120)"
o:depends({ [_n("protocol")] = "hysteria2"})
o = s:option(Value, _n("hysteria2_keep_alive_period"), translate("QUIC KeepAlive interval"), translate("Example:") .. "10s (2s~60s)")
o = s:option(Value, _n("hysteria2_keep_alive_period"), translate("QUIC KeepAlive interval"), translate("Units:seconds") .. " (2~60)")
o.datatype = "range(2,60)"
o:depends({ [_n("protocol")] = "hysteria2"})
o = s:option(Flag, _n("hysteria2_disable_mtu_discovery"), translate("Disable MTU detection"))

View File

@ -244,7 +244,7 @@ local function encode_vless(node)
link = link .. "?" .. table.concat(p, "&")
end
return link .. "#" .. urlencode(o.name or "")
return 0, link .. "#" .. urlencode(o.name or "")
end
-- Trojan
@ -273,7 +273,7 @@ local function encode_trojan(node)
link = link .. "?" .. table.concat(p, "&")
end
return link .. "#" .. urlencode(o.name or "")
return 0, link .. "#" .. urlencode(o.name or "")
end
-- VMess
@ -307,11 +307,19 @@ local function encode_vmess(node)
obj.path = o.transport.serviceName or ""
end
return "vmess://" .. base64(json.stringify(obj))
return 0, "vmess://" .. base64(json.stringify(obj))
end
-- SS
local function encode_ss(node)
local ss_method = {
["none"]=1, ["aes-128-gcm"]=1, ["aes-192-gcm"]=1, ["aes-256-gcm"]=1, ["chacha20-ietf-poly1305"]=1, ["xchacha20-ietf-poly1305"]=1, ["2022-blake3-aes-128-gcm"]=1, ["2022-blake3-aes-256-gcm"]=1, ["2022-blake3-chacha20-poly1305"]=1,
["aes-128-ctr"]=1, ["aes-192-ctr"]=1, ["aes-256-ctr"]=1, ["aes-128-cfb"]=1, ["aes-192-cfb"]=1, ["aes-256-cfb"]=1, ["rc4-md5"]=1, ["chacha20-ietf"]=1, ["xchacha20"]=1,
}
if not ss_method[node.cipher or ""] then
return 1, "订阅转换 → 丢弃 SS 节点:" .. (node.name or "") .. ",因 Core 不支持 " .. (node.cipher or "") .. " 加密方式"
end
local userinfo = node.cipher .. ":" .. node.password
local base = userinfo .. "@" .. host_format(node.server) .. ":" .. node.port
local link = "ss://" .. base64(base)
@ -326,7 +334,7 @@ local function encode_ss(node)
if plugin == "shadow-tls" then
local shadow_tls = base64(json.stringify(node["plugin-opts"] or {}))
table.insert(p, "shadow-tls=" .. urlencode(shadow_tls))
else
elseif plugin == "obfs-local" or plugin == "v2ray-plugin" then
local opts = {}
for k, v in pairs(node["plugin-opts"] or {}) do
if plugin == "obfs-local" then
@ -341,10 +349,6 @@ local function encode_ss(node)
end
v = nil
end
elseif plugin == "gost-plugin" then
if k == "mode" and v == "websocket" then v = "ws" end
if k == "host" then k = "serverName" end
if k == "headers" then v = nil end
end
if v ~= nil then
if type(v) == "boolean" then
@ -355,6 +359,8 @@ local function encode_ss(node)
end
if #opts > 0 then plugin = plugin .. ";" .. table.concat(opts, ";") end
table.insert(p, "plugin=" .. urlencode(plugin))
else
return 1, "订阅转换 → 丢弃 SS 节点:" .. (node.name or "") .. ",因 Core 不支持 " .. plugin .. " 插件"
end
end
@ -362,7 +368,7 @@ local function encode_ss(node)
link = link .. "?" .. table.concat(p, "&")
end
return link .. "#" .. urlencode(node.name or "")
return 0, link .. "#" .. urlencode(node.name or "")
end
-- Hysteria
@ -387,7 +393,7 @@ local function encode_hysteria2(node)
link = link .. "?" .. table.concat(p, "&")
end
return link .. "#" .. urlencode(node.name or "")
return 0, link .. "#" .. urlencode(node.name or "")
end
-- Hysteria2
@ -411,7 +417,7 @@ local function encode_hysteria2(node)
link = link .. "?" .. table.concat(p, "&")
end
return link .. "#" .. urlencode(node.name or "")
return 0, link .. "#" .. urlencode(node.name or "")
end
-- TUIC
@ -436,11 +442,24 @@ local function encode_tuic(node)
link = link .. "?" .. table.concat(p, "&")
end
return link .. "#" .. urlencode(node.name or "")
return 0, link .. "#" .. urlencode(node.name or "")
end
-- AnyTLS
local function encode_anytls(node)
local err_msg
if node["shadow-tls-opts"] then
err_msg = "ShadowTLS"
elseif node["restls-opts"] then
err_msg = "ResTLS"
elseif node["jls-opts"] then
err_msg = "JLS"
end
if err_msg then
err_msg = "订阅转换 → 丢弃 AnyTLS 节点:" .. (node.name or "") .. ",因 Sing-Box 不支持 AnyTLS + " .. err_msg
return 1, err_msg
end
local o = build_common(node)
local link = "anytls://" .. (node.password or "") .. "@" .. host_format(node.server) .. ":" .. node.port
@ -465,7 +484,7 @@ local function encode_anytls(node)
link = link .. "?" .. table.concat(p, "&")
end
return link .. "#" .. urlencode(node.name or "")
return 0, link .. "#" .. urlencode(node.name or "")
end
-- SSR
@ -482,7 +501,7 @@ local function encode_ssr(node)
link = link .. "?" .. table.concat(p, "&")
end
return "ssr://" .. base64(link)
return 0, "ssr://" .. base64(link)
end
local function encode_node(node)
@ -516,8 +535,10 @@ function parseClashNode(raw, remark)
local links = {}
for _, node in ipairs(data.proxies) do
local link = encode_node(node)
if link then
local err, link = encode_node(node)
if err == 1 and link then
api.log(link)
elseif link then
table.insert(links, link)
end
end

View File

@ -1,12 +1,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=rblibtorrent
PKG_VERSION:=2.0.13
PKG_VERSION:=2.1.0
PKG_RELEASE:=1
PKG_SOURCE:=libtorrent-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/arvidn/libtorrent/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=86207fbe502153568bb4b11d11bb881d6c1388962e852ee0caacf1c07adeb161
PKG_HASH:=5d5b264eb960fafe4a5c935f6c71bc00e02d3dab8872e76dee9dadb27282f912
PKG_BUILD_DIR:=$(BUILD_DIR)/libtorrent-$(PKG_VERSION)
PKG_LICENSE:=BSD