Skip to content

Commit 2872d8a

Browse files
committed
fix(switch): 直接通过 Clash API 切换节点
- 移除切换前的 selector 预检查 - 节点切换改为直接调用控制接口,失败后再回退重启
1 parent 31487d6 commit 2872d8a

2 files changed

Lines changed: 3 additions & 16 deletions

File tree

src/module/scripts/core/switch.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,15 +58,15 @@ switch_config() {
5858
return 0
5959
fi
6060

61-
if [ -n "$target_tag" ] && api_selector_has_option "$target_tag"; then
61+
if [ -n "$target_tag" ]; then
6262
if api_select_proxy "$target_tag"; then
6363
log "INFO" "已通过控制接口切换到节点: $target_tag"
6464
log "INFO" "========== 节点配置切换完成 =========="
6565
return 0
6666
fi
67-
log "WARN" "控制接口切换节点失败,准备回退为重启服务"
67+
log "INFO" "当前运行实例未加载目标节点或控制接口切换失败,准备重启服务"
6868
else
69-
log "INFO" "目标节点未被当前运行实例加载,准备重启服务"
69+
log "INFO" "无法读取目标节点标签,准备重启服务"
7070
fi
7171

7272
restart_service_if_allowed || {

src/module/scripts/utils/api.sh

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -183,19 +183,6 @@ api_selector_options() {
183183
printf "%s" "$list" | sed 's/^"//; s/"$//; s/","/\n/g'
184184
}
185185

186-
#######################################
187-
# 判断代理组是否包含指定节点
188-
#######################################
189-
api_selector_has_option() {
190-
local tag="$1"
191-
local group="${2:-$(api_selector_group)}"
192-
local json options
193-
194-
json="$(api_get_proxies 2> /dev/null)" || return 1
195-
options="$(api_selector_options "$json" "$group")" || return 1
196-
printf "%s\n" "$options" | grep -Fx -- "$tag" > /dev/null 2>&1
197-
}
198-
199186
#######################################
200187
# 通过控制接口切换节点
201188
#######################################

0 commit comments

Comments
 (0)