Skip to content

Commit 9a65347

Browse files
authored
Merge pull request #220 from wnlen/dev #214
Dev
2 parents 72c2c03 + 5d24e60 commit 9a65347

1 file changed

Lines changed: 29 additions & 7 deletions

File tree

scripts/core/proxy.sh

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -294,18 +294,32 @@ proxy_group_is_selector() {
294294
}
295295

296296
proxy_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

311325
proxy_group_list() {
@@ -378,10 +392,18 @@ proxy_group_selectable_nodes() {
378392
proxy_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

0 commit comments

Comments
 (0)