mirror of
https://github.com/caiwx86/small-packages.git
synced 2026-07-27 08:31:44 +08:00
update 2026-07-18 01:06:39
This commit is contained in:
parent
b66d07e284
commit
42c751aed4
@ -808,6 +808,9 @@ o:value("UseIPv6v4", translate("Prefer IPv6"))
|
||||
o:value("UseIPv4", translate("IPv4 Only"))
|
||||
o:value("UseIPv6", translate("IPv6 Only"))
|
||||
|
||||
o = s:option(Flag, _n("happy_eyeballs"), translate("Enable Happy Eyeballs"), translate("Attempts IPv4 and IPv6 simultaneously; automatically uses the faster connection."))
|
||||
o.default = 0
|
||||
|
||||
local protocols = s.fields[_n("protocol")].keylist
|
||||
if #protocols > 0 then
|
||||
for i, v in ipairs(protocols) do
|
||||
@ -819,7 +822,11 @@ if #protocols > 0 then
|
||||
s.fields[_n("address")]:depends(depends_condition)
|
||||
s.fields[_n("port")]:depends(depends_condition)
|
||||
s.fields[_n("domain_resolver")]:depends(depends_condition)
|
||||
s.fields[_n("domain_strategy")]:depends(depends_condition)
|
||||
s.fields[_n("happy_eyeballs")]:depends(depends_condition)
|
||||
|
||||
local strategy_depends = api.clone(depends_condition)
|
||||
strategy_depends[_n("happy_eyeballs")] = false
|
||||
s.fields[_n("domain_strategy")]:depends(strategy_depends)
|
||||
|
||||
if v ~= "hysteria2" then
|
||||
s.fields[_n("tcp_fast_open")]:depends({ [_n("protocol")] = v })
|
||||
|
||||
@ -146,7 +146,13 @@ function gen_outbound(flag, node, tag, proxy_table)
|
||||
mark = 255,
|
||||
domainStrategy = node.domain_strategy or "UseIP",
|
||||
tcpFastOpen = (node.tcp_fast_open == "1") and true or nil,
|
||||
tcpMptcp = (node.tcpMptcp == "1") and true or nil
|
||||
tcpMptcp = (node.tcpMptcp == "1") and true or nil,
|
||||
happyEyeballs = (node.happy_eyeballs == "1") and {
|
||||
TryDelayMs = 250,
|
||||
PrioritizeIPv6 = false,
|
||||
Interleave = 1,
|
||||
MaxConcurrentTry = 4
|
||||
} or nil
|
||||
},
|
||||
network = node.transport,
|
||||
security = node.stream_security,
|
||||
|
||||
@ -1922,6 +1922,12 @@ msgstr "如果节点地址是域名,则将使用此 DNS 进行解析。"
|
||||
msgid "Note: For node-specific DNS only. Keep Auto to avoid extra overhead."
|
||||
msgstr "注意:仅用于节点专用 DNS,通常请保持自动,以免增加开销。"
|
||||
|
||||
msgid "Enable Happy Eyeballs"
|
||||
msgstr "启用 Happy Eyeballs"
|
||||
|
||||
msgid "Attempts IPv4 and IPv6 simultaneously; automatically uses the faster connection."
|
||||
msgstr "同时尝试 IPv4 和 IPv6 连接,自动使用更快的连接。"
|
||||
|
||||
msgid "Supports only Xray or Sing-box node types."
|
||||
msgstr "仅支持 Xray 或 Sing-box 类型节点。"
|
||||
|
||||
|
||||
@ -1,31 +1,59 @@
|
||||
<style type="text/css">
|
||||
.ssr-advanced-switch-inline {
|
||||
display: flex;
|
||||
gap: 2%;
|
||||
align-items: flex-start;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
.ssr-advanced-switch-inline {
|
||||
display: flex !important;
|
||||
flex-direction: row !important;
|
||||
align-items: center !important;
|
||||
gap: 1rem !important;
|
||||
width: 50% !important;
|
||||
box-sizing: border-box !important;
|
||||
flex-wrap: nowrap !important;
|
||||
}
|
||||
|
||||
.ssr-advanced-switch-item {
|
||||
width: 30%;
|
||||
min-width: 0;
|
||||
}
|
||||
.ssr-advanced-switch-item {
|
||||
flex: 1 !important;
|
||||
min-width: 0 !important;
|
||||
display: flex !important;
|
||||
flex-direction: column !important;
|
||||
}
|
||||
|
||||
.ssr-advanced-switch-item input {
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.ssr-advanced-switch-subtitle {
|
||||
font-size: 12px;
|
||||
color: #666;
|
||||
margin-bottom: 4px;
|
||||
line-height: 1.2;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.ssr-advanced-switch-subtitle {
|
||||
font-size: 12px;
|
||||
color: #666;
|
||||
margin-bottom: 4px;
|
||||
line-height: 1.2;
|
||||
}
|
||||
.ssr-advanced-switch-hidden {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.ssr-advanced-switch-hidden {
|
||||
display: none !important;
|
||||
}
|
||||
.ssr-advanced-switch-item input[type="text"] {
|
||||
width: 100% !important;
|
||||
min-width: 0 !important;
|
||||
max-width: 100% !important;
|
||||
height: 2.1rem !important;
|
||||
padding: 0 0.35rem !important;
|
||||
box-sizing: border-box !important;
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
@media (max-width: 900px) {
|
||||
.ssr-advanced-switch-inline {
|
||||
width: 100% !important;
|
||||
gap: 0.7rem !important;
|
||||
flex-wrap: wrap !important;
|
||||
}
|
||||
|
||||
.ssr-advanced-switch-item {
|
||||
flex: 1 1 calc(33.33% - 0.5rem) !important;
|
||||
min-width: 80px !important;
|
||||
}
|
||||
|
||||
.ssr-advanced-switch-item input[type="text"] {
|
||||
height: 2.4rem !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
@ -157,10 +157,55 @@
|
||||
font-size: 0.96rem !important;
|
||||
}
|
||||
|
||||
.ssr-schedule-inline {
|
||||
display: flex !important;
|
||||
flex-direction: row !important;
|
||||
align-items: center !important;
|
||||
gap: 1rem !important;
|
||||
width: 49% !important;
|
||||
box-sizing: border-box !important;
|
||||
flex-wrap: nowrap !important;
|
||||
}
|
||||
|
||||
.ssr-schedule-item {
|
||||
flex: 1 !important;
|
||||
display: flex !important;
|
||||
flex-direction: column !important;
|
||||
min-width: 0 !important;
|
||||
}
|
||||
|
||||
.ssr-schedule-subtitle {
|
||||
text-align: center !important;
|
||||
margin-bottom: 0.35rem !important;
|
||||
line-height: 1.2 !important;
|
||||
}
|
||||
|
||||
select[name^="cbid.shadowsocksr."][name*="_time"] {
|
||||
width: 100% !important;
|
||||
min-width: 0 !important;
|
||||
max-width: 100% !important;
|
||||
height: 2.1rem !important;
|
||||
padding: 0 0.35rem !important;
|
||||
box-sizing: border-box !important;
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
@media (max-width: 900px) {
|
||||
#cbi-shadowsocksr-server_subscribe_item > .table {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
display: block !important;
|
||||
overflow-x: auto !important;
|
||||
white-space: nowrap !important;
|
||||
}
|
||||
|
||||
.ssr-schedule-inline {
|
||||
width: 100% !important;
|
||||
gap: 1rem !important;
|
||||
flex-wrap: wrap !important;
|
||||
}
|
||||
|
||||
.ssr-schedule-item select {
|
||||
width: 100% !important;
|
||||
min-width: 0 !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -531,27 +531,62 @@ end
|
||||
#cbi-shadowsocksr-server_subscribe_item .cbi-section-table td.cbi-section-actions {
|
||||
width: 100% !important;
|
||||
max-width: 100% !important;
|
||||
min-width: 0 !important;
|
||||
display: block !important;
|
||||
box-sizing: border-box !important;
|
||||
}
|
||||
|
||||
/* 重置操作列内可能存在的 div 包装层,强行让其拉满 100% */
|
||||
#cbi-shadowsocksr-server_subscribe_item .td.cbi-section-actions > div {
|
||||
display: flex !important;
|
||||
width: 100% !important;
|
||||
max-width: 100% !important;
|
||||
box-sizing: border-box !important;
|
||||
}
|
||||
|
||||
/* 按钮区域 */
|
||||
#cbi-shadowsocksr-server_subscribe_item .ssr-subscribe-actions {
|
||||
display: flex !important;
|
||||
gap: 8px;
|
||||
width: 100%;
|
||||
gap: 8px !important;
|
||||
width: 100% !important;
|
||||
max-width: 100% !important;
|
||||
box-sizing: border-box !important;
|
||||
}
|
||||
|
||||
/* 保存、删除、更新 三个按钮均分 */
|
||||
#cbi-shadowsocksr-server_subscribe_item .ssr-subscribe-actions .btn {
|
||||
flex: 1;
|
||||
#cbi-shadowsocksr-server_subscribe_item .ssr-subscribe-actions .btn,
|
||||
#cbi-shadowsocksr-server_subscribe_item .td.cbi-section-actions .btn {
|
||||
flex: 1 1 0% !important;
|
||||
width: 100% !important;
|
||||
margin: 0 !important;
|
||||
white-space: nowrap;
|
||||
white-space: nowrap !important;
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
/* 修复手机端卡片化布局中 placeholder 行的显示问题 */
|
||||
#cbi-shadowsocksr-server_subscribe_item .placeholder td {
|
||||
display: table-cell !important;
|
||||
}
|
||||
|
||||
#ssr-subscribe-modal {
|
||||
top: 8px;
|
||||
left: 8px;
|
||||
width: calc(100vw - 16px);
|
||||
max-height: calc(100vh - 24px);
|
||||
min-height: min(420px, calc(100vh - 24px));
|
||||
padding: 10px 12px 12px;
|
||||
transform: none;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
#ssr-subscribe-modal-header {
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
#ssr-subscribe-log {
|
||||
max-height: calc(100vh - 260px);
|
||||
min-height: 280px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -12,7 +12,7 @@ PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org>
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
GEOIP_VER:=202607050337
|
||||
GEOIP_VER:=202607171233
|
||||
GEOIP_FILE:=geoip.dat.$(GEOIP_VER)
|
||||
define Download/geoip
|
||||
URL:=https://github.com/v2fly/geoip/releases/download/$(GEOIP_VER)/
|
||||
|
||||
Loading…
Reference in New Issue
Block a user