43 lines
1.6 KiB
Bash
43 lines
1.6 KiB
Bash
get_save() { #获取面板信息并内部处理所有异常
|
||
local response exit_code
|
||
if curl --version >/dev/null 2>&1; then
|
||
response=$(curl -sf -H "Authorization: Bearer ${secret}" -H "Content-Type:application/json" "$1" 2>&1)
|
||
exit_code=$?
|
||
[ $exit_code -eq 0 ] && [ -n "$response" ] && [ "$response" != "{}" ] && {
|
||
echo "$response"
|
||
return 0
|
||
}
|
||
return 1
|
||
elif [ -n "$(wget --help 2>&1 | grep '\-\-method')" ]; then
|
||
response=$(wget -q --header="Authorization: Bearer ${secret}" --header="Content-Type:application/json" -O - "$1" 2>&1)
|
||
exit_code=$?
|
||
[ $exit_code -eq 0 ] && [ -n "$response" ] && [ "$response" != "{}" ] && {
|
||
echo "$response"
|
||
return 0
|
||
}
|
||
return 1
|
||
fi
|
||
return 1
|
||
}
|
||
|
||
web_save() { #最小化保存面板节点选择
|
||
#使用get_save获取面板节点设置,失败自动退出
|
||
response=$(get_save "http://127.0.0.1:${db_port}/proxies") || return 1
|
||
|
||
echo "$response" | sed 's/{}//g' | sed 's/:{/\
|
||
/g' | grep -aE '"Selector"' >"$TMPDIR"/web_proxies
|
||
|
||
>"$TMPDIR"/web_save
|
||
[ -s "$TMPDIR"/web_proxies ] && while read line; do
|
||
def=$(echo "$line" | grep -oE '"all".*",' | awk -F "[\"]" '{print $4}')
|
||
now=$(echo "$line" | grep -oE '"now".*",' | awk -F "[\"]" '{print $4}')
|
||
[ "$def" != "$now" ] && {
|
||
name=$(echo "$line" | grep -oE '"name".*",' | awk -F "[\"]" '{print $4}')
|
||
echo "${name},${now}" >>"$TMPDIR"/web_save
|
||
}
|
||
done <"$TMPDIR"/web_proxies
|
||
rm -f "$TMPDIR"/web_proxies
|
||
. "$CRASHDIR"/libs/compare.sh && compare "$TMPDIR"/web_save "$CRASHDIR"/configs/web_save
|
||
[ "$?" = 0 ] && rm -f "$TMPDIR"/web_save || mv -f "$TMPDIR"/web_save "$CRASHDIR"/configs/web_save
|
||
}
|