From 0740c832682aa743488efb037e777aee40581b40 Mon Sep 17 00:00:00 2001 From: LEAN-ESX Date: Mon, 9 Mar 2020 23:52:48 -0700 Subject: [PATCH] luci-app-adbyby-plus: refactoring new version --- package/lean/adbyby/Makefile | 4 +- package/lean/adbyby/files/adbybyfirst.sh | 11 -- package/lean/adbyby/files/adbybyupdate.sh | 11 -- package/lean/luci-app-adbyby-plus/Makefile | 2 +- .../luasrc/controller/adbyby.lua | 8 +- .../luasrc/model/cbi/adbyby.lua | 167 ------------------ .../luasrc/model/cbi/adbyby/advanced.lua | 28 +++ .../luasrc/model/cbi/adbyby/base.lua | 70 ++++++++ .../luasrc/model/cbi/adbyby/help.lua | 24 +++ .../luci-app-adbyby-plus/po/zh-cn/adbyby.po | 13 +- .../root/etc/init.d/adbyby | 8 +- .../root/etc/uci-defaults/adbyby | 2 +- .../root/usr/share/adbyby/adbybyfirst.sh | 4 + .../root/usr/share/adbyby/adbybyupdate.sh | 48 +++++ 14 files changed, 197 insertions(+), 203 deletions(-) delete mode 100755 package/lean/adbyby/files/adbybyfirst.sh delete mode 100755 package/lean/adbyby/files/adbybyupdate.sh delete mode 100644 package/lean/luci-app-adbyby-plus/luasrc/model/cbi/adbyby.lua create mode 100644 package/lean/luci-app-adbyby-plus/luasrc/model/cbi/adbyby/advanced.lua create mode 100644 package/lean/luci-app-adbyby-plus/luasrc/model/cbi/adbyby/base.lua create mode 100644 package/lean/luci-app-adbyby-plus/luasrc/model/cbi/adbyby/help.lua create mode 100755 package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adbybyfirst.sh create mode 100755 package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adbybyupdate.sh diff --git a/package/lean/adbyby/Makefile b/package/lean/adbyby/Makefile index 5082ed88a..21c782d6b 100644 --- a/package/lean/adbyby/Makefile +++ b/package/lean/adbyby/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=adbyby PKG_VERSION:=2.7 -PKG_RELEASE:=20200308 +PKG_RELEASE:=20200310 include $(INCLUDE_DIR)/package.mk @@ -61,8 +61,6 @@ endef define Package/$(PKG_NAME)/install $(INSTALL_DIR) $(1)/usr/share/adbyby $(INSTALL_BIN) ./files/adbyby.sh $(1)/usr/share/adbyby/ - $(INSTALL_BIN) ./files/adbybyfirst.sh $(1)/usr/share/adbyby/ - $(INSTALL_BIN) ./files/adbybyupdate.sh $(1)/usr/share/adbyby/ $(INSTALL_CONF) ./files/adhook.ini $(1)/usr/share/adbyby/ $(INSTALL_CONF) ./files/user.action $(1)/usr/share/adbyby/ diff --git a/package/lean/adbyby/files/adbybyfirst.sh b/package/lean/adbyby/files/adbybyfirst.sh deleted file mode 100755 index c677d1bec..000000000 --- a/package/lean/adbyby/files/adbybyfirst.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -PROG_PATH=/usr/share/adbyby -if [ -z "$(dnsmasq --version | grep no-ipset)" ]; then - [ $(uci get adbyby.@adbyby[-1].wan_mode) -ne 2 ] && \ - [ $(awk -F= '/^ipset/{print $2}' $PROG_PATH/adhook.ini) -eq 1 ] && \ - { - sed -i 's/adbyby_list/adbyby_wan/' /tmp/adbyby_host.conf - echo conf-file=/tmp/adbyby_host.conf >> /etc/dnsmasq.conf - /etc/init.d/dnsmasq restart - } -fi diff --git a/package/lean/adbyby/files/adbybyupdate.sh b/package/lean/adbyby/files/adbybyupdate.sh deleted file mode 100755 index bdde944a2..000000000 --- a/package/lean/adbyby/files/adbybyupdate.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -PROG_PATH=/usr/share/adbyby -if [ -z "$(dnsmasq --version | grep no-ipset)" ]; then - [ $(uci get adbyby.@adbyby[-1].wan_mode) -ne 2 ] && \ - [ $(awk -F= '/^ipset/{print $2}' $PROG_PATH/adhook.ini) -eq 1 ] && \ - { - sed -i 's/adbyby_list/adbyby_wan/' /tmp/adbyby_host.conf - ipset -F adbyby_wan 2>/dev/null - /etc/init.d/dnsmasq restart - } -fi diff --git a/package/lean/luci-app-adbyby-plus/Makefile b/package/lean/luci-app-adbyby-plus/Makefile index c3f7246bc..0425f1471 100644 --- a/package/lean/luci-app-adbyby-plus/Makefile +++ b/package/lean/luci-app-adbyby-plus/Makefile @@ -10,7 +10,7 @@ LUCI_DEPENDS:=+adbyby +wget +ipset +dnsmasq-full LUCI_PKGARCH:=all PKG_NAME:=luci-app-adbyby-plus PKG_VERSION:=2.0 -PKG_RELEASE:=46 +PKG_RELEASE:=48 include $(TOPDIR)/feeds/luci/luci.mk diff --git a/package/lean/luci-app-adbyby-plus/luasrc/controller/adbyby.lua b/package/lean/luci-app-adbyby-plus/luasrc/controller/adbyby.lua index 9d986d344..21fbf7fc2 100644 --- a/package/lean/luci-app-adbyby-plus/luasrc/controller/adbyby.lua +++ b/package/lean/luci-app-adbyby-plus/luasrc/controller/adbyby.lua @@ -6,7 +6,13 @@ function index() return end - entry({"admin", "services", "adbyby"}, cbi("adbyby"), _("ADBYBY Plus +"), 10).dependent = true + 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","status"},call("act_status")).leaf=true end diff --git a/package/lean/luci-app-adbyby-plus/luasrc/model/cbi/adbyby.lua b/package/lean/luci-app-adbyby-plus/luasrc/model/cbi/adbyby.lua deleted file mode 100644 index 037ae3e87..000000000 --- a/package/lean/luci-app-adbyby-plus/luasrc/model/cbi/adbyby.lua +++ /dev/null @@ -1,167 +0,0 @@ - -local NXFS = require "nixio.fs" -local SYS = require "luci.sys" -local HTTP = require "luci.http" -local DISP = require "luci.dispatcher" - -local DL = SYS.exec("head -1 /tmp/adbyby/data/lazy.txt | awk -F' ' '{print $3,$4}'") or "" -local DV = SYS.exec("head -1 /tmp/adbyby/data/video.txt | awk -F' ' '{print $3,$4}'") or "" -local NR = SYS.exec("grep -v '^!' /usr/share/adbyby/data/rules.txt | wc -l") -local NU = SYS.exec("cat /usr/share/adbyby/data/user.txt | wc -l") -local UD = NXFS.readfile("/tmp/adbyby.updated") or "1970-01-01 00:00:00" -local ND = SYS.exec("cat /usr/share/adbyby/dnsmasq.adblock | wc -l") - -m = Map("adbyby") -m.title = translate("Adbyby Plus +") -m.description = translate("Adbyby Plus + can filter all kinds of banners, popups, video ads, and prevent tracking, privacy theft and a variety of malicious websites
Plus + version combination mode can operation with Adblock Plus Host,filtering ads without losing bandwidth") - -m:section(SimpleSection).template = "adbyby/adbyby_status" - -s = m:section(TypedSection, "adbyby") -s.anonymous = true - -s:tab("basic", translate("Base Setting")) - -o = s:taboption("basic", Flag, "enable") -o.title = translate("Enable") -o.default = 0 -o.rmempty = false - -o = s:taboption("basic", ListValue, "wan_mode") -o.title = translate("Running Mode") -o:value("0", translate("Global Mode(The slowest, the best effects)")) -o:value("1", translate("Plus + Mode(Filter domain name list and blacklist website.Recommended)")) -o:value("2", translate("No filter Mode (Must set in Client Filter Mode Settings manually)")) -o.default = 1 -o.rmempty = false - -o = s:taboption("basic", Button, "restart") -o.title = translate("Adbyby and Rule state") -o.inputtitle = translate("Restart Adbyby") -o.description = string.format(""..translate("Last Update Checked")..": %s
"..translate("Lazy Rule")..":%s
"..translate("Video Rule")..":%s", UD, DL, DV) -o.inputstyle = "reload" -o.write = function() - SYS.call("rm -rf /tmp/adbyby.updated && /usr/share/adbyby/admem.sh > /tmp/adupdate.log 2>&1 &") - SYS.call("sleep 5") - HTTP.redirect(DISP.build_url("admin", "services", "adbyby")) -end - -s:tab("advanced", translate("Advance Setting")) - -o = s:taboption("advanced", Flag, "cron_mode") -o.title = translate("Update the rule at 6 a.m. every morning and restart adbyby") -o.default = 0 -o.rmempty = false -o.description = translate(string.format("Adblock Plus Host List: %s Lines

", ND)) - -updatead = s:taboption("advanced", Button, "updatead", translate("Manually force update
Adblock Plus Host List"), translate("Note: It needs to download and convert the rules. The background process may takes 60-120 seconds to run.
After completed it would automatically refresh, please do not duplicate click!")) -updatead.inputtitle = translate("Manually force update") -updatead.inputstyle = "apply" -updatead.write = function() - SYS.call("nohup sh /usr/share/adbyby/adblock.sh > /tmp/adupdate.log 2>&1 &") -end - -o = s:taboption("advanced", Flag, "block_ios") -o.title = translate("Block Apple iOS OTA update") -o.default = 0 -o.rmempty = false - -s:tab("help", translate("Plus+ Domain List")) - -local conf = "/usr/share/adbyby/adhost.conf" -o = s:taboption("help", TextValue, "conf") -o.description = translate("(!)Note that you should fill to the domain name ONLY. For example, http://www.baidu.com only needs to write to baidu.com. One line for each") -o.rows = 13 -o.wrap = "off" -o.cfgvalue = function(self, section) - return NXFS.readfile(conf) or "" -end -o.write = function(self, section, value) - NXFS.writefile(conf, value:gsub("\r\n", "\n")) - --SYS.call("/etc/init.d/adbyby restart") -end - -s:tab("esc", translate("Bypass Domain List")) - -local escconf = "/usr/share/adbyby/adesc.conf" -o = s:taboption("esc", TextValue, "escconf") -o.description = translate("(!)Will Never filter these Domain") -o.rows = 13 -o.wrap = "off" -o.cfgvalue = function(self, section) - return NXFS.readfile(escconf) or "" -end -o.write = function(self, section, value) - NXFS.writefile(escconf, value:gsub("\r\n", "\n")) - --SYS.call("/etc/init.d/adbyby restart") -end - -s:tab("black", translate("Black Domain List")) - -local blackconf = "/usr/share/adbyby/adblack.conf" -o = s:taboption("black", TextValue, "blackconf") -o.description = translate("(!)Will Always block these Domain") -o.rows = 13 -o.wrap = "off" -o.cfgvalue = function(self, section) - return NXFS.readfile(blackconf) or "" -end -o.write = function(self, section, value) - NXFS.writefile(blackconf, value:gsub("\r\n", "\n")) - --SYS.call("/etc/init.d/adbyby restart") -end - -s:tab("block", translate("Black IP List")) - -local blockconf = "/usr/share/adbyby/blockip.conf" -o = s:taboption("block", TextValue, "blockconf") -o.description = translate("(!)Will Always block these IP") -o.rows = 13 -o.wrap = "off" -o.cfgvalue = function(self, section) - return NXFS.readfile(blockconf) or " " -end -o.write = function(self, section, value) - NXFS.writefile(blockconf, value:gsub("\r\n", "\n")) - --SYS.call("/etc/init.d/adbyby restart") -end - -s:tab("user", translate("User-defined Rule")) - -local file = "/usr/share/adbyby/rules.txt" -o = s:taboption("user", TextValue, "rules") -o.description = translate("Each line of the beginning exclamation mark is considered an annotation.") -o.rows = 13 -o.wrap = "off" -o.cfgvalue = function(self, section) - return NXFS.readfile(file) or "" -end -o.write = function(self, section, value) - NXFS.writefile(file, value:gsub("\r\n", "\n")) -end - -t=m:section(TypedSection,"acl_rule",translate("Client Filter Mode Settings"), -translate("Filter mode settings can be set to specific LAN clients ( No filter , Global filter ) . Does not need to be set by default.")) -t.template="cbi/tblsection" -t.sortable=true -t.anonymous=true -t.addremove=true - -e=t:option(Value,"ipaddr",translate("IP Address")) -e.width="40%" -e.datatype="ip4addr" -e.placeholder="0.0.0.0/0" -luci.ip.neighbors({ family = 4 }, function(entry) - if entry.reachable then - e:value(entry.dest:string()) - end -end) - -e=t:option(ListValue,"filter_mode",translate("Filter Mode")) -e.width="40%" -e.default="disable" -e.rmempty=false -e:value("disable",translate("No filter")) -e:value("global",translate("Global filter")) - -return m diff --git a/package/lean/luci-app-adbyby-plus/luasrc/model/cbi/adbyby/advanced.lua b/package/lean/luci-app-adbyby-plus/luasrc/model/cbi/adbyby/advanced.lua new file mode 100644 index 000000000..4c65221b6 --- /dev/null +++ b/package/lean/luci-app-adbyby-plus/luasrc/model/cbi/adbyby/advanced.lua @@ -0,0 +1,28 @@ + +local SYS = require "luci.sys" +local ND = SYS.exec("cat /usr/share/adbyby/dnsmasq.adblock | wc -l") + +m = Map("adbyby") + +s = m:section(TypedSection, "adbyby") +s.anonymous = true + +o = s:option(Flag, "cron_mode") +o.title = translate("Update the rule at 6 a.m. every morning and restart adbyby") +o.default = 0 +o.rmempty = false +o.description = string.format(""..translate("ADP Host List")..": %s", ND) + +updatead = s:option(Button, "updatead", translate("Manually force update
Adblock Plus Host List"), translate("Note: It needs to download and convert the rules. The background process may takes 60-120 seconds to run.
After completed it would automatically refresh, please do not duplicate click!")) +updatead.inputtitle = translate("Manually force update") +updatead.inputstyle = "apply" +updatead.write = function() + SYS.call("sh /usr/share/adbyby/adblock.sh > /tmp/adupdate.log 2>&1 &") +end + +o = s:option(Flag, "block_ios") +o.title = translate("Block Apple iOS OTA update") +o.default = 0 +o.rmempty = false + +return m \ No newline at end of file diff --git a/package/lean/luci-app-adbyby-plus/luasrc/model/cbi/adbyby/base.lua b/package/lean/luci-app-adbyby-plus/luasrc/model/cbi/adbyby/base.lua new file mode 100644 index 000000000..8eaad226a --- /dev/null +++ b/package/lean/luci-app-adbyby-plus/luasrc/model/cbi/adbyby/base.lua @@ -0,0 +1,70 @@ +local NXFS = require "nixio.fs" +local SYS = require "luci.sys" +local HTTP = require "luci.http" +local DISP = require "luci.dispatcher" + +local DL = SYS.exec("head -1 /tmp/adbyby/data/lazy.txt | awk -F' ' '{print $3,$4}'") or "" +local DV = SYS.exec("head -1 /tmp/adbyby/data/video.txt | awk -F' ' '{print $3,$4}'") or "" +local NR = SYS.exec("grep -v '^!' /usr/share/adbyby/data/rules.txt | wc -l") +local NU = SYS.exec("cat /usr/share/adbyby/data/user.txt | wc -l") +local UD = NXFS.readfile("/tmp/adbyby.updated") or "1970-01-01 00:00:00" +local ND = SYS.exec("cat /usr/share/adbyby/dnsmasq.adblock | wc -l") + +m = Map("adbyby") +m.title = translate("Adbyby Plus +") +m.description = translate("Adbyby Plus + can filter all kinds of banners, popups, video ads, and prevent tracking, privacy theft and a variety of malicious websites
Plus + version combination mode can operation with Adblock Plus Host,filtering ads without losing bandwidth") + +m:section(SimpleSection).template = "adbyby/adbyby_status" + +s = m:section(TypedSection, "adbyby") +s.anonymous = true + +o = s:option(Flag, "enable") +o.title = translate("Enable") +o.default = 0 +o.rmempty = false + +o = s:option(ListValue, "wan_mode") +o.title = translate("Running Mode") +o:value("0", translate("Global Mode (The slowest and the best effects)")) +o:value("1", translate("Plus + Mode (Filter domain name list and blacklist website.Recommended)")) +o:value("2", translate("No filter Mode (Must set in Client Filter Mode Settings manually)")) +o.default = 1 +o.rmempty = false + +o = s:option(Button, "restart") +o.title = translate("Adbyby and Rule state") +o.inputtitle = translate("Update Adbyby Rules Manually") +o.description = string.format(""..translate("Last Update Checked")..": %s
"..translate("Lazy Rule")..":%s
"..translate("Video Rule")..":%s", UD, DL, DV) +o.inputstyle = "reload" +o.write = function() + SYS.call("rm -rf /tmp/adbyby.updated /tmp/adbyby/admd5.json && /usr/share/adbyby/adbybyupdate.sh > /tmp/adupdate.log 2>&1 &") + SYS.call("sleep 5") + HTTP.redirect(DISP.build_url("admin", "services", "adbyby")) +end + +t=m:section(TypedSection,"acl_rule",translate("Client Filter Mode Settings"), +translate("Filter mode settings can be set to specific LAN clients ( No filter , Global filter ) . Does not need to be set by default.")) +t.template="cbi/tblsection" +t.sortable=true +t.anonymous=true +t.addremove=true + +e=t:option(Value,"ipaddr",translate("IP Address")) +e.width="40%" +e.datatype="ip4addr" +e.placeholder="0.0.0.0/0" +luci.ip.neighbors({ family = 4 }, function(entry) + if entry.reachable then + e:value(entry.dest:string()) + end +end) + +e=t:option(ListValue,"filter_mode",translate("Filter Mode")) +e.width="40%" +e.default="disable" +e.rmempty=false +e:value("disable",translate("No filter")) +e:value("global",translate("Global filter")) + +return m \ No newline at end of file diff --git a/package/lean/luci-app-adbyby-plus/luasrc/model/cbi/adbyby/help.lua b/package/lean/luci-app-adbyby-plus/luasrc/model/cbi/adbyby/help.lua new file mode 100644 index 000000000..5469d6186 --- /dev/null +++ b/package/lean/luci-app-adbyby-plus/luasrc/model/cbi/adbyby/help.lua @@ -0,0 +1,24 @@ +local fs = require "nixio.fs" +local conffile = "/usr/share/adbyby/adhost.conf" + +f = SimpleForm("custom") + +t = f:field(TextValue, "conf") +t.rmempty = true +t.rows = 13 +function t.cfgvalue() + return fs.readfile(conffile) or "" +end + +function f.handle(self, state, data) + if state == FORM_VALID then + if data.conf then + fs.writefile(conffile, data.conf:gsub("\r\n", "\n")) + luci.sys.call("/etc/init.d/adbyby restart") + end + end + return true +end + +return f + diff --git a/package/lean/luci-app-adbyby-plus/po/zh-cn/adbyby.po b/package/lean/luci-app-adbyby-plus/po/zh-cn/adbyby.po index e1274dc54..9f80d9e3f 100644 --- a/package/lean/luci-app-adbyby-plus/po/zh-cn/adbyby.po +++ b/package/lean/luci-app-adbyby-plus/po/zh-cn/adbyby.po @@ -7,7 +7,7 @@ msgstr "广告屏蔽大师 Plus + 正在运行Adbyby Plus + is Not Running" msgstr "广告屏蔽大师 Plus + 没有运行" -msgid "Adbyby Plus + can filter all kinds of banners, popups, video ads, and prevent tracking, privacy theft and a variety of malicious websites
Plus + version combination mode can operation with Adblock Plus Host,filtering ads without losing bandwidth" +msgid "Adbyby Plus + can filter all kinds of banners, popups, video ads, and prevent tracking, privacy theft and a variety of malicious websites
Plus + version combination mode can operation with Adblock Plus Host,filtering ads without losing bandwidth" msgstr "广告屏蔽大师 Plus + 可以全面过滤各种横幅、弹窗、视频广告,同时阻止跟踪、隐私窃取及各种恶意网站
Plus + 版本可以和 Adblock Plus Host 结合方式运行,过滤广告不损失带宽" msgid "Adbyby Plus +" @@ -19,10 +19,10 @@ msgstr "基本设置" msgid "Running Mode" msgstr "运行模式" -msgid "Global Mode(The slowest, the best effects)" +msgid "Global Mode (The slowest and the best effects)" msgstr "全局模式(最慢, 效果最好)" -msgid "Plus + Mode(Filter domain name list and blacklist website.Recommended)" +msgid "Plus + Mode (Filter domain name list and blacklist website.Recommended)" msgstr "Plus + 模式(只过滤列表内域名结合ABP名单。推荐!)" msgid "No filter Mode (Must set in Client Filter Mode Settings manually)" @@ -62,11 +62,14 @@ msgstr "高级设置" msgid "Update the rule at 6 a.m. every morning and restart adbyby" msgstr "每天凌晨6点更新规则并重启" +msgid "ADP Host List" +msgstr "Adblock Plus Hosts 记录数" + msgid "Manually force update
Adblock Plus Host List" msgstr "手动强制更新
Adblock Plus Host List" -msgid "Manually force update" -msgstr "手动强制更新" +msgid "Update Adbyby Rules Manually" +msgstr "手动更新规则" msgid "Block Apple iOS OTA update" msgstr "拦截 Apple iOS 的OTA更新" diff --git a/package/lean/luci-app-adbyby-plus/root/etc/init.d/adbyby b/package/lean/luci-app-adbyby-plus/root/etc/init.d/adbyby index 34c440bef..64a6fe9ff 100755 --- a/package/lean/luci-app-adbyby-plus/root/etc/init.d/adbyby +++ b/package/lean/luci-app-adbyby-plus/root/etc/init.d/adbyby @@ -134,6 +134,9 @@ add_rule() fi $ipt_n -A ADBYBY -p tcp -j REDIRECT --to-ports 8118 $ipt_n -I PREROUTING -p tcp --dport 80 -j ADBYBY + + mkdir -p /var/etc + echo -e "/etc/init.d/adbyby reload_rule" > "/var/etc/adbyby.include" } del_rule() @@ -156,8 +159,8 @@ reload_rule() config_load adbyby config_foreach get_config adbyby del_rule - iptables-save | grep ADBYBY >/dev/null || \ - add_rule + [ $enable -eq 0 ] && exit 0 + iptables-save | grep ADBYBY >/dev/null || add_rule } start() @@ -167,7 +170,6 @@ start() [ $enable -eq 0 ] && exit 0 add_cron [ ! -d "/tmp/adbyby/data" ] && cp -a /usr/share/adbyby /tmp/ && rm -f /tmp/adbyby.updated - /usr/share/adbyby/admem.sh &>/dev/null & add_rules /tmp/adbyby/adbyby &>/dev/null & add_dns diff --git a/package/lean/luci-app-adbyby-plus/root/etc/uci-defaults/adbyby b/package/lean/luci-app-adbyby-plus/root/etc/uci-defaults/adbyby index 30d429cb8..33cfa4787 100755 --- a/package/lean/luci-app-adbyby-plus/root/etc/uci-defaults/adbyby +++ b/package/lean/luci-app-adbyby-plus/root/etc/uci-defaults/adbyby @@ -8,7 +8,7 @@ uci -q batch <<-EOF >/dev/null delete firewall.adbyby set firewall.adbyby=include set firewall.adbyby.type=script - set firewall.adbyby.path=/usr/share/adbyby/firewall.include + set firewall.adbyby.path=/var/etc/adbyby.include set firewall.adbyby.reload=1 delete firewall.adblock add firewall rule diff --git a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adbybyfirst.sh b/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adbybyfirst.sh new file mode 100755 index 000000000..532fe182d --- /dev/null +++ b/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adbybyfirst.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +PROG_PATH=$(pwd) +$PROG_PATH/adbybyupdate.sh diff --git a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adbybyupdate.sh b/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adbybyupdate.sh new file mode 100755 index 000000000..bd55c7289 --- /dev/null +++ b/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adbybyupdate.sh @@ -0,0 +1,48 @@ +#!/bin/sh + +if [ ! -f "/tmp/adbyby.updated" ];then + wget_ok="0" + while [ "$wget_ok" = "0" ] + do + wget-ssl --spider --quiet --tries=1 --timeout=3 www.baidu.com + if [ "$?" == "0" ]; then + wget_ok="1" + + touch /tmp/md5.json && wget-ssl --no-check-certificate -t 1 -T 10 -O /tmp/md5.json https://adbyby.coding.net/p/xwhyc-rules/d/xwhyc-rules/git/raw/master/md5.json + adm5=$(md5sum /tmp/md5.json | awk -F' ' '{print $1}') + touch /tmp/adbyby/admd5.json && bmd5=$(md5sum /tmp/adbyby/admd5.json | awk -F' ' '{print $1}') + if [ "$adm5" == "$bmd5" ];then + echo "Rules MD5 are the same!" + echo $(date "+%Y-%m-%d %H:%M:%S") > /tmp/adbyby.updated + exit 0 + else + + touch /tmp/lazy.txt && wget-ssl --no-check-certificate -t 1 -T 10 -O /tmp/lazy.txt https://adbyby.coding.net/p/xwhyc-rules/d/xwhyc-rules/git/raw/master/lazy.txt + touch /tmp/video.txt && wget-ssl --no-check-certificate -t 1 -T 10 -O /tmp/video.txt https://adbyby.coding.net/p/xwhyc-rules/d/xwhyc-rules/git/raw/master/video.txt + + touch /tmp/local-md5.json && md5sum /tmp/lazy.txt /tmp/video.txt > /tmp/local-md5.json + + + lazy_local=$(grep 'lazy' /tmp/local-md5.json | awk -F' ' '{print $1}') + video_local=$(grep 'video' /tmp/local-md5.json | awk -F' ' '{print $1}') + lazy_online=$(sed 's/":"/\n/g' /tmp/md5.json | sed 's/","/\n/g' | sed -n '2p') + video_online=$(sed 's/":"/\n/g' /tmp/md5.json | sed 's/","/\n/g' | sed -n '4p') + + if [ "$lazy_online"x == "$lazy_local"x -a "$video_online"x == "$video_local"x ]; then + echo "adbyby rules MD5 OK!" + mv /tmp/lazy.txt /tmp/adbyby/data/lazy.txt + mv /tmp/video.txt /tmp/adbyby/data/video.txt + mv /tmp/md5.json /tmp/adbyby/admd5.json + echo $(date "+%Y-%m-%d %H:%M:%S") > /tmp/adbyby.updated + fi + fi + else + sleep 10 + fi + done + + rm -f /tmp/adbyby/data/*.bak + + /etc/init.d/adbyby restart +fi +