From 92d379f08b5c436913729cccfa4b659bd34ffcd8 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Sun, 21 Oct 2018 17:54:44 +0800 Subject: [PATCH] change adbyby plus update from coding.net --- package/lean/luci-app-adbyby-plus/Makefile | 2 +- .../luasrc/model/cbi/adbyby.lua | 7 +-- .../root/etc/init.d/adbyby | 19 ++------ .../root/etc/ppp/ip-up.d/adrulesup.sh | 2 +- .../root/usr/share/adbyby/admem.sh | 36 +++++++++++++++ .../root/usr/share/adbyby/adupdate.sh | 44 +++++++++++-------- 6 files changed, 68 insertions(+), 42 deletions(-) create mode 100755 package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/admem.sh diff --git a/package/lean/luci-app-adbyby-plus/Makefile b/package/lean/luci-app-adbyby-plus/Makefile index 223331d3e..9044773fb 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 963f9e90f..0d769bce4 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 cd10d1ff4..b4f33a4e3 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 683123e3a..bc996a362 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 000000000..a7905d67b --- /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 31466188c..618c80409 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