11#! /bin/bash
22
3- echo " "
4- echo " Clean..."
53
6- rm -f host lite_host lite_adblocker adblocker lite_dnsmasq.conf dnsmasq.conf deadallow deadblock checkblock checkallow smartdns.conf lite_smartdns.conf doamin lite_domain clash lite_clash allow
4+ # Clean up old files
5+ echo " \nClean..."
6+ rm -f host lite_host lite_adblocker adblocker lite_dnsmasq.conf dnsmasq.conf deadallow deadblock checkblock checkallow \
7+ smartdns.conf lite_smartdns.conf domain lite_domain clash lite_clash allow
78
8- echo " "
9- echo " Merge allow..."
10- for url in ` cat allowlist` ; do
11- wget --no-check-certificate -t 1 -T 10 -q -O tmp $url
12- cat tmp >> tmpallow
13- rm -f tmp
14- done
159
10+ # Merge allowlist
11+ echo " \nMerge allow..."
12+ > tmpallow
13+ for url in $( cat allowlist) ; do
14+ wget --no-check-certificate -t 1 -T 10 -q -O - " $url " >> tmpallow
15+ done
1616
1717sed -i -e ' /#/d' \
1818 -e ' /^$/d' \
@@ -25,19 +25,17 @@ sort -u tmpallow > allow
2525rm -f tmpallow
2626
2727
28- echo " "
29- echo " Check Dead Allow..."
30- cp allow checkallow
31- wget --no-check-certificate -t 1 -T 10 -q https://raw.githubusercontent.com/neodevpro/dead-allow/master/deadallow
32- sort -n allow deadallow | uniq -u > tmpallow
33- rm -f tmpallow
28+ # Check for dead allowlist entries
29+ echo " \nCheck Dead Allow..."
30+ wget --no-check-certificate -t 1 -T 10 -q -O deadallow https://raw.githubusercontent.com/neodevpro/dead-allow/master/deadallow
31+ sort allow deadallow | uniq -u > tmpallow && mv tmpallow allow
3432
35- echo " "
36- echo " Merge block... "
37- for url in ` cat blocklist ` ; do
38- wget --no-check-certificate -t 1 -T 10 -q -O tmp $url
39- cat tmp >> tmpblock
40- rm -f tmp
33+
34+ # Merge blocklist
35+ echo " \nMerge block... "
36+ > tmpblock
37+ for url in $( cat blocklist ) ; do
38+ wget --no-check-certificate -t 1 -T 10 -q -O - " $url " >> tmpblock
4139done
4240
4341sed -i -e ' /#/d' \
@@ -66,15 +64,16 @@ sed -i -e '/#/d' \
6664sort -u tmpblock > block
6765rm -f tmpblock
6866
69- domain_name_regex=" ^[a-zA-Z0-9]+([-.][a-zA-Z0-9]+)*\.[a-zA-Z]{2,}(:[0-9]+)?([/?].*)?$"
7067
7168
72- echo " "
73- echo " Check format..."
69+ # Check format
7470
71+ echo " \nCheck format..."
7572sed -E -e ' /^[^[:space:]]+\.[^[:space:]]+$/!d' allow
7673sed -E -e ' /^[^[:space:]]+\.[^[:space:]]+$/!d' block
7774
75+ domain_name_regex=" ^[a-zA-Z0-9]+([-.][a-zA-Z0-9]+)*\.[a-zA-Z]{2,}(:[0-9]+)?([/?].*)?$"
76+
7877while read line; do
7978 if [[ $line =~ $domain_name_regex ]]; then
8079 echo " $line " >> cleanallow
@@ -87,49 +86,41 @@ while read line; do
8786 fi
8887done < block
8988
90- echo " "
91- echo " Check Dead Block..."
89+
90+ # Check for dead blocklist entries
91+ echo " \nCheck Dead Block..."
9292rm -rf allow block
9393mv cleanallow allow
9494mv cleanblock block
95- rm -rf cleanblock
96- cp block checkblock
97- cp block lite_block
95+ cp block checkblock lite_block
9896wget --no-check-certificate -t 1 -T 10 -q https://raw.githubusercontent.com/FusionPlmH/dead-block/master/deadblock
99- sort -n lite_block deadblock deadblock | uniq -u > tmp && mv tmp tmplite_block
100- sort -u tmplite_block > lite_block
97+ sort lite_block deadblock | uniq -u > tmplite_block && mv tmplite_block lite_block
10198rm -f tmplite_block
10299
103- echo " "
104- echo " Merge Combine..."
105- sort -n block allow allow | uniq -u > tmp && mv tmp tmphost
106- sort -u tmphost > host
107- sed -i ' /^$/d' host
108- sed -i s/[[:space:]]//g host
109- rm -f tmphost
100+ # Generate final lite host list
101+ echo " \nMerge Combine..."
102+ generate_host_list () {
103+ local blocklist=$1
104+ local output=$2
110105
111- echo " "
112- echo " Merge Combine..."
113- sort -n lite_block allow allow | uniq -u > tmp && mv tmp tmplite_host
114- sort -u tmplite_host > lite_host
115- sed -i ' /^$/d' lite_host
116- sed -i s/[[:space:]]//g lite_host
117- rm -f tmplite_host
106+ sort -n " $blocklist " allow allow | uniq -u > tmp && mv tmp tmp" $output "
107+ sort -u tmp" $output " > " $output "
108+ sed -i ' /^$/d' " $output "
109+ sed -i ' s/[[:space:]]//g' " $output "
110+ rm -f tmp" $output "
111+ }
118112
119- echo " "
120- echo " Adding Compatibility..."
113+ # Generate both host lists
114+ generate_host_list " block" " host"
115+ generate_host_list " lite_block" " lite_host"
121116
122- cp host adblocker
123- cp host dnsmasq.conf
124- cp host smartdns.conf
125- cp host domain
126117
127118
128- cp lite_host lite_adblocker
129- cp lite_host lite_dnsmasq.conf
130- cp lite_host lite_smartdns.conf
131- cp lite_host lite_domain
119+ # Generate different format lists
120+ echo " \nAdding Compatibility..."
132121
122+ cp host adblocker dnsmasq.conf smartdns.conf domain
123+ cp lite_host lite_adblocker lite_dnsmasq.conf lite_smartdns.conf lite_domain
133124
134125# Edit adblocker & lite_adblocker
135126for file in adblocker lite_adblocker; do
@@ -154,17 +145,21 @@ for file in smartdns.conf lite_smartdns.conf; do
154145 sed -i ' s/$/&\/#/' " $file "
155146done
156147
157- echo " "
158- echo " Adding Title and SYNC data..."
159- sed -i ' 14cTotal ad / tracking block list 屏蔽追踪广告总数: ' $( wc -l block) ' ' README.md
160- sed -i ' 16cTotal allowlist list 允许名单总数: ' $( wc -l allow) ' ' README.md
161- sed -i ' 18cTotal combine list 结合总数: ' $( wc -l host) ' ' README.md
162- sed -i ' 20cTotal deadblock list 失效屏蔽广告域名: ' $( wc -l deadblock) ' ' README.md
163- sed -i ' 22cTotal deadallow list 失效允许广告域名: ' $( wc -l deadallow) ' ' README.md
164- sed -i ' 24cUpdate 更新时间: ' $( date " +%Y-%m-%d" ) ' ' README.md
148+ # Update README with statistics
149+ echo " \nAdding Title and SYNC data..."
165150
166- sed -i ' 54cNumber of Domain 域名数目: ' $( wc -l domain) ' ' README.md
167- sed -i ' 64cNumber of Domain 域名数目: ' $( wc -l lite_domain) ' ' README.md
151+ update_readme () {
152+ sed -i " $1 c$2 $( wc -l $3 ) " README.md
153+ }
154+
155+ update_readme 14 " Total ad / tracking block list:" block
156+ update_readme 16 " Total allowlist entries:" allow
157+ update_readme 18 " Total combined list entries:" host
158+ update_readme 20 " Total deadblock entries:" deadblock
159+ update_readme 22 " Total deadallow entries:" deadallow
160+ update_readme 24 " Update date:" " $( date ' +%Y-%m-%d' ) "
161+ update_readme 54 " Number of domains:" domain
162+ update_readme 64 " Number of domains:" lite_domain
168163
169164
170165cp title title.2
@@ -233,8 +228,8 @@ mv title.5 lite_dnsmasq.conf
233228mv title.7 lite_smartdns.conf
234229mv title.9 lite_domain
235230
236- # # Add Clash support
237-
231+ # Generate Clash rules
232+ echo " \nAdding Clash support... "
238233sed -e ' 14i payload:' -e " 14,\$ s/^/ - '/" -e " 14,\$ s/$/'/" domain >> clash
239234sed -e ' 14i payload:' -e " 14,\$ s/^/ - '/" -e " 14,\$ s/$/'/" lite_domain >> lite_clash
240235
0 commit comments