module("luci.controller.adbyby", package.seeall) function index() if not nixio.fs.access("/etc/config/adbyby") then return end entry({"admin", "services", "adbyby"}, alias("admin", "services", "adbyby", "base"),_("ADBYBY Plus +"), 9).dependent = true entry({"admin", "services", "adbyby", "base"}, cbi("adbyby/base"), _("Base Setting"), 10).leaf=true entry({"admin", "services", "adbyby", "advanced"}, cbi("adbyby/advanced"), _("Advance Setting"), 20).leaf=true entry({"admin", "services", "adbyby", "help"}, form("adbyby/help"), _("Plus+ Domain List"), 30).leaf=true entry({"admin", "services", "adbyby", "esc"}, form("adbyby/esc"), _("Bypass Domain List"), 40).leaf=true entry({"admin", "services", "adbyby", "black"}, form("adbyby/black"), _("Block Domain List"), 50).leaf=true entry({"admin", "services", "adbyby", "block"}, form("adbyby/block"), _("Block IP List"), 60).leaf=true entry({"admin", "services", "adbyby", "user"}, form("adbyby/user"), _("User-defined Rule"), 70).leaf=true entry({"admin", "services", "adbyby", "refresh"}, call("refresh_data")) entry({"admin","services","adbyby","run"},call("act_status")).leaf=true end function act_status() local e={} e.running=luci.sys.call("pgrep adbyby >/dev/null")==0 luci.http.prepare_content("application/json") luci.http.write_json(e) end function refresh_data() local set =luci.http.formvalue("set") local icount =0 if set == "rule_data" then luci.sys.exec("/usr/share/adbyby/rule-update") icount = luci.sys.exec("/usr/share/adbyby/rule-count '/tmp/rules/'") if tonumber(icount)>0 then if nixio.fs.access("/usr/share/adbyby/rules/") then oldcount=luci.sys.exec("/usr/share/adbyby/rule-count '/usr/share/adbyby/rules/'") else oldcount=0 end else retstring ="-1" end if tonumber(icount) ~= tonumber(oldcount) then luci.sys.exec("rm -f /usr/share/adbyby/rules/data/* /usr/share/adbyby/rules/host/* && cp -a /tmp/rules /usr/share/adbyby/") luci.sys.exec("/etc/init.d/dnsmasq reload") retstring=tostring(math.ceil(tonumber(icount))) else retstring ="0" end else refresh_cmd="wget-ssl -q --no-check-certificate -O - 'https://easylist-downloads.adblockplus.org/easylistchina+easylist.txt' > /tmp/adnew.conf" sret=luci.sys.call(refresh_cmd .. " 2>/dev/null") if sret== 0 then luci.sys.call("/usr/share/adbyby/ad-update") icount = luci.sys.exec("cat /tmp/ad.conf | wc -l") if tonumber(icount)>0 then if nixio.fs.access("/usr/share/adbyby/dnsmasq.adblock") then oldcount=luci.sys.exec("cat /usr/share/adbyby/dnsmasq.adblock | wc -l") else oldcount=0 end if tonumber(icount) ~= tonumber(oldcount) then luci.sys.exec("cp -f /tmp/ad.conf /usr/share/adbyby/dnsmasq.adblock") luci.sys.exec("cp -f /tmp/ad.conf /tmp/etc/dnsmasq-adbyby.d/adblock") luci.sys.exec("/etc/init.d/dnsmasq reload") retstring=tostring(math.ceil(tonumber(icount))) else retstring ="0" end else retstring ="-1" end luci.sys.exec("rm -f /tmp/ad.conf") else retstring ="-1" end end luci.http.prepare_content("application/json") luci.http.write_json({ ret=retstring ,retcount=icount}) end