diff --git a/package/ctcgfw/luci-app-openclash/Makefile b/package/ctcgfw/luci-app-openclash/Makefile index 7b3f22a1fe..9f7b87c40a 100644 --- a/package/ctcgfw/luci-app-openclash/Makefile +++ b/package/ctcgfw/luci-app-openclash/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-openclash -PKG_VERSION:=0.36.3 +PKG_VERSION:=0.36.4 PKG_RELEASE:=beta PKG_MAINTAINER:=vernesong @@ -14,7 +14,7 @@ define Package/$(PKG_NAME) SUBMENU:=3. Applications TITLE:=LuCI support for clash PKGARCH:=all - DEPENDS:=+iptables +dnsmasq-full +coreutils +coreutils-nohup +bash +wget + DEPENDS:=+iptables +dnsmasq-full +coreutils +coreutils-nohup +bash +curl +jsonfilter +ca-certificates MAINTAINER:=vernesong endef @@ -48,6 +48,7 @@ if [ -f "/etc/config/openclash" ]; then cp "/etc/config/openclash_custom_rules.list" "/tmp/openclash_custom_rules.list.bak" >/dev/null 2>&1 cp "/etc/config/openclash_custom_hosts.list" "/tmp/openclash_custom_hosts.list.bak" >/dev/null 2>&1 cp "/etc/config/openclash_custom_fake_black.conf" "/tmp/openclash_custom_fake_black.conf.bak" >/dev/null 2>&1 + cp "/etc/openclash/history" "/tmp/openclash_history.bak" >/dev/null 2>&1 fi if [ -f "/etc/openclash/custom/openclash_custom_rules.list" ]; then cp "/etc/openclash/custom/openclash_custom_rules.list" "/tmp/openclash_custom_rules.list.bak" >/dev/null 2>&1 @@ -76,6 +77,7 @@ if [ -f "/tmp/openclash.bak" ]; then mv "/tmp/openclash_custom_rules.list.bak" "/etc/openclash/custom/openclash_custom_rules.list" >/dev/null 2>&1 mv "/tmp/openclash_custom_hosts.list.bak" "/etc/openclash/custom/openclash_custom_hosts.list" >/dev/null 2>&1 mv "/tmp/openclash_custom_fake_black.conf.bak" "/etc/openclash/custom/openclash_custom_fake_black.conf" >/dev/null 2>&1 + mv "/tmp/openclash_history.bak" "/etc/openclash/history" >/dev/null 2>&1 fi if [ -f "/tmp/config.yaml" ]; then mv "/tmp/config.yaml" "/etc/openclash/config/config.yaml" >/dev/null 2>&1 @@ -113,6 +115,7 @@ fi mv "/etc/openclash/config" "/tmp/openclash_config" >/dev/null 2>&1 mv "/etc/openclash/proxy_provider" "/tmp/openclash_proxy_provider" >/dev/null 2>&1 mv "/etc/openclash/game_rules" "/tmp/openclash_game_rules" >/dev/null 2>&1 + mv "/etc/openclash/history" "/tmp/openclash_history.bak" >/dev/null 2>&1 cp "/etc/config/openclash" "/tmp/openclash.bak" >/dev/null 2>&1 cp "/etc/config/openclash_custom_rules.list" "/tmp/openclash_custom_rules.list.bak" >/dev/null 2>&1 cp "/etc/config/openclash_custom_hosts.list" "/tmp/openclash_custom_hosts.list.bak" >/dev/null 2>&1 @@ -129,6 +132,7 @@ if [ -f "/etc/openclash/clash" ]; then rm -rf /etc/openclash/backup >/dev/null 2>&1 rm -rf /etc/openclash/proxy_provider >/dev/null 2>&1 rm -rf /etc/openclash/game_rules >/dev/null 2>&1 + rm -rf /etc/openclash/history >/dev/null 2>&1 else rm -rf /etc/openclash >/dev/null 2>&1 fi diff --git a/package/ctcgfw/luci-app-openclash/files/etc/init.d/openclash b/package/ctcgfw/luci-app-openclash/files/etc/init.d/openclash index 3c25a48ecf..5cc9631137 100755 --- a/package/ctcgfw/luci-app-openclash/files/etc/init.d/openclash +++ b/package/ctcgfw/luci-app-openclash/files/etc/init.d/openclash @@ -165,7 +165,7 @@ yml_check() awk '/^proxy-provider:/,/^Proxy Group:/{print}' "$3" | sed '/^Proxy Group:/d' >/tmp/backprovider.yaml 2>/dev/null sed -i '/^Proxy Group:/i\proxy-provider-tag' "$3" 2>/dev/null sed -i '/^proxy-provider:/,/proxy-provider-tag/d' "$3" 2>/dev/null - sed -i '/^Rule:/i\proxy-provider:' "$3" 2>/dev/null + sed -i '/^Proxy:/i\proxy-provider:' "$3" 2>/dev/null sed -i '/^proxy-provider:/d' /tmp/backprovider.yaml 2>/dev/null sed -i '/proxy-provider:/r/tmp/backprovider.yaml' "$3" 2>/dev/null rm -rf /tmp/backprovider.yaml 2>/dev/null @@ -506,11 +506,16 @@ yml_game_rule_get() local section="$1" config_get_bool "enabled" "$section" "enabled" "1" config_get "group" "$section" "group" "" + config_get "config" "$section" "config" "" if [ "$enabled" = "0" ]; then return fi + if [ ! -z "$config" ] && [ "$config" != "$CONFIG_NAME" ] && [ "$config" != "all" ]; then + return + fi + if [ -z "$group" ]; then return fi @@ -523,11 +528,16 @@ yml_game_group_get() local section="$1" config_get_bool "enabled" "$section" "enabled" "1" config_get "group" "$section" "group" "" + config_get "config" "$section" "config" "" if [ "$enabled" = "0" ]; then return fi + if [ ! -z "$config" ] && [ "$config" != "$CONFIG_NAME" ] && [ "$config" != "all" ]; then + return + fi + if [ -z "$group" ]; then return fi @@ -609,6 +619,7 @@ else cp $BACKUP_FILE $CONFIG_FILE fi fi +CONFIG_NAME=$(echo $CONFIG_FILE |awk -F '/' '{print $5}' 2>/dev/null) enable=$(uci get openclash.config.enable 2>/dev/null) LOGTIME=$(date "+%Y-%m-%d %H:%M:%S") @@ -691,13 +702,14 @@ if [ "$enable" -eq 1 ] && [ -f "$CONFIG_FILE" ]; then nohup $CLASH -d "$CLASH_CONFIG" -f "$CONFIG_FILE" >> $LOG_FILE 2>&1 & #检测proxy_provider配置文件状态 + echo "第六步: 等待主程序下载代理集..." >$START_LOG yml_proxy_provider_check "$PROXY_PROVIDER_FILE" rm -rf /tmp/yaml_* 2>/dev/null - echo "第六步: 设置控制面板..." >$START_LOG + echo "第七步: 设置控制面板..." >$START_LOG ln -s /usr/share/openclash/yacd /www/openclash 2>/dev/null - echo "第七步: 设置 OpenClash 防火墙规则..." >$START_LOG + echo "第八步: 设置 OpenClash 防火墙规则..." >$START_LOG if [ -z "$(uci get firewall.openclash 2>/dev/null)" ] || [ -z "$(uci get ucitrack.@openclash[-1].init 2>/dev/null)" ]; then uci delete ucitrack.@openclash[-1] >/dev/null 2>&1 uci add ucitrack openclash >/dev/null 2>&1 @@ -753,6 +765,7 @@ EOF ipset add localnetwork 224.0.0.0/4 ipset add localnetwork 240.0.0.0/4 ipset add localnetwork 172.16.0.0/12 + ipset add localnetwork "$wan_ip4" #启动TUN if [ "$en_mode_tun" = "2" ]; then ip tuntap add user root mode tun clash0 @@ -775,7 +788,7 @@ EOF fi fi - echo "第八步: 重启 Dnsmasq 程序..." >$START_LOG + echo "第九步: 重启 Dnsmasq 程序..." >$START_LOG if [ "$(iptables -t nat -nL PREROUTING --line-number |grep dpt:53 |wc -l)" -gt 2 ]; then echo "发现53端口被劫持,如连接异常请将OpenClash设置为劫持53端口程序的上游DNS服务器!" >$START_LOG echo "${LOGTIME} Warring: OpenClash May Can Not Take Over DNS, Please Use OpenClash for Upstream DNS Resolve Server" >> $LOG_FILE @@ -785,15 +798,17 @@ EOF fake_block "$en_mode" "$direct_dns" /etc/init.d/dnsmasq restart >/dev/null 2>&1 if pidof clash >/dev/null; then - echo "第九步: 添加 OpenClash 计划任务,启动进程守护程序..." >$START_LOG + echo "第十步: 添加 OpenClash 计划任务,启动进程守护程序..." >$START_LOG add_cron if [ -z "$(uci get dhcp.lan.dhcpv6 2>/dev/null)" ]; then echo "OpenClash 启动成功,请等待服务器上线!" >$START_LOG echo "${LOGTIME} OpenClash Start Successful" >> $LOG_FILE + /usr/share/openclash/openclash_history_set.sh sleep 5 else echo "OpenClash 启动成功,检测到您启用了IPV6的DHCP服务,可能会造成连接异常!" >$START_LOG echo "${LOGTIME} OpenClash Start Successful, Please Note That Network May Abnormal With IPV6's DHCP Server" >> $LOG_FILE + /usr/share/openclash/openclash_history_set.sh sleep 10 fi echo "" >$START_LOG @@ -813,12 +828,14 @@ EOF if [ -z "$(uci get dhcp.lan.dhcpv6 2>/dev/null)" ]; then echo "OpenClash 使用备份规则启动成功,请更新、检查变动的规则后重试!" >$START_LOG echo "${LOGTIME} OpenClash Start Successful With Backup Rules Config, Please Check Or Update Other Rules And Retry" >> $LOG_FILE + /usr/share/openclash/openclash_history_set.sh sleep 10 else echo "OpenClash 使用备份规则启动成功,请更新、检查变动的规则后重试!" >$START_LOG echo "${LOGTIME} OpenClash Start Successful With Backup Rules Config, Please Check Or Update Other Rules And Retry" >> $LOG_FILE - sleep 10 - echo "OpenClash 启动成功,检测到您启用了IPV6的DHCP服务,可能会造成连接异常!" >$START_LOG + /usr/share/openclash/openclash_history_set.sh + sleep 5 + echo "检测到您启用了IPV6的DHCP服务,可能会造成连接异常!" >$START_LOG echo "${LOGTIME} OpenClash Start Successful, Please Note That Network May Abnormal With IPV6's DHCP Server" >> $LOG_FILE sleep 10 fi @@ -867,7 +884,10 @@ fi stop() { echo "OpenClash 开始关闭..." >$START_LOG - echo "第一步: 删除 OpenClash 防火墙规则..." >$START_LOG + echo "第一步: 备份当前节点状态..." >$START_LOG + /usr/share/openclash/openclash_history_get.sh + + echo "第二步: 删除 OpenClash 防火墙规则..." >$START_LOG rm -rf /var/etc/openclash.include 2>/dev/null #ipv4 iptables -t nat -F openclash >/dev/null 2>&1 @@ -898,23 +918,23 @@ stop() iptables -t mangle -X openclash >/dev/null 2>&1 ipset destroy localnetwork >/dev/null 2>&1 - echo "第二步: 关闭 OpenClash 守护程序..." >$START_LOG + echo "第三步: 关闭 OpenClash 守护程序..." >$START_LOG watchdog_pids=$(ps |grep openclash_watchdog.sh |grep -v grep |awk '{print $1}' 2>/dev/null) for watchdog_pid in $watchdog_pids; do kill -9 "$watchdog_pid" >/dev/null 2>&1 done - echo "第三步: 关闭 Clash 主程序..." >$START_LOG + echo "第四步: 关闭 Clash 主程序..." >$START_LOG kill -9 "$(pidof clash|sed 's/$//g')" 2>/dev/null - echo "第四步: 重启 Dnsmasq 程序..." >$START_LOG + echo "第五步: 重启 Dnsmasq 程序..." >$START_LOG dns_port=$(uci get openclash.config.dns_port 2>/dev/null) redirect_dns=$(uci get openclash.config.redirect_dns 2>/dev/null) masq_cache=$(uci get openclash.config.masq_cache 2>/dev/null) revert_dns "$redirect_dns" "$masq_cache" "$dns_port" /etc/init.d/dnsmasq restart >/dev/null 2>&1 - echo "第五步:删除 OpenClash 残留文件..." >$START_LOG + echo "第六步:删除 OpenClash 残留文件..." >$START_LOG enable=$(uci get openclash.config.enable 2>/dev/null) if [ "$enable" -eq 0 ]; then rm -rf $LOG_FILE 2>/dev/null diff --git a/package/ctcgfw/luci-app-openclash/files/etc/openclash/ConnersHua.yaml b/package/ctcgfw/luci-app-openclash/files/etc/openclash/ConnersHua.yaml index 73c14f42ec..868cbaad7f 100644 --- a/package/ctcgfw/luci-app-openclash/files/etc/openclash/ConnersHua.yaml +++ b/package/ctcgfw/luci-app-openclash/files/etc/openclash/ConnersHua.yaml @@ -460,8 +460,7 @@ Rule: # (HKMTMedia) # > 愛奇藝台灣站 -- DOMAIN-SUFFIX,iqiyi.com,HKMTMedia -- DOMAIN-SUFFIX,71.am,HKMTMedia +- DOMAIN,cache.video.iqiyi.com,HKMTMedia # > bilibili - DOMAIN-SUFFIX,bilibili.com,HKMTMedia - DOMAIN,upos-hz-mirrorakam.akamaized.net,HKMTMedia diff --git a/package/ctcgfw/luci-app-openclash/files/etc/openclash/Country.mmdb b/package/ctcgfw/luci-app-openclash/files/etc/openclash/Country.mmdb index 8e1bf2e06c..f09a71189d 100644 Binary files a/package/ctcgfw/luci-app-openclash/files/etc/openclash/Country.mmdb and b/package/ctcgfw/luci-app-openclash/files/etc/openclash/Country.mmdb differ diff --git a/package/ctcgfw/luci-app-openclash/files/etc/openclash/openclash_version b/package/ctcgfw/luci-app-openclash/files/etc/openclash/openclash_version index 6b2ddf1825..ce5d4336f0 100644 --- a/package/ctcgfw/luci-app-openclash/files/etc/openclash/openclash_version +++ b/package/ctcgfw/luci-app-openclash/files/etc/openclash/openclash_version @@ -1,2 +1,2 @@ -v0.36.3-beta -data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXMAAAAqCAMAAAB2kksrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjg0QUYxNkVDNDc1NDExRUFCMjQzQTlFNjg1NThBN0RBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjg0QUYxNkVENDc1NDExRUFCMjQzQTlFNjg1NThBN0RBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ODRBRjE2RUE0NzU0MTFFQUIyNDNBOUU2ODU1OEE3REEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6ODRBRjE2RUI0NzU0MTFFQUIyNDNBOUU2ODU1OEE3REEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6zH6ceAAADAFBMVEXR0dFJns4reqdFmsptbW09PT2EvN0GVYKEhIS6uroihLzB1eCiwNJYpdIHX5EJeLgJdbTR5vKCgoIGcKyenp5jlLHa2tqlpaXR4ux4eHgkapLf39/n5+c5lcqStck/Pz/GxsahoaHOzs5paWmizOUJca1lnLuy1uqSu9KRkZFxcXEKaqEEYJW/v79GRkasrKx3t9u1tbUIXIwwk8uTxeFmrdY0dJoFbamDs84IYZTKyso2kcViYmIEWYkWaJcEU4AEXI5LS0uyythDQ0NFgKHg4OCLi4tkq9Ox0eOixdgXYo1GirEHdLF2dnYXgL3AwMCcnJzCwsIFaaJBQUEJZJhCQkJVlbomcJu2traXl5cIaJ6yzdwJWIVFkb0GbKaEtNBlZWUahMEmicGNjY2kzuajyN4FcrByn7hHnM1zobsHZ53w9fcJb6mDrcXR3+ivr6+DqsGhv9BgYGAchsODq8Irjsc1hrQZdapGg6aUlJQGZJrB2ecEYph0dHRVjKuJweJTiah0sdUFZZt0p8QRgsMCc7QBcrNRUVFUVFRVVVVSUlILfL1WVlYFdrcHeLkKe7wEdrYDdbUOf8AEdbYDdLQDdLUOgMASg8NXV1cSg8QShMQAcrIThMUGd7gOf78Nfr8Nfr4Mfb4Mfb0IebkJeroJe7sJers6OjqqqqrU1NTV1dVISEirq6upqanw9/s7OzuAgIB+fn4HVoRJSUnC3u6BgYHq6urz8/P19fVMTEzh7/f09PSDvNx/f3/v9PeGvt+Hv9/g6u/g6vCFvt7B3e3A1N+CqcCGv9+ErMKJiYnB3e7o6OgUXokFZ5+Evd3B3u50s9jg7vbW1tYLerkGdbQFZ6BGm8vD3+9Vos8Fa6YZg8AIWYfC3+8EVYODu9yDr8gHV4cLdK8KeLfv9vrg7vcJcKsEV4eAudmyz+AnhrxjpszP5PEFdLNEgKPB2+pTU1MPgMEQgcJZWVlaWlpfX19bW1tcXFxNTU1eXl5PT09QUFBYWFhdXV1OTk7///////8NL6p8AAABAHRSTlP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AU/cHJQAADFFJREFUeNrsVwlUVNcZHgIjowgRGSCDwCiKiMsjuEZFh4GARolWMHHD9Ri3WJdoEk3UGtJWBISuKV3Mhsg+BlBWQ4S4L2hi9sREk5o0rem01gbE8NH/3vfe8N4AhtPkeM7M8TvHd//1++/77uO9UdPWVrV+4A1nwF8cAKN+Zmlr07TFbb/hHPiTQ2CUd5umamizk+CPjoFRFs16Z5G8+Q8Ogp9phn7nLPi5g2CU5ru7mt9pOJHm/3YUaL51GtzV/M7jX44CzX+dBnc1v/N4wVGg+Y/T4DeOgk4110VERIS7/fiqLNHpltgcN52uOz0GnaGb7C92hReC7j9yf1CH6CbPI0eOuNgHnrQrc6GY5yb75hM48eL/Dc11e0TNrQJH3Lyo6z8Qugidyq/CPJs9ExO6Q/E23u7msJe6wKb3+e28v0kVfVKMosZTLlvO/ROqKjEGywk7zhM40dW4l1xOuLx0W3TQ3FAB+BXr9SE0SvdDNY9AhNLNGIE429EC4T+u5i93gU9w3+Dpg+/DJ6qoC7Du5MnejwMu3A+yADEnT8a8oaoCGoJPBjcA6vDLb9gHupnj0NxSIyoOlW5aBrO+su+tHwjSXOUPBdwkcx4q07pDIWiFbg57pXOMQcO05OTkaY9jjDLs0jsgmYUbsJy5Sy2IYWXJw1TNHltYLDkGNWpS0vWVrnC7HIemg0qVUdrYcrNZ0GozBnZXW0Nf1fH07evWueZFgRggmYWY2yoVGzpnjLLT3E09JEqukPFq5wjDaq+1V9Z6nUSYMnwlOdlr2LDZH5/EJ8xdDo/k5NkUGKZqTk4eOX/Y/JFbADXpm3jz1VefdAlShFxkj+dsQVWNCHvNq6A37uJWhpkZhTjEvUMolK7z4oDiW8Uojiqm1xDLFrMPQFUxrwOiuFsYxR0RNvZdelRIAtITn03CzWT5ivhbKvJbAyp4mFEWQySO56GZUVKlG2+cq9x6ugRP1EhWDTzT0y3YcpHsi1tgSVfgyuzP2XJxCB6jZSkQMPti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 \ No newline at end of file +v0.36.4-beta +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXMAAAAqCAMAAAB2kksrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjI3QjAxQUIwNDhDNDExRUFBRjA1Rjc0RkJBN0IzQ0IyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjI3QjAxQUIxNDhDNDExRUFBRjA1Rjc0RkJBN0IzQ0IyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MjdCMDFBQUU0OEM0MTFFQUFGMDVGNzRGQkE3QjNDQjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MjdCMDFBQUY0OEM0MTFFQUFGMDVGNzRGQkE3QjNDQjIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6MLmHGAAADAFBMVEUGZZyGv98reqdFgKJtbW0Jca09PT2EhIS6urokhbxilbE6lsoKaqFYpdJTiqqTu9NFmsqCgoKenp7a2tqlpaXR4uxknLt4eHgGXpHR5vLf39/n5+c/Pz8GcKzGxsahoaEla5LOzs5paWmizOV2ttoKdbORkZFxcXE1dJq/v79GRkasrKy1tbUxk8yTxeFmrdaDs87KysoGbamy1upiYmIWaJcFYJRLS0uyytlDQ0MIYpXg4OAEWYmLi4sEU4Bkq9Ox0eOixdh2dnYJX48XgL3AwMCcnJwJZJiiwNEHdLLCwsJBQUFGibDw9feStcgYYo1CQkImcJtFkbwGVYK2trYrjseXl5eDrsayzdwahMEFaaLR3+iDqsGEtNDS0tLB1eDQ0NAGXI5lZWUnicGNjY2jyN4FZZs2kcZHnM2kzuYFcrBzobsHbKUEXI5yn7ivr68JWIVgYGCDq8IZdaqUlJTB2uhJns4chsN0dHQEYphKn8+JweJ0sdU1h7URgsMCc7QBcrNRUVFUVFRVVVVSUlILfL0FdrdWVlYHeLkKe7wEdrYDdbUOgMAEdbYOf8ADdLUDdLQSg8NXV1cSg8QShMQAcrIThMUGd7gOf78Nfr8Nfr4Mfb4Mfb0IebkIeboJe7sJersJero6OjqqqqrU1NTV1dWrq6tISEipqak7Ozvw9/t+fn6AgIDC3u4HVoRJSUmBgYHq6uqEvd3z8/P19fVMTEyEvN3B3u709PTh7/eDvNyFvt5/f3/B3e3v9PcGVYGCqcDg6u+JiYno6OjA1N+ErMLB3e6Fvd4HZ54UXong7vYEVYOhv9ALerng6vDW1tZ0s9gJeLgIWYfC3+8EVYQFZ58GdbRGm8sHVoODu9zD3+8Zg8AFa6ZInc1Inc4IV4SDr8jv9voHV4cLb6gKebiFvd1Vos/B1+MEV4fg7/cFdLOyz+CAudkwk8vP5PFTU1MPgMEQgcJZWVlaWlpfX19bW1tcXFxNTU1eXl5PT09QUFBYWFhdXV1OTk7////////MShwrAAABAHRSTlP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AU/cHJQAADE1JREFUeNrsVwlUVNcZHiLMKIjLQByQQUEj6oO6IDogMpqoVcRoXONO0RMMGpUYJZqlrQgCbbrRpiZtXcLuEEA2AYmIG8ElRpMYTTSbWZsmndbagBg++t/73sy8NwOG0+TknJnjd47v/uv33/fd4b2nqqOjatOQm66APzsBfvK0qaND1RG97aZr4E9Oga/9O1RVw1tdBH90DnxtUm1yFclb/+AkeFo1/FtXwc+dBF+rvr2r+Y8NF9L8384C1Tcug7ua//j4l7NA9V+XwV3Nf3w85yxQ/cdl8FtnQaeaa0JDQ0Pcf3hVVms0q62Ou0bTnR6dRtdN9he6hNd9bvd52Qefe9Lbzc3tKfvAos76n7KPusHthf8bqhv2iFhYBY7oxRE3vic0oRqFX4XFVns6xnaH4nW83s1hL3aBJ9/lt/Puk4roIjGKOm9LWRL33RwJvB2jbp3VSUhxS3nxjnDQXFcO+BRotcE0X/N9NQ9FqNzNGIlo69ECIT+s5n/pAm/i3gGzB9yLNxXRFGD5qVMzHwRSuO9lAiJPnYqsd+hnGftoPeq7GnfHHIfqthIR0ah0VzMYtJX9b39PkOYKfzjgLpmLUZnWHQpBLXRz2F87x2icn5ucnDz3QYyWh1NmBiWz8HkkMXepCZGsLLm3ff8iEx5EvV2w3iHSvRyHykGlygh1VJnBIKjVGUO6q62uv+J4+vd371zzwgAMlsx8LGyXinWdM0bYae6uHBJhqbDgb51jHNZP/XjYx1NPYZw8PCw5eWrv3jPeOIU3mZuE+OTkGRTobde+1B+e8ai3i9azyKIUL1koxeLVy6pTUhQ1Iuw1r4JWv4NbGQZm5OMg9w4iX7oujgYKbhegIKKAHkMsW8BeAFUFvA6I4G5+BHdEWNl3aFEuCUi/+GwSbjrLl8fcVpDfHlzOw4yyACJxDA9Nj5Aq3XnjQvnW0yV4o06y6uCdnm7C7E/Ifq0HTOkyeMxg0fTX+uIRWpYCQTNeS+8EJZj5weeot4uSrt51/G0g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 \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/game-settings.lua b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/game-settings.lua index c5d71577cb..bbb7b3ce03 100644 --- a/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/game-settings.lua +++ b/package/ctcgfw/luci-app-openclash/files/usr/lib/lua/luci/model/cbi/openclash/game-settings.lua @@ -27,6 +27,18 @@ local e=string.lower(string.sub(e,-6,-1)) return e==".rules" end +function IsYamlFile(e) + e=e or"" + local e=string.lower(string.sub(e,-5,-1)) + return e == ".yaml" +end + +function IsYmlFile(e) + e=e or"" + local e=string.lower(string.sub(e,-4,-1)) + return e == ".yml" +end + if not NXFS.access("/tmp/rules_name") then SYS.call("awk -F ',' '{print $1}' /etc/openclash/game_rules.list > /tmp/rules_name 2>/dev/null") end @@ -48,6 +60,21 @@ o.cfgvalue = function(...) return Flag.cfgvalue(...) or "1" end +---- config +o = s:option(ListValue, "config", translate("Config File")) +o:value("all", translate("Use For All Config File")) +local e,a={} +for t,f in ipairs(fs.glob("/etc/openclash/config/*"))do + a=fs.stat(f) + if a then + e[t]={} + e[t].name=fs.basename(f) + if IsYamlFile(e[t].name) or IsYmlFile(e[t].name) then + o:value(e[t].name) + end + end +end + ---- rule name o = s:option(DynamicList, "rule_name", translate("Game Rule's Name")) local e,a={} diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/clash_version.sh b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/clash_version.sh index 49d13fada0..a7a031923e 100755 --- a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/clash_version.sh +++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/clash_version.sh @@ -3,7 +3,7 @@ CKTIME=$(date "+%Y-%m-%d-%H") LAST_OPVER="/tmp/clash_last_version" version_url="https://raw.githubusercontent.com/vernesong/OpenClash/master/core_version" if [ "$CKTIME" != "$(grep "CheckTime" $LAST_OPVER 2>/dev/null |awk -F ':' '{print $2}')" ]; then - wget-ssl --no-check-certificate --quiet --timeout=10 --tries=2 "$version_url" -O $LAST_OPVER + curl -sL -m 10 --retry 2 "$version_url" -o $LAST_OPVER >/dev/null 2>&1 if [ "$?" -eq "0" ] && [ "$(ls -l $LAST_OPVER 2>/dev/null |awk '{print int($5)}')" -gt 0 ]; then echo "CheckTime:$CKTIME" >>$LAST_OPVER else diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash.sh b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash.sh index c0d22c6f92..f1eeac9688 100755 --- a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash.sh +++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash.sh @@ -16,12 +16,12 @@ config_download() { if [ "$URL_TYPE" == "v2rayn" ]; then subscribe_url=`echo $subscribe_url |sed 's/{/%7B/g;s/}/%7D/g;s/:/%3A/g;s/\"/%22/g;s/,/%2C/g;s/?/%3F/g;s/=/%3D/g;s/&/%26/g;s/\//%2F/g'` - wget-ssl --no-check-certificate --quiet --timeout=10 --tries=2 https://tgbot.lbyczf.com/v2rayn2clash?url="$subscribe_url" -O /tmp/config.yaml + curl -sL -m 10 --retry 2 https://tgbot.lbyczf.com/v2rayn2clash?url="$subscribe_url" -o /tmp/config.yaml >/dev/null 2>&1 elif [ "$URL_TYPE" == "surge" ]; then subscribe_url=`echo $subscribe_url |sed 's/{/%7B/g;s/}/%7D/g;s/:/%3A/g;s/\"/%22/g;s/,/%2C/g;s/?/%3F/g;s/=/%3D/g;s/&/%26/g;s/\//%2F/g'` - wget-ssl --no-check-certificate --quiet --timeout=10 --tries=2 https://tgbot.lbyczf.com/surge2clash?url="$subscribe_url" -O /tmp/config.yaml + curl -sL -m 10 --retry 2 https://tgbot.lbyczf.com/surge2clash?url="$subscribe_url" -o /tmp/config.yaml >/dev/null 2>&1 else - wget-ssl --no-check-certificate --quiet --timeout=10 --tries=2 "$subscribe_url" -O /tmp/config.yaml + curl -sL -m 10 --retry 2 "$subscribe_url" -o /tmp/config.yaml >/dev/null 2>&1 fi } diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_core.sh b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_core.sh index dabc22eeb4..97b807709f 100755 --- a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_core.sh +++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_core.sh @@ -11,7 +11,7 @@ CPU_MODEL=$(uci get openclash.config.core_version 2>/dev/null) if [ "$(/etc/openclash/clash -v 2>/dev/null |awk -F ' ' '{print $2}')" != "$(sed -n 1p /tmp/clash_last_version 2>/dev/null)" ] || [ -z "$(/etc/openclash/clash -v 2>/dev/null |awk -F ' ' '{print $2}')" ] || [ ! -f /etc/openclash/clash ]; then if [ "$CPU_MODEL" != 0 ]; then echo "开始下载 OpenClash 内核..." >$START_LOG - wget-ssl --no-check-certificate --quiet --timeout=10 --tries=5 https://github.com/vernesong/OpenClash/releases/download/Clash/clash-"$CPU_MODEL".tar.gz -O /tmp/clash.tar.gz + curl -sL -m 10 --retry 2 https://github.com/vernesong/OpenClash/releases/download/Clash/clash-"$CPU_MODEL".tar.gz -o /tmp/clash.tar.gz >/dev/null 2>&1 if [ "$?" -eq "0" ] && [ "$(ls -l /tmp/clash.tar.gz |awk '{print int($5/1024)}')" -ne 0 ]; then tar zxvf /tmp/clash.tar.gz -C /tmp >/dev/null 2>&1\ && rm -rf /tmp/clash.tar.gz >/dev/null 2>&1\ diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_game_rule.sh b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_game_rule.sh index 29c7790a31..dd31994012 100755 --- a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_game_rule.sh +++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_game_rule.sh @@ -12,7 +12,7 @@ LOGTIME=$(date "+%Y-%m-%d %H:%M:%S") LOG_FILE="/tmp/openclash.log" echo "开始下载【$RULE_FILE_NAME】规则..." >$START_LOG - wget-ssl --no-check-certificate --quiet --timeout=10 --tries=2 https://raw.githubusercontent.com/FQrabbit/SSTap-Rule/master/rules/"$DOWNLOAD_PATH" -O "$TMP_RULE_DIR" + curl -sL -m 10 --retry 2 https://raw.githubusercontent.com/FQrabbit/SSTap-Rule/master/rules/"$DOWNLOAD_PATH" -o "$TMP_RULE_DIR" >/dev/null 2>&1 if [ "$?" -eq "0" ] && [ "$(ls -l $TMP_RULE_DIR |awk '{print $5}')" -ne 0 ]; then echo "【$RULE_FILE_NAME】规则下载成功,检查规则版本是否更新..." >$START_LOG cmp -s $TMP_RULE_DIR $RULE_FILE_DIR diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_history_get.sh b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_history_get.sh new file mode 100755 index 0000000000..3b551c1556 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_history_get.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +CURL_GROUP_CACHE="/tmp/openclash_history_gorup.json" +CURL_NOW_CACHE="/tmp/openclash_history_now.json" +CURL_CACHE="/tmp/openclash_history_curl.json" +HISTORY_PATH="/etc/openclash/history" +SECRET=$(uci get openclash.config.dashboard_password 2>/dev/null) +LAN_IP=$(uci get network.lan.ipaddr 2>/dev/null |awk -F '/' '{print $1}' 2>/dev/null) +PORT=$(uci get openclash.config.cn_port 2>/dev/null) + +curl -w %{http_code}"\n" -H "Authorization: Bearer ${SECRET}" -H "Content-Type:application/json" -X GET http://"$LAN_IP":"$PORT"/proxies > "$CURL_CACHE" 2>/dev/null +if [ "$(sed -n '$p' "$CURL_CACHE")" -eq "200" ]; then + cat "$CURL_CACHE" |jsonfilter -e '@["proxies"][@.type="Selector"]["name"]' > "$CURL_GROUP_CACHE" 2>/dev/null + cat "$CURL_CACHE" |jsonfilter -e '@["proxies"][@.type="Selector"]["now"]' > "$CURL_NOW_CACHE" 2>/dev/null + awk 'NR==FNR{a[i]=$0;i++}NR>FNR{print a[j]"#*#"$0;j++}' "$CURL_GROUP_CACHE" "$CURL_NOW_CACHE" > "$HISTORY_PATH" 2>/dev/null +fi +rm -rf /tmp/openclash_history_* 2>/dev/null \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_history_set.sh b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_history_set.sh new file mode 100755 index 0000000000..b988aff8ac --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_history_set.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +HISTORY_PATH="/etc/openclash/history" +SECRET=$(uci get openclash.config.dashboard_password 2>/dev/null) +LAN_IP=$(uci get network.lan.ipaddr 2>/dev/null |awk -F '/' '{print $1}' 2>/dev/null) +PORT=$(uci get openclash.config.cn_port 2>/dev/null) + +if [ ! -z "$(grep "#*#" "$HISTORY_PATH")" ]; then + cat $HISTORY_PATH |while read line + do + GORUP_NAME=$(echo $line |awk -F '#*#' '{print $1}') + NOW_NAME=$(echo $line |awk -F '#*#' '{print $3}') + curl -H "Authorization: Bearer ${SECRET}" -H "Content-Type:application/json" -X PUT -d '{"name":"'"$NOW_NAME"'"}' http://"$LAN_IP":"$PORT"/proxies/"$GORUP_NAME" >/dev/null 2>&1 + done +fi \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_ipdb.sh b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_ipdb.sh index 874d063734..055f5f2a3a 100755 --- a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_ipdb.sh +++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_ipdb.sh @@ -3,7 +3,7 @@ LOGTIME=$(date "+%Y-%m-%d %H:%M:%S") LOG_FILE="/tmp/openclash.log" echo "开始下载 GEOIP 数据库..." >$START_LOG - wget-ssl --no-check-certificate --quiet --timeout=10 --tries=2 https://static.clash.to/GeoIP2/GeoIP2-Country.mmdb -O /tmp/Country.mmdb + curl -sL -m 10 --retry 2 https://static.clash.to/GeoIP2/GeoIP2-Country.mmdb -o /tmp/Country.mmdb >/dev/null 2>&1 if [ "$?" -eq "0" ] && [ "$(ls -l /tmp/Country.mmdb |awk '{print int($5/1024)}')" -ne 0 ]; then echo "GEOIP 数据库下载成功,检查数据库版本是否更新..." >$START_LOG cmp -s /tmp/Country.mmdb /etc/openclash/Country.mmdb diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_rule.sh b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_rule.sh index 69dda045b0..9feedb3b24 100755 --- a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_rule.sh +++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_rule.sh @@ -6,13 +6,13 @@ rule_source=$(uci get openclash.config.rule_source 2>/dev/null) echo "开始下载使用中的第三方规则..." >$START_LOG if [ "$rule_source" = "lhie1" ]; then - wget-ssl --no-check-certificate --quiet --timeout=10 --tries=2 https://raw.githubusercontent.com/lhie1/Rules/master/Clash/Rule.yml -O /tmp/rules.yaml + curl -sL -m 10 --retry 2 https://raw.githubusercontent.com/lhie1/Rules/master/Clash/Rule.yml -o /tmp/rules.yaml >/dev/null 2>&1 sed -i '1i Rule:' /tmp/rules.yaml elif [ "$rule_source" = "ConnersHua" ]; then - wget-ssl --no-check-certificate --quiet --timeout=10 --tries=2 https://raw.githubusercontent.com/ConnersHua/Profiles/master/Clash/Pro.yaml -O /tmp/rules.yaml + curl -sL -m 10 --retry 2 https://raw.githubusercontent.com/ConnersHua/Profiles/master/Clash/Pro.yaml -o /tmp/rules.yaml >/dev/null 2>&1 sed -i -n '/^Rule:/,$p' /tmp/rules.yaml elif [ "$rule_source" = "ConnersHua_return" ]; then - wget-ssl --no-check-certificate --quiet --timeout=10 --tries=2 https://raw.githubusercontent.com/ConnersHua/Profiles/master/Clash/BacktoCN.yaml -O /tmp/rules.yaml + curl -sL -m 10 --retry 2 https://raw.githubusercontent.com/ConnersHua/Profiles/master/Clash/BacktoCN.yaml -o /tmp/rules.yaml >/dev/null 2>&1 sed -i -n '/^Rule:/,$p' /tmp/rules.yaml fi if [ "$?" -eq "0" ] && [ "$rule_source" != 0 ] && [ "$(ls -l /tmp/rules.yaml |awk '{print int($5/1024)}')" -ne 0 ]; then diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_update.sh b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_update.sh index ce2bc69606..b5781a6d62 100755 --- a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_update.sh +++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_update.sh @@ -10,7 +10,7 @@ LAST_OPVER="/tmp/openclash_last_version" LAST_VER=$(sed -n 1p "$LAST_OPVER" 2>/dev/null |sed "s/^v//g") if [ "$(sed -n 1p /etc/openclash/openclash_version 2>/dev/null)" != "$(sed -n 1p $LAST_OPVER 2>/dev/null)" ] && [ -f "$LAST_OPVER" ]; then echo "开始下载 OpenClash-$LAST_VER ..." >$START_LOG - wget-ssl --no-check-certificate --quiet --timeout=10 --tries=5 https://github.com/vernesong/OpenClash/releases/download/v"$LAST_VER"/luci-app-openclash_"$LAST_VER"_all.ipk -O /tmp/openclash.ipk + curl -sL -m 10 --retry 5 https://github.com/vernesong/OpenClash/releases/download/v"$LAST_VER"/luci-app-openclash_"$LAST_VER"_all.ipk -o /tmp/openclash.ipk >/dev/null 2>&1 if [ "$?" -eq "0" ] && [ "$(ls -l /tmp/openclash.ipk |awk '{print int($5/1024)}')" -ne 0 ]; then echo "OpenClash-$LAST_VER 下载成功,开始更新,更新过程请不要刷新页面和进行其他操作..." >$START_LOG cat > /tmp/openclash_update.sh <<"EOF" diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_version.sh b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_version.sh index 950a516712..5d3e768260 100755 --- a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_version.sh +++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_version.sh @@ -3,7 +3,7 @@ CKTIME=$(date "+%Y-%m-%d-%H") LAST_OPVER="/tmp/openclash_last_version" version_url="https://raw.githubusercontent.com/vernesong/OpenClash/master/version" if [ "$CKTIME" != "$(grep "CheckTime" $LAST_OPVER 2>/dev/null |awk -F ':' '{print $2}')" ]; then - wget-ssl --no-check-certificate --quiet --timeout=10 --tries=2 "$version_url" -O $LAST_OPVER + curl -sL -m 10 --retry 2 "$version_url" -o $LAST_OPVER >/dev/null 2>&1 if [ "$?" -eq "0" ] && [ "$(ls -l $LAST_OPVER 2>/dev/null |awk '{print int($5)}')" -gt 0 ]; then if [ "$(sed -n 1p /etc/openclash/openclash_version 2>/dev/null)" = "$(sed -n 1p $LAST_OPVER 2>/dev/null)" ]; then sed -i "/^https:/i\CheckTime:${CKTIME}" "$LAST_OPVER" 2>/dev/null diff --git a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_watchdog.sh b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_watchdog.sh index c94be3e076..85047cb67e 100755 --- a/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_watchdog.sh +++ b/package/ctcgfw/luci-app-openclash/files/usr/share/openclash/openclash_watchdog.sh @@ -19,6 +19,8 @@ if [ "$enable" -eq 1 ]; then CONFIG_FILE=$(uci get openclash.config.config_path 2>/dev/null) echo "${LOGTIME} Watchdog: Clash Core Problem, Restart." >> $LOG_FILE nohup $CLASH -d "$CLASH_CONFIG" -f "$CONFIG_FILE" >> $LOG_FILE 2>&1 & + sleep 3 + /usr/share/openclash/openclash_history_set.sh else echo "${LOGTIME} Watchdog: Already Restart 3 Times With Clash Core Problem, Auto-Exit." >> $LOG_FILE exit 0 @@ -28,6 +30,9 @@ if [ "$enable" -eq 1 ]; then fi fi +## Porxy history + /usr/share/openclash/openclash_history_get.sh + ## Log File Size Manage: LOGSIZE=`ls -l /tmp/openclash.log |awk '{print int($5/1024)}'` if [ "$LOGSIZE" -gt 90 ]; then