From 036c0fbab17cd196a058989fdc1974254ef9b69d Mon Sep 17 00:00:00 2001 From: CN_SZTL Date: Sun, 26 Jan 2020 01:56:34 +0800 Subject: [PATCH] luci-app-clash: sync with upstream source --- .../luasrc/controller/clash.lua | 20 +++++-- .../luasrc/model/cbi/clash/client.lua | 2 +- .../luasrc/model/cbi/clash/game-settings.lua | 18 ++++++ .../luasrc/model/cbi/clash/import.lua | 32 +++++----- .../luasrc/model/cbi/clash/log.lua | 8 --- .../luasrc/view/clash/status.htm | 59 +++++++++++-------- package/jsda/luci-app-clash/po/zh-cn/clash.po | 31 ++++++++-- .../jsda/luci-app-clash/root/etc/init.d/clash | 57 ++++-------------- .../root/usr/share/clash/core_download.sh | 5 +- .../root/usr/share/clash/custom_rule.yaml | 7 --- .../root/usr/share/clash/del_servers.sh | 19 ------ .../root/usr/share/clash/list.sh | 4 +- 12 files changed, 131 insertions(+), 131 deletions(-) delete mode 100755 package/jsda/luci-app-clash/root/usr/share/clash/del_servers.sh diff --git a/package/jsda/luci-app-clash/luasrc/controller/clash.lua b/package/jsda/luci-app-clash/luasrc/controller/clash.lua index c436362d4e..ce20051ac2 100644 --- a/package/jsda/luci-app-clash/luasrc/controller/clash.lua +++ b/package/jsda/luci-app-clash/luasrc/controller/clash.lua @@ -188,14 +188,22 @@ local function clashr_core() end end + local function clashtun_core() if nixio.fs.access("/etc/clash/clashtun/clash") then - return luci.sys.exec("/etc/clash/clashtun/clash -v 2>/dev/null |awk -F ' ' '{print $2}'") + local tun=luci.sys.exec("/etc/clash/clashtun/clash -v 2>/dev/null |awk -F ' ' '{print $2}'") + if tun ~= "" then + return luci.sys.exec("/etc/clash/clashtun/clash -v 2>/dev/null |awk -F ' ' '{print $2}'") + else + return luci.sys.exec("sed -n 1p /usr/share/clash/tun_version") + end else return "0" end end + + local function readlog() return luci.sys.exec("sed -n '$p' /usr/share/clash/clash_real.txt 2>/dev/null") end @@ -262,8 +270,9 @@ function check_status() clashtun_core = clashtun_core(), new_core_version = new_core_version(), new_clashtun_core_version =new_clashtun_core_version(), - check_clashtun_core = check_clashtun_core() - + check_clashtun_core = check_clashtun_core(), + conf_path = conf_path(), + typeconf = typeconf() }) end function action_status() @@ -279,7 +288,10 @@ function action_status() dash_pass = dash_pass(), clashtun_core = clashtun_core(), e_mode = e_mode(), - in_use = in_use() + in_use = in_use(), + conf_path = conf_path(), + typeconf = typeconf() + }) diff --git a/package/jsda/luci-app-clash/luasrc/model/cbi/clash/client.lua b/package/jsda/luci-app-clash/luasrc/model/cbi/clash/client.lua index a76b05ce6b..a49ab472c6 100644 --- a/package/jsda/luci-app-clash/luasrc/model/cbi/clash/client.lua +++ b/package/jsda/luci-app-clash/luasrc/model/cbi/clash/client.lua @@ -31,7 +31,7 @@ o.default = "0" o:value("0", translate("Disable")) o:value("1", translate("Enable")) o.description = translate("Set rules under Setting=>Game Rules, will take effect when client start") -o:depends("core", 3) + o = s:option(Button, "Apply") o.title = translate("Save & Apply") diff --git a/package/jsda/luci-app-clash/luasrc/model/cbi/clash/game-settings.lua b/package/jsda/luci-app-clash/luasrc/model/cbi/clash/game-settings.lua index 59cac93c90..c3dbd2ff1c 100644 --- a/package/jsda/luci-app-clash/luasrc/model/cbi/clash/game-settings.lua +++ b/package/jsda/luci-app-clash/luasrc/model/cbi/clash/game-settings.lua @@ -9,9 +9,27 @@ local UTIL = require "luci.util" local fs = require "luci.clash" local uci = require "luci.model.uci".cursor() +font_red = [[]] +font_blue = [[]] +font_off = [[]] +bold_on = [[]] +bold_off = [[]] + m = Map(clash) m.pageaction = false +m.description=''..font_red..bold_on..translate("Usage Steps:")..bold_off..font_off..' ' +.."
" +..font_blue..bold_on..translate("1.Load Policy Group, make sure you have selected a config on config page")..bold_off..font_off..' ' +.."
" +..font_blue..bold_on..translate("2.Download the game rules you want to use from the game rules list on this page")..bold_off..font_off..' ' +.."
" +..font_blue..bold_on..translate("3. Make sure your game and servers support UDP")..bold_off..font_off..' ' +.."
" +..font_blue..bold_on..translate("4.Click on ADD, Set the corresponding policy group of the downloaded game rules and save, recommended: FallBack")..bold_off..font_off..' ' +.."
" +..font_blue..bold_on..translate("5.Select ClashTun Core type and start client")..bold_off..font_off..' ' + SYS.call("awk -F ',' '{print $1}' /usr/share/clash/rules/rules.list > /tmp/rules_name 2>/dev/null") file = io.open("/tmp/rules_name", "r"); diff --git a/package/jsda/luci-app-clash/luasrc/model/cbi/clash/import.lua b/package/jsda/luci-app-clash/luasrc/model/cbi/clash/import.lua index c0129d8ad6..1d6a47adc0 100644 --- a/package/jsda/luci-app-clash/luasrc/model/cbi/clash/import.lua +++ b/package/jsda/luci-app-clash/luasrc/model/cbi/clash/import.lua @@ -9,31 +9,31 @@ local fs = require "luci.clash" local http = luci.http local clash = "clash" +kk = Map(clash) +r = kk:section(TypedSection, "clash", translate("Auto Update Config")) +r.anonymous = true +kk.pageaction = false -kr = Map(clash) -s = kr:section(TypedSection, "clash", translate("Auto Update Config")) -s.anonymous = true -kr.pageaction = false - -o = s:option(Flag, "auto_update", translate("Auto Update")) +o = r:option(Flag, "auto_update", translate("Auto Update")) o.description = translate("Auto Update Server subscription") -o = s:option(ListValue, "auto_update_time", translate("Update time (every day)")) +o = r:option(ListValue, "auto_update_time", translate("Update time (every day)")) for t = 0,23 do o:value(t, t..":00") end o.default=0 o.description = translate("Daily Server subscription update time. Only update config in use") -o = s:option(Button, "Apply") +o = r:option(Button, "Apply") o.title = translate("Save & Apply") o.inputtitle = translate("Save & Apply") o.inputstyle = "apply" o.write = function() - kr.uci:commit("clash") + kk.uci:commit("clash") end +kr = Map(clash) s = kr:section(TypedSection, "clash", translate("Subscription Config")) s.anonymous = true kr.pageaction = false @@ -54,11 +54,6 @@ o.description = translate("Clash Subscription Address") o.rmempty = true o:depends("subcri", 'clash') -o = s:option(Value, "subscribe_url") -o.title = translate("Subcription Url") -o.description = translate("V2/SSR Subscription Address, Only input your subscription address without any api conversion url") -o.rmempty = true -o:depends("subcri", 'v2ssr2clash') o = s:option(Button,"update") o.title = translate("Download Config") @@ -72,6 +67,13 @@ o.write = function() end o:depends("subcri", 'clash') +o = s:option(Value, "subscribe_url") +o.title = translate("Subcription Url") +o.description = translate("V2/SSR Subscription Address, Only input your subscription address without any api conversion url") +o.rmempty = true +o:depends("subcri", 'v2ssr2clash') + + o = s:option(Button,"updatee") o.title = translate("Download Config") o.inputtitle = translate("Download Config") @@ -136,4 +138,4 @@ if luci.http.formvalue("upload") then end -return kr,ko \ No newline at end of file +return kr,kk,ko \ No newline at end of file diff --git a/package/jsda/luci-app-clash/luasrc/model/cbi/clash/log.lua b/package/jsda/luci-app-clash/luasrc/model/cbi/clash/log.lua index 85da79a304..e9c0985877 100644 --- a/package/jsda/luci-app-clash/luasrc/model/cbi/clash/log.lua +++ b/package/jsda/luci-app-clash/luasrc/model/cbi/clash/log.lua @@ -17,14 +17,6 @@ s.addremove=false log = s:option(TextValue, "clog") log.template = "clash/status_log" -o = s:option(Button,"log") -o.inputtitle = translate("Clear Logs") -o.write = function() - SYS.call('echo "0" > /usr/share/clash/logstatus_check 2>&1 &') - SYS.call('echo "" > /tmp/clash.txt 2>&1 &') - HTTP.redirect(DISP.build_url("admin", "services", "clash", "log")) -end - o = s:option(Button, "Download") o.inputtitle = translate("Download logs") o.inputstyle = "apply" diff --git a/package/jsda/luci-app-clash/luasrc/view/clash/status.htm b/package/jsda/luci-app-clash/luasrc/view/clash/status.htm index bc6a777524..ffa53e5996 100644 --- a/package/jsda/luci-app-clash/luasrc/view/clash/status.htm +++ b/package/jsda/luci-app-clash/luasrc/view/clash/status.htm @@ -10,7 +10,7 @@ - + @@ -154,22 +154,7 @@ var HTTP = { var logo = document.getElementById('_logo'); var conf = document.getElementById('_conf'); var conf_path = document.getElementById('_conf_path'); - XHR.poll(1, '<%=luci.dispatcher.build_url("admin", "services", "clash", "conf")%>', null, function(x, status) { - if ( x && x.status == 200 ) { - - if(status.typeconf==1){ - conf_path.innerHTML = status.conf_path ? '<%:SUBSCRIBE%> ' : '<%:NOT SELECTED%>'; - } - if(status.typeconf==2){ - conf_path.innerHTML = status.conf_path ? '<%:UPLOAD%>' : '<%:NOT SELECTED%>'; - } - if(status.typeconf==3){ - conf_path.innerHTML = status.conf_path ? '<%:CUSTOM%>' : '<%:NOT SELECTED%>'; - } - - - } - }); + XHR.poll(1, '<%=luci.dispatcher.build_url("admin", "services", "clash", "status")%>', null, function(x, status) { if ( x && x.status == 200 ) { @@ -178,8 +163,17 @@ var HTTP = { ip.innerHTML = status.localip ? ''+status.localip+' ' : '<%:NOT SET%>'; port.innerHTML = status.dash_port ? ''+status.dash_port+' ' : '<%:NOT SET%>'; secret.innerHTML = status.dash_pass ? ''+status.dash_pass+' ' : '<%:NOT SET%>'; - emode.innerHTML = status.e_mode ? ''+status.e_mode+' ' : '<%:NOT SET%>'; + emode.innerHTML = status.clash ? ''+status.e_mode+' ' : '<%:NOT RUNNING%>'; conf.innerHTML = status.clash ? '' : '<%:NOT RUNNING%>'; + if(status.typeconf==1){ + conf_path.innerHTML = status.clash ? '<%:SUBSCRIBE%> ' : '<%:NOT RUNNING%>'; + } + if(status.typeconf==2){ + conf_path.innerHTML = status.clash ? '<%:UPLOAD%>' : '<%:NOT RUNNING%>'; + } + if(status.typeconf==3){ + conf_path.innerHTML = status.clash ? '<%:CUSTOM%>' : '<%:NOT RUNNING%>'; + } IP.getIpifyIP(); IP.getIpipnetIP(); @@ -236,7 +230,7 @@ var HTTP = { position: fixed; z-index: 100; width: 70%; - height: 600px; + height: 650px; background: #FFFFFF; left: 20%; top: 15%; @@ -255,7 +249,7 @@ var HTTP = { .modals h3 { font-size: 14px; - color: #ffcc00; + color: red; background: transparent; margin: 0; padding: 0; @@ -265,7 +259,7 @@ var HTTP = { position: fixed; z-index: 100; width: 80%; - height: 500px; + height: 550px; background: #FFFFFF; left: 10%; top: 15%; @@ -305,10 +299,10 @@ var HTTP = {
- × -

<%:Config In Use%>

- -
+
× +

<%:If config does not show refresh page%>


+ +
diff --git a/package/jsda/luci-app-clash/po/zh-cn/clash.po b/package/jsda/luci-app-clash/po/zh-cn/clash.po index bba0161ea4..076bdffbf7 100644 --- a/package/jsda/luci-app-clash/po/zh-cn/clash.po +++ b/package/jsda/luci-app-clash/po/zh-cn/clash.po @@ -265,8 +265,8 @@ msgstr "国外网IP" msgid "clash" msgstr "clash" -msgid "OPEN DASHBOARD" -msgstr "打开外部控制" +msgid "DASHBOARD" +msgstr "外部控制" msgid "Clash Dashboard" msgstr "Clash外部控制" @@ -870,10 +870,10 @@ msgid "Update Rule" msgstr "点击更新规则" msgid "Game Rule Tag" -msgstr "游戏规则评论" +msgstr "游戏规则名字" msgid "Rule Tag" -msgstr "游戏评论" +msgstr "游戏名字" msgid "Edit Game Rule & Group" msgstr "编辑游戏规则策略组" @@ -915,4 +915,25 @@ msgid "VIEW CONFIG" msgstr "查看配置" msgid "View Config" -msgstr "查看配置" \ No newline at end of file +msgstr "查看配置" + +msgid "If config does not show refresh page" +msgstr "如果配置不显示刷新页" + +msgid "Usage Steps:" +msgstr "使用步骤:" + +msgid "1.Load Policy Group, make sure you have selected a config on config page" +msgstr "1. 加载策略组,确保已在配置页上选择配置。" + +msgid "2.Download the game rules you want to use from the game rules list on this page" +msgstr "2. 从该页的游戏规则列表中下载要使用的游戏规则。" + +msgid "3. Make sure your game and servers support UDP" +msgstr "3. 确保游戏和服务器支持UDP。" + +msgid "4.Click on ADD, Set the corresponding policy group of the downloaded game rules and save, recommended: FallBack" +msgstr "4. 单击添加,设置下载游戏规则的相应策略组(策略组类型建议:FallBack)。" + +msgid "5.Select ClashTun Core type and start client" +msgstr "5. 在客户端页选择ClashTun内核(https://github.com/comzyh/clash/releases)和启用游戏规则。" \ No newline at end of file diff --git a/package/jsda/luci-app-clash/root/etc/init.d/clash b/package/jsda/luci-app-clash/root/etc/init.d/clash index b2bc082522..737e9047f0 100755 --- a/package/jsda/luci-app-clash/root/etc/init.d/clash +++ b/package/jsda/luci-app-clash/root/etc/init.d/clash @@ -27,7 +27,7 @@ revert_dns() { rm -rf $CUSLIST $CUSLITT $CUSLISTV $CUSLITTV 2>/dev/null uci commit dhcp /etc/init.d/dnsmasq restart >/dev/null 2>&1 -#=========================================================================================================================== +#=========================================================================================================================== } add_cron(){ @@ -74,7 +74,6 @@ del_cron(){ select_config(){ #=========================================================================================================================== config_type=$(uci get clash.config.config_type 2>/dev/null) -lang=$(uci get luci.main.lang 2>/dev/null) if [ "${lang}" == "en" ] || [ $lang == "auto" ];then echo "Checking Config file..." >$REAL_LOG elif [ "${lang}" == "zh_cn" ];then @@ -130,7 +129,6 @@ game_rules() { yml_dns_change(){ #=========================================================================================================================== - lang=$(uci get luci.main.lang 2>/dev/null) dns_port=$(grep "^ \{0,\}listen:" $CONFIG_YAML |awk -F ':' '{print $3}' 2>/dev/null) dnsforwader=$(uci get clash.config.dnsforwader 2>/dev/null) dnscache=$(egrep '^ {0,}enhanced-mode' /etc/clash/config.yaml |grep enhanced-mode: |awk -F ': ' '{print $2}') @@ -293,42 +291,12 @@ rules(){ } -yml_sub(){ -#=========================================================================================================================== -subscribe_url=$(uci get clash.config.subscribe_url 2>/dev/null) -config_type=$(uci get clash.config.config_type 2>/dev/null) -subscri=$(uci get clash.config.subcri 2>/dev/null) -subscribe_url_clash=$(uci get clash.config.subscribe_url_clash 2>/dev/null) - -if [ "${config_type}" == "1" ];then -if [ "${subscri}" == "clash" ];then -if [ ! -f $CONFIG_YAML_PATH ] && [ ! -z "${subscribe_url_clash}" ];then - sh /usr/share/clash/clash.sh >>/tmp/clash.txt -elif [ -f $CONFIG_YAML_PATH ] && [ "$(ls -l $CONFIG_YAML_PATH | awk '{print int($5)}')" -eq 0 ] && [ ! -z "${subscribe_url_clash}" ];then - sh /usr/share/clash/clash.sh >>/tmp/clash.txt -fi -fi - -if [ "${subscri}" == "v2ssr2clash" ];then -if [ ! -f $CONFIG_YAML_PATH ] && [ ! -z "${subscribe_url}" ];then - sh /usr/share/clash/v2ssr.sh >>/tmp/clash.txt -elif [ -f $CONFIG_YAML_PATH ] && [ "$(ls -l $CONFIG_YAML_PATH | awk '{print int($5)}')" -eq 0 ] && [ ! -z "${subscribe_url}" ];then - sh /usr/share/clash/v2ssr.sh >>/tmp/clash.txt -fi -fi -fi -#=========================================================================================================================== -} - custom_list() { sh /usr/share/clash/list.sh >/dev/null 2>&1 } start(){ #=========================================================================================================================== -if pidof clash >/dev/null; then - kill $(pidof clash) >/dev/null 2>&1 || kill -9 $(ps | grep clash | grep -v grep | awk '{print $1}') >/dev/null 2>&1 -fi lang=$(uci get luci.main.lang 2>/dev/null) landns=$(uci get clash.config.landns 2>/dev/null) enable=$(uci get clash.config.enable 2>/dev/null) @@ -343,11 +311,6 @@ if [ "${enable}" -eq 1 ]; then fi sleep 2 - - sleep 2 - - yml_sub >/dev/null 2>&1 - select_config >/dev/null 2>&1 if [ "${core}" -eq 1 ] && [ ! -f /etc/clash/clash ]; then @@ -605,10 +568,6 @@ remove_mark(){ /etc/init.d/dnsmasq restart >/dev/null 2>&1 } -del_list() { - sh /usr/share/clash/del_servers.sh >/dev/null 2>&1 -} - stop(){ #=========================================================================================================================== delandns=$(uci get clash.config.delan 2>/dev/null) @@ -661,7 +620,7 @@ stop(){ fi kill -9 `pidof clash|sed "s/$//g"` 2>/dev/null - + sleep 1 if [ ! -z "${delandns}" ];then @@ -687,7 +646,7 @@ stop(){ elif [ "${lang}" == "zh_cn" ];then echo "重启 Dnsmasq 程序" >$REAL_LOG fi - del_list >/dev/null 2>&1 + revert_dns >/dev/null 2>&1 sleep 1 @@ -695,6 +654,11 @@ stop(){ echo "0" > /usr/share/clash/logstatus_check >/dev/null 2>&1 + rm -rf /etc/clash/*.yaml /etc/clash/*.yml >/dev/null 2>&1 + + mv /usr/share/clash/list.bak /usr/share/clash/server.list >/dev/null 2>&1 + + if [ "${lang}" == "en" ] || [ $lang == "auto" ];then echo " $(date "+%Y-%m-%d %H:%M:%S") - CLIENT IS DISABLED " >> /tmp/clash.txt echo "Client is Disabled " >$REAL_LOG @@ -706,6 +670,11 @@ stop(){ sleep 2 echo "Clash for OpenWRT" >$REAL_LOG fi + if pidof clash >/dev/null; then + kill $(pidof clash) >/dev/null 2>&1 || kill -9 $(ps | grep clash | grep -v grep | awk '{print $1}') >/dev/null 2>&1 + fi + + #=========================================================================================================================== } diff --git a/package/jsda/luci-app-clash/root/usr/share/clash/core_download.sh b/package/jsda/luci-app-clash/root/usr/share/clash/core_download.sh index 6aa431924e..442647d792 100755 --- a/package/jsda/luci-app-clash/root/usr/share/clash/core_download.sh +++ b/package/jsda/luci-app-clash/root/usr/share/clash/core_download.sh @@ -165,6 +165,9 @@ update(){ mv /tmp/clash /etc/clash/clashtun/clash >/dev/null 2>&1 rm -rf /usr/share/clash/tun_version >/dev/null 2>&1 mv /usr/share/clash/download_tun_version /usr/share/clash/tun_version >/dev/null 2>&1 + tun=$(sed -n 1p /usr/share/clash/tun_version 2>/dev/null) + sed -i "s/${tun}/v${tun}/g" /usr/share/clash/tun_version 2>&1 + if [ $lang == "zh_cn" ];then echo " ${LOGTIME} - ClashTun内核更新成功!" >$LOG_FILE @@ -200,7 +203,7 @@ if [ $CORETYPE -eq 1 ] && [ $VER != $CLASHVER ]; then update elif [ $CORETYPE -eq 2 ] && [ $VERR != $CLASHRVER ]; then update -elif [ $CORETYPE -eq 2 ] && [ $VERS != $CLASHTUN ]; then +elif [ $CORETYPE -eq 3 ] && [ $VERS != $CLASHTUN ]; then update else if [ $lang == "zh_cn" ];then diff --git a/package/jsda/luci-app-clash/root/usr/share/clash/custom_rule.yaml b/package/jsda/luci-app-clash/root/usr/share/clash/custom_rule.yaml index be9bb2843e..fbfe8a8d76 100644 --- a/package/jsda/luci-app-clash/root/usr/share/clash/custom_rule.yaml +++ b/package/jsda/luci-app-clash/root/usr/share/clash/custom_rule.yaml @@ -1,11 +1,4 @@ Rule: -- DOMAIN-SUFFIX,netflix.com,🎬Netflix -- DOMAIN-SUFFIX,netflix.net,🎬Netflix -- DOMAIN-SUFFIX,nflxext.com,🎬Netflix -- DOMAIN-SUFFIX,nflximg.com,🎬Netflix -- DOMAIN-SUFFIX,nflximg.net,🎬Netflix -- DOMAIN-SUFFIX,nflxso.net,🎬Netflix -- DOMAIN-SUFFIX,nflxvideo.net,🎬Netflix # (GlobalTV) # > ABC - DOMAIN-SUFFIX,edgedatg.com,📺GlobalTV diff --git a/package/jsda/luci-app-clash/root/usr/share/clash/del_servers.sh b/package/jsda/luci-app-clash/root/usr/share/clash/del_servers.sh deleted file mode 100755 index e89d2331e7..0000000000 --- a/package/jsda/luci-app-clash/root/usr/share/clash/del_servers.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash /etc/rc.common -. /lib/functions.sh - -del_address(){ -countt=$(grep -c '' /usr/share/clashbackup/address.list) -count_nums=1 -while [[ $count_nums -le $countt ]] -do -line=$(sed -n "$count_nums"p /usr/share/clashbackup/address.list) -check_addr=$(grep -F "$line" "/usr/share/clash/server.list") -line_no=$(grep -n "$check_addr" /usr/share/clash/server.list |awk -F ':' '{print $1}') -if [ ! -z $check_addr ];then -sed -i "${line_no}d" /usr/share/clash/server.list -fi -count_nums=$(( $count_nums + 1)) -done -rm -rf /usr/share/clashbackup/address.list >/dev/null 2>&1 -} -del_address >/dev/null 2>&1 \ No newline at end of file diff --git a/package/jsda/luci-app-clash/root/usr/share/clash/list.sh b/package/jsda/luci-app-clash/root/usr/share/clash/list.sh index 008c6bda92..ab72384a8e 100755 --- a/package/jsda/luci-app-clash/root/usr/share/clash/list.sh +++ b/package/jsda/luci-app-clash/root/usr/share/clash/list.sh @@ -2,7 +2,7 @@ . /lib/functions.sh dnsforwader=$(uci get clash.config.dnsforwader 2>/dev/null) - +cp /usr/share/clash/server.list /usr/share/clash/list.bak add_address(){ servers_get() { @@ -28,7 +28,7 @@ cat /usr/share/clashbackup/address.list /usr/share/clash/server.list > /usr/shar rm -rf /usr/share/clash/server.list mv /usr/share/clash/me.list /usr/share/clash/server.list chmod 755 /usr/share/clash/server.list -rm -rf /tmp/server.conf >/dev/null 2>&1 +rm -rf /tmp/server.conf /usr/share/clashbackup/address.list >/dev/null 2>&1 } if [ "${dnsforwader}" -eq 1 ];then add_address >/dev/null 2>&1
<%:Clash Client%><%:Collecting data...%>
<%:Clash Mode%><%:Collecting data...%>
<%:Clash Config%><%:Collecting data...%>
<%:Clash Config%><%:NOT RUNNING%>
<%:View Config%><%:Collecting data...%>
<%:Clash Dashboard%> <%:Collecting data...%>