| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- -- Copyright (C) 2017 yushi studio <[email protected]>
- -- Licensed to the public under the GNU General Public License v3.
- require "nixio.fs"
- require "luci.sys"
- require "luci.model.uci"
- local m, s, o
- local redir_run=0
- local reudp_run=0
- local sock5_run=0
- local server_run=0
- local kcptun_run=0
- local tunnel_run=0
- local gfw_count=0
- local ad_count=0
- local ip_count=0
- local nfip_count=0
- local uci = luci.model.uci.cursor()
- local shadowsocksr = "shadowsocksr"
- -- html constants
- font_blue = [[<font color="green">]]
- font_off = [[</font>]]
- bold_on = [[<strong>]]
- bold_off = [[</strong>]]
- local kcptun_version=translate("Unknown")
- local kcp_file="/usr/bin/kcptun-client"
- if not nixio.fs.access(kcp_file) then
- kcptun_version=translate("Not exist")
- else
- if not nixio.fs.access(kcp_file, "rwx", "rx", "rx") then
- nixio.fs.chmod(kcp_file, 755)
- end
- kcptun_version=luci.sys.exec(kcp_file .. " -v | awk '{printf $3}'")
- if not kcptun_version or kcptun_version == "" then
- kcptun_version = translate("Unknown")
- end
- end
- if nixio.fs.access("/etc/ssr/gfw_list.conf") then
- gfw_count = tonumber(luci.sys.exec("cat /etc/ssr/gfw_list.conf | wc -l"))/2
- end
- if nixio.fs.access("/etc/ssr/ad.conf") then
- ad_count = tonumber(luci.sys.exec("cat /etc/ssr/ad.conf | wc -l"))
- end
- if nixio.fs.access("/etc/ssr/china_ssr.txt") then
- ip_count = tonumber(luci.sys.exec("cat /etc/ssr/china_ssr.txt | wc -l"))
- end
- if nixio.fs.access("/etc/ssr/netflixip.list") then
- nfip_count = tonumber(luci.sys.exec("cat /etc/ssr/netflixip.list | wc -l"))
- end
- local icount=luci.sys.exec("busybox ps -w | grep ssr-reudp |grep -v grep| wc -l")
- if tonumber(icount)>0 then
- reudp_run=1
- else
- icount=luci.sys.exec("busybox ps -w | grep ssr-retcp |grep \"\\-u\"|grep -v grep| wc -l")
- if tonumber(icount)>0 then
- reudp_run=1
- end
- end
- if luci.sys.call("busybox ps -w | grep ssr-retcp | grep -v grep >/dev/null") == 0 then
- redir_run=1
- end
- if luci.sys.call("busybox ps -w | grep ssr-local | grep -v ssr-socksdns |grep -v grep >/dev/null") == 0 then
- sock5_run=1
- end
- if luci.sys.call("pidof kcptun-client >/dev/null") == 0 then
- kcptun_run=1
- end
- if luci.sys.call("busybox ps -w | grep ssr-server | grep -v grep >/dev/null") == 0 then
- server_run=1
- end
- -- if luci.sys.call("busybox ps -w | grep ssr-tunnel |grep -v grep >/dev/null") == 0 then
- -- tunnel_run=1
- -- end
- if luci.sys.call("pidof pdnsd >/dev/null") == 0 or (luci.sys.call("busybox ps -w | grep ssr-dns |grep -v grep >/dev/null") == 0 and luci.sys.call("pidof dns2socks >/dev/null") == 0)then
- pdnsd_run=1
- end
- m = SimpleForm("Version")
- m.reset = false
- m.submit = false
- s=m:field(DummyValue,"redir_run",translate("Global Client"))
- s.rawhtml = true
- if redir_run == 1 then
- s.value =font_blue .. bold_on .. translate("Running") .. bold_off .. font_off
- else
- s.value = translate("Not Running")
- end
- s=m:field(DummyValue,"reudp_run",translate("Game Mode UDP Relay"))
- s.rawhtml = true
- if reudp_run == 1 then
- s.value =font_blue .. bold_on .. translate("Running") .. bold_off .. font_off
- else
- s.value = translate("Not Running")
- end
- if uci:get_first(shadowsocksr, 'global', 'pdnsd_enable', '0') ~= '0' then
- s=m:field(DummyValue,"pdnsd_run",translate("DNS Anti-pollution"))
- s.rawhtml = true
- if pdnsd_run == 1 then
- s.value =font_blue .. bold_on .. translate("Running") .. bold_off .. font_off
- else
- s.value = translate("Not Running")
- end
- end
- s=m:field(DummyValue,"sock5_run",translate("Global SOCKS5 Proxy Server"))
- s.rawhtml = true
- if sock5_run == 1 then
- s.value =font_blue .. bold_on .. translate("Running") .. bold_off .. font_off
- else
- s.value = translate("Not Running")
- end
- s=m:field(DummyValue,"server_run",translate("Local Servers"))
- s.rawhtml = true
- if server_run == 1 then
- s.value =font_blue .. bold_on .. translate("Running") .. bold_off .. font_off
- else
- s.value = translate("Not Running")
- end
- if nixio.fs.access("/usr/bin/kcptun-client") then
- s=m:field(DummyValue,"kcp_version",translate("KcpTun Version"))
- s.rawhtml = true
- s.value =kcptun_version
- s=m:field(DummyValue,"kcptun_run",translate("KcpTun"))
- s.rawhtml = true
- if kcptun_run == 1 then
- s.value =font_blue .. bold_on .. translate("Running") .. bold_off .. font_off
- else
- s.value = translate("Not Running")
- end
- end
- s=m:field(DummyValue,"google",translate("Google Connectivity"))
- s.value = translate("No Check")
- s.template = "shadowsocksr/check"
- s=m:field(DummyValue,"baidu",translate("Baidu Connectivity"))
- s.value = translate("No Check")
- s.template = "shadowsocksr/check"
- s=m:field(DummyValue,"gfw_data",translate("GFW List Data"))
- s.rawhtml = true
- s.template = "shadowsocksr/refresh"
- s.value = gfw_count .. " " .. translate("Records")
- s=m:field(DummyValue,"ip_data",translate("China IP Data"))
- s.rawhtml = true
- s.template = "shadowsocksr/refresh"
- s.value = ip_count .. " " .. translate("Records")
- s=m:field(DummyValue,"nfip_data",translate("Netflix IP Data"))
- s.rawhtml = true
- s.template = "shadowsocksr/refresh"
- s.value = nfip_count .. " " .. translate("Records")
- if uci:get_first(shadowsocksr, 'global', 'adblock', '0') == '1' then
- s=m:field(DummyValue,"ad_data",translate("Advertising Data"))
- s.rawhtml = true
- s.template = "shadowsocksr/refresh"
- s.value = ad_count .. " " .. translate("Records")
- end
- s=m:field(DummyValue,"check_port",translate("Check Server Port"))
- s.template = "shadowsocksr/checkport"
- s.value =translate("No Check")
- return m
|