diff --git a/package/lean/luci-app-adbyby-plus/Makefile b/package/lean/luci-app-adbyby-plus/Makefile
index 223331d3e5..9044773fb6 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 +coreutils +coreutils-nohup +dnsmasq-full
LUCI_PKGARCH:=all
PKG_NAME:=luci-app-adbyby-plus
PKG_VERSION:=2.0
-PKG_RELEASE:=35
+PKG_RELEASE:=36
include $(TOPDIR)/feeds/luci/luci.mk
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
index 963f9e90fc..0d769bce48 100644
--- a/package/lean/luci-app-adbyby-plus/luasrc/model/cbi/adbyby.lua
+++ b/package/lean/luci-app-adbyby-plus/luasrc/model/cbi/adbyby.lua
@@ -43,7 +43,7 @@ local ND = SYS.exec("cat /usr/share/adbyby/dnsmasq.adblock | wc -l")
o = s:taboption("basic", Button, "restart")
o.title = translate("Adbyby and Rule state")
-o.inputtitle = translate("Restart Adbyby")
+o.inputtitle = translate("Manually force update")
o.description = translate(string.format("Lazy Rule:%s Video Rule:%s
Third Party Subscription Rule:%d lines User-defined Rule:%d lines", DL, DV, math.abs(NR-NU), NR))
o.inputstyle = "reload"
o.write = function()
@@ -67,11 +67,6 @@ updatead.write = function()
SYS.call("nohup sh /usr/share/adbyby/adblock.sh > /tmp/adupdate.log 2>&1 &")
end
-o = s:taboption("advanced", Flag, "update_source")
-o.title = translate("Update adbyby rules form official website first")
-o.default = 1
-o.rmempty = false
-
o = s:taboption("advanced", Flag, "block_ios")
o.title = translate("Block Apple iOS OTA update")
o.default = 0
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 cd10d1ff48..b4f33a4e34 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
@@ -172,22 +172,10 @@ start()
[ ! -d "/tmp/adbyby" ] && mkdir -p /tmp/adbyby && cp -a $PROG_PATH/data /tmp/adbyby/
mount --bind /tmp/adbyby/data $PROG_PATH/data
fi
- if [ ! -f "/tmp/adbyby.updated" ];then
- touch /tmp/adbyby.mem
- 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"
- /usr/share/adbyby/adupdate.sh
- else
- sleep 10
- fi
- done
- fi
+ /usr/share/adbyby/admem.sh >/dev/null 2>&1
+ else
+ /usr/share/adbyby/adupdate.sh >/dev/null 2>&1
fi
- rm -f /tmp/adbyby.mem
echo "add adbyby rules"
add_rules
$PROG_PATH/adbyby &>/dev/null &
@@ -212,6 +200,7 @@ stop()
umount /usr/share/adbyby/data
fi
fi
+ kill -9 $(ps | grep admem.sh | grep -v grep | awk '{print $1}') >/dev/null 2>&1
/etc/init.d/dnsmasq restart
}
diff --git a/package/lean/luci-app-adbyby-plus/root/etc/ppp/ip-up.d/adrulesup.sh b/package/lean/luci-app-adbyby-plus/root/etc/ppp/ip-up.d/adrulesup.sh
index 683123e3a7..bc996a362e 100755
--- a/package/lean/luci-app-adbyby-plus/root/etc/ppp/ip-up.d/adrulesup.sh
+++ b/package/lean/luci-app-adbyby-plus/root/etc/ppp/ip-up.d/adrulesup.sh
@@ -1,3 +1,3 @@
#!/bin/sh
-sleep 30 && sh /usr/share/adbyby/adupdate.sh
+sleep 60 && sh /usr/share/adbyby/adupdate.sh
diff --git a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/admem.sh b/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/admem.sh
new file mode 100755
index 0000000000..a7905d67b0
--- /dev/null
+++ b/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/admem.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+if [ ! -f "/tmp/adbyby.updated" ];then
+ touch /tmp/adbyby.mem
+ 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/lazy.txt && wget-ssl --no-check-certificate -t 1 -T 10 -O /tmp/lazy.txt https://coding.net/u/adbyby/p/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://coding.net/u/adbyby/p/xwhyc-rules/git/raw/master/video.txt
+
+ touch /tmp/local-md5.json && md5sum /tmp/lazy.txt /tmp/video.txt > /tmp/local-md5.json
+ touch /tmp/md5.json && wget-ssl --no-check-certificate -t 1 -T 10 -O /tmp/md5.json https://coding.net/u/adbyby/p/xwhyc-rules/git/raw/master/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 /usr/share/adbyby/data/lazy.txt
+ mv /tmp/video.txt /usr/share/adbyby/data/video.txt
+ echo $(date +%F) > /tmp/adbyby.updated
+ logger "adbyby mem mode rules updated!"
+ fi
+ else
+ sleep 10
+ fi
+ done
+ rm -f /tmp/adbyby.mem /tmp/lazy.txt /tmp/video.txt /tmp/local-md5.json /tmp/md5.json
+ rm -f /usr/share/adbyby/data/*.bak
+ sleep 10 && /etc/init.d/adbyby restart
+fi
diff --git a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adupdate.sh b/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adupdate.sh
index 31466188c5..618c80409a 100755
--- a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adupdate.sh
+++ b/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adupdate.sh
@@ -1,26 +1,32 @@
#!/bin/sh
-update_source=$(uci get adbyby.@adbyby[0].update_source 2>/dev/null)
-
rm -f /usr/share/adbyby/data/*.bak
-if [ $update_source -eq 1 ]; then
- #wget-ssl -t 1 -T 10 -O /tmp/lazy.txt http://update.adbyby.com/rule3/lazy.jpg
- #wget-ssl -t 1 -T 10 -O /tmp/video.txt http://update.adbyby.com/rule3/video.jpg
- #wget-ssl -t 1 -T 10 -O /tmp/user.action http://update.adbyby.com/rule3/user.action
- wget-ssl --no-check-certificate -t 1 -T 10 -O /tmp/lazy.txt https://opt.cn2qq.com/opt-file/lazy.txt
- wget-ssl --no-check-certificate -t 1 -T 10 -O /tmp/video.txt https://opt.cn2qq.com/opt-file/video.txt
+touch /tmp/local-md5.json && md5sum /usr/share/adbyby/data/lazy.txt /usr/share/adbyby/data/video.txt > /tmp/local-md5.json
+touch /tmp/md5.json && wget-ssl --no-check-certificate -t 1 -T 10 -O /tmp/md5.json https://coding.net/u/adbyby/p/xwhyc-rules/git/raw/master/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 -o "$video_online"x != "$video_local"x ]; then
+ echo "MD5 not match! Need update!"
+ touch /tmp/lazy.txt && wget-ssl --no-check-certificate -t 1 -T 10 -O /tmp/lazy.txt https://coding.net/u/adbyby/p/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://coding.net/u/adbyby/p/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}')
+ if [ "$lazy_online"x == "$lazy_local"x -a "$video_online"x == "$video_local"x ]; then
+ echo "New rules MD5 match!"
+ mv /tmp/lazy.txt /usr/share/adbyby/data/lazy.txt
+ mv /tmp/video.txt /usr/share/adbyby/data/video.txt
+ echo $(date +"%Y-%m-%d %H:%M:%S") > /tmp/adbyby.updated
+ fi
+else
+ echo "MD5 match! No need to update!"
fi
-[ ! -s "/tmp/lazy.txt" ] && wget-ssl --no-check-certificate -O /tmp/lazy.txt https://raw.githubusercontent.com/adbyby/xwhyc-rules/master/lazy.txt
-[ ! -s "/tmp/video.txt" ] && wget-ssl --no-check-certificate -O /tmp/video.txt https://raw.githubusercontent.com/adbyby/xwhyc-rules/master/video.txt
+rm -f /tmp/lazy.txt /tmp/video.txt /tmp/local-md5.json /tmp/md5.json
+sleep 10 && /etc/init.d/adbyby restart
-[ -s "/tmp/lazy.txt" ] && ( ! cmp -s /tmp/lazy.txt /usr/share/adbyby/data/lazy.txt ) && mv /tmp/lazy.txt /usr/share/adbyby/data/lazy.txt
-[ -s "/tmp/video.txt" ] && ( ! cmp -s /tmp/video.txt /usr/share/adbyby/data/video.txt ) && mv /tmp/video.txt /usr/share/adbyby/data/video.txt
-[ -s "/tmp/user.action" ] && ( ! cmp -s /tmp/user.action /usr/share/adbyby/user.action ) && mv /tmp/user.action /usr/share/adbyby/user.action
-
-rm -f /tmp/lazy.txt /tmp/video.txt /tmp/user.action
-
-echo $(date) > /tmp/adbyby.updated
-
-[ ! -f "/tmp/adbyby.mem" ] && /etc/init.d/adbyby restart