File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -294,18 +294,32 @@ proxy_group_is_selector() {
294294}
295295
296296proxy_group_is_manual_selector () {
297- local type
297+ proxy_group_supports_manual_pick " $1 "
298+ }
298299
299- type=" $( proxy_group_type " $1 " ) "
300+ proxy_group_is_auto_managed () {
301+ local group=" $1 "
302+ local type normalized_type
300303
301- case " $type " in
302- Selector)
304+ [ -n " ${group:- } " ] || return 0
305+ proxy_group_exists " $group " || return 0
306+
307+ type=" $( proxy_group_type " $group " 2> /dev/null || true) "
308+ normalized_type=" $( printf ' %s' " ${type:- } " | tr ' [:upper:]' ' [:lower:]' ) "
309+
310+ case " $normalized_type " in
311+ urltest|url-test|fallback|loadbalance|load-balance)
303312 return 0
304313 ;;
305- * )
306- return 1
314+ esac
315+
316+ case " $group " in
317+ 自动选择|故障转移)
318+ return 0
307319 ;;
308320 esac
321+
322+ return 1
309323}
310324
311325proxy_group_list () {
@@ -378,10 +392,18 @@ proxy_group_selectable_nodes() {
378392proxy_group_supports_manual_pick () {
379393 local group=" $1 "
380394 local node
395+ local has_now=" "
381396
382397 [ -n " ${group:- } " ] || return 1
383398 proxy_group_exists " $group " || return 1
384- proxy_group_is_manual_selector " $group " || return 1
399+ proxy_group_is_auto_managed " $group " && return 1
400+
401+ has_now=" $(
402+ proxy_groups_json \
403+ | " $( yq_bin) " -p=json eval " .proxies.\" $group \" .now != null" - 2> /dev/null \
404+ | head -n 1
405+ ) "
406+ [ " ${has_now:- false} " = " true" ] || return 1
385407
386408 while IFS= read -r node; do
387409 [ -n " ${node:- } " ] || continue
You can’t perform that action at this time.
0 commit comments