diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/groups-config.lua b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/groups-config.lua index 416950b571..c59ea55704 100644 --- a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/groups-config.lua +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/groups-config.lua @@ -62,7 +62,8 @@ o = s:option(Value, "name", translate("Group Name")) o.rmempty = false o = s:option(Value, "test_url", translate("Test URL")) -o.default = "http://www.gstatic.com/generate_204" +o:value("http://www.gstatic.com/generate_204") +o:value("https://cp.cloudflare.com/generate_204") o.rmempty = false o:depends("type", "url-test") o:depends("type", "fallback") diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/proxy-provider-config.lua b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/proxy-provider-config.lua index 99d4f252dd..a51d0486c6 100644 --- a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/proxy-provider-config.lua +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/proxy-provider-config.lua @@ -89,7 +89,8 @@ o:value("true", translate("Enable")) o.default=true o = s:option(Value, "health_check_url", translate("Health Check URL")) -o.default = "http://www.gstatic.com/generate_204" +o:value("http://www.gstatic.com/generate_204") +o:value("https://cp.cloudflare.com/generate_204") o.rmempty = false o = s:option(Value, "health_check_interval", translate("Health Check Interval(s)")) diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/yml_groups_name_get.sh b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/yml_groups_name_get.sh index 0587b821ca..a3701922ee 100755 --- a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/yml_groups_name_get.sh +++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/yml_groups_name_get.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh . /lib/functions.sh CFG_FILE=$(uci get openclash.config.config_path 2>/dev/null) @@ -11,8 +11,7 @@ get_nextlen() return fi - for i in $@ - do + for i in $@; do if [ -z "$group_len" ]; then break fi diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/yml_proxys_get.sh b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/yml_proxys_get.sh index 40f32e2488..77fa6832bd 100755 --- a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/yml_proxys_get.sh +++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/yml_proxys_get.sh @@ -235,7 +235,7 @@ do echo "正在读取【$CONFIG_NAME】-【$provider_name】代理集配置..." >$START_LOG #代理集存在时获取代理集编号 - provider_nums=$(grep -Fw "$provider_name" "$match_provider" |awk -F '.' '{print $1}') + provider_nums=$(grep -Fw "$provider_name" "$match_provider" 2>/dev/null|awk -F '.' '{print $1}') if [ "$servers_update" -eq 1 ] && [ ! -z "$provider_nums" ]; then sed -i "/^${provider_nums}\./c\#match#" "$match_provider" 2>/dev/null uci_set="uci -q set openclash.@proxy-provider["$provider_nums"]." @@ -321,7 +321,7 @@ done if [ "$servers_if_update" = "1" ]; then echo "删除【$CONFIG_NAME】订阅中已不存在的代理集..." >$START_LOG sed -i '/#match#/d' "$match_provider" 2>/dev/null - cat $match_provider |awk -F '.' '{print $1}' |sort -rn |while read line + cat $match_provider 2>/dev/null|awk -F '.' '{print $1}' |sort -rn |while read line do if [ -z "$line" ]; then continue @@ -504,7 +504,7 @@ do fi #节点存在时获取节点编号 - server_num=$(grep -Fw "$server_name" "$match_servers" |awk -F '.' '{print $1}') + server_num=$(grep -Fw "$server_name" "$match_servers" 2>/dev/null|awk -F '.' '{print $1}') if [ "$servers_update" -eq 1 ] && [ ! -z "$server_num" ]; then sed -i "/^${server_num}\./c\#match#" "$match_servers" 2>/dev/null fi diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/yml_proxys_set.sh b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/yml_proxys_set.sh index d8cf7d7697..173fd3ad97 100755 --- a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/yml_proxys_set.sh +++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/yml_proxys_set.sh @@ -18,7 +18,7 @@ UCI_ADD_LIST="uci add_list openclash.config.new_servers_group" UCI_SET="uci set openclash.config." MIX_PROXY=$(uci get openclash.config.mix_proxies 2>/dev/null) servers_name="/tmp/servers_name.list" -proxy_provider_name="/tmp/match_servers_name.list" +proxy_provider_name="/tmp/provider_name.list" if [ ! -z "$UPDATE_CONFIG_FILE" ]; then CONFIG_FILE="$UPDATE_CONFIG_FILE" @@ -50,25 +50,6 @@ yml_proxy_provider_set() config_get "health_check_url" "$section" "health_check_url" "" config_get "health_check_interval" "$section" "health_check_interval" "" - if [ ! -z "$if_game_proxy" ] && [ "$if_game_proxy" != "$name" ] && [ "$if_game_proxy_type" = "proxy-provider" ]; then - return - fi - - if [ "$MIX_PROXY" != "1" ] && [ ! -z "$config" ] && [ "$config" != "$CONFIG_NAME" ] && [ "$config" != "all" ]; then - return - fi - - if [ "$config" = "$CONFIG_NAME" ] || [ "$config" = "all" ]; then - if [ -n "$(grep -w "path: $path" "$PROXY_PROVIDER_FILE" 2>/dev/null)" ]; then - return - elif [ "$(grep -Fw "$name" "$proxy_provider_name" |wc -l 2>/dev/null)" -ge 2 ] && [ -z "$(grep -w "path: $path" "$PROXY_PROVIDER_FILE" 2>/dev/null)" ]; then - sed -i "1,/${name}/{//d}" "$proxy_provider_name" 2>/dev/null - return - elif [ "$(grep -Fw "$name" "$proxy_provider_name" |wc -l 2>/dev/null)" -eq 1 ] && [ -z "$(grep -w "path: $path" "$PROXY_PROVIDER_FILE" 2>/dev/null)" ]; then - return - fi - fi - if [ "$enabled" = "0" ]; then return fi @@ -91,6 +72,23 @@ yml_proxy_provider_set() return fi + if [ ! -z "$if_game_proxy" ] && [ "$if_game_proxy" != "$name" ] && [ "$if_game_proxy_type" = "proxy-provider" ]; then + return + fi + + if [ "$MIX_PROXY" != "1" ] && [ ! -z "$config" ] && [ "$config" != "$CONFIG_NAME" ] && [ "$config" != "all" ]; then + return + fi + + if [ "$config" = "$CONFIG_NAME" ] || [ "$config" = "all" ]; then + if [ -n "$(grep -w "path: $path" "$PROXY_PROVIDER_FILE" 2>/dev/null)" ]; then + return + elif [ "$(grep -Fw "$name" "$proxy_provider_name" |wc -l 2>/dev/null)" -ge 2 ] && [ -z "$(grep -w "path: $path" "$PROXY_PROVIDER_FILE" 2>/dev/null)" ]; then + sed -i "1,/${name}/{//d}" "$proxy_provider_name" 2>/dev/null + return + fi + fi + echo "正在写入【$type】-【$name】代理集到配置文件【$CONFIG_NAME】..." >$START_LOG echo "$name" >> /tmp/Proxy_Provider @@ -174,31 +172,6 @@ yml_servers_set() config_get "http_path" "$section" "http_path" "" config_get "keep_alive" "$section" "keep_alive" "" config_get "servername" "$section" "servername" "" - - if [ ! -z "$if_game_proxy" ] && [ "$if_game_proxy" != "$name" ] && [ "$if_game_proxy_type" = "proxy" ]; then - return - fi - - if [ "$MIX_PROXY" != "1" ] && [ ! -z "$config" ] && [ "$config" != "$CONFIG_NAME" ] && [ "$config" != "all" ]; then - return - fi - - if [ "$config" = "$CONFIG_NAME" ] || [ "$config" = "all" ]; then - if [ "$(grep -Fw "$name" "$servers_name" |wc -l 2>/dev/null)" -ge 2 ] && [ -n "$(grep -w "name: \"$name\"" "$SERVER_FILE" 2>/dev/null)" ]; then - return - fi - fi - - if [ "$config" = "$CONFIG_NAME" ] || [ "$config" = "all" ]; then - if [ -n "$(grep -w "name: \"$name\"" "$SERVER_FILE" 2>/dev/null)" ]; then - return - elif [ "$(grep -Fw "$name" "$servers_name" |wc -l 2>/dev/null)" -ge 2 ] && [ -z "$(grep -w "name: \"$name\"" "$SERVER_FILE" 2>/dev/null)" ]; then - sed -i "1,/${name}/{//d}" "$servers_name" 2>/dev/null - return - elif [ "$(grep -Fw "$name" "$servers_name" |wc -l 2>/dev/null)" -ge 1 ] && [ -z "$(grep -w "name: \"$name\"" "$SERVER_FILE" 2>/dev/null)" ]; then - return - fi - fi if [ "$enabled" = "0" ]; then return @@ -226,6 +199,29 @@ yml_servers_set() fi fi + if [ ! -z "$if_game_proxy" ] && [ "$if_game_proxy" != "$name" ] && [ "$if_game_proxy_type" = "proxy" ]; then + return + fi + + if [ "$MIX_PROXY" != "1" ] && [ ! -z "$config" ] && [ "$config" != "$CONFIG_NAME" ] && [ "$config" != "all" ]; then + return + fi + + if [ "$config" = "$CONFIG_NAME" ] || [ "$config" = "all" ]; then + if [ "$(grep -Fw "$name" "$servers_name" |wc -l 2>/dev/null)" -ge 2 ] && [ -n "$(grep -w "name: \"$name\"" "$SERVER_FILE" 2>/dev/null)" ]; then + return + fi + fi + + if [ "$config" = "$CONFIG_NAME" ] || [ "$config" = "all" ]; then + if [ -n "$(grep -w "name: \"$name\"" "$SERVER_FILE" 2>/dev/null)" ]; then + return + elif [ "$(grep -Fw "$name" "$servers_name" |wc -l 2>/dev/null)" -ge 2 ] && [ -z "$(grep -w "name: \"$name\"" "$SERVER_FILE" 2>/dev/null)" ]; then + sed -i "1,/${name}/{//d}" "$servers_name" 2>/dev/null + return + fi + fi + echo "正在写入【$type】-【$name】节点到配置文件【$CONFIG_NAME】..." >$START_LOG if [ "$obfs" != "none" ] && [ -n "$obfs" ]; then @@ -579,8 +575,8 @@ sed -i "s/^ \{0,\}/ - /" /tmp/Proxy_Provider 2>/dev/null #添加参数 if [ "$(grep "-" /tmp/Proxy_Provider 2>/dev/null |wc -l)" -eq 0 ]; then rm -rf $PROXY_PROVIDER_FILE rm -rf /tmp/Proxy_Provider - rm -rf $proxy_provider_name fi +rm -rf $proxy_provider_name #proxy rule_sources=$(uci get openclash.config.rule_sources 2>/dev/null) @@ -594,8 +590,8 @@ if [ -s "/tmp/Proxy_Server" ]; then else rm -rf $SERVER_FILE rm -rf /tmp/Proxy_Server - rm -rf $servers_name fi +rm -rf $servers_name #一键创建配置文件 if [ "$rule_sources" = "ConnersHua" ] && [ "$servers_if_update" != "1" ] && [ -z "$if_game_proxy" ]; then @@ -618,7 +614,7 @@ EOF fi cat /tmp/Proxy_Provider >> $SERVER_FILE 2>/dev/null cat >> "$SERVER_FILE" <<-EOF - url: http://www.gstatic.com/generate_204 + url: https://cp.cloudflare.com/generate_204 interval: "600" - name: Proxy type: select @@ -706,7 +702,7 @@ EOF fi cat /tmp/Proxy_Provider >> $SERVER_FILE 2>/dev/null cat >> "$SERVER_FILE" <<-EOF - url: http://www.gstatic.com/generate_204 + url: https://cp.cloudflare.com/generate_204 interval: "600" - name: Proxy type: select @@ -940,7 +936,7 @@ EOF fi cat /tmp/Proxy_Provider >> $SERVER_FILE 2>/dev/null cat >> "$SERVER_FILE" <<-EOF - url: http://www.gstatic.com/generate_204 + url: https://cp.cloudflare.com/generate_204 interval: "600" - name: Proxy type: select