Skip to content

Commit f957d28

Browse files
authored
Update host.sh
1 parent 6e60ea8 commit f957d28

File tree

1 file changed

+63
-68
lines changed

1 file changed

+63
-68
lines changed

host.sh

Lines changed: 63 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
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

1717
sed -i -e '/#/d' \
1818
-e '/^$/d' \
@@ -25,19 +25,17 @@ sort -u tmpallow > allow
2525
rm -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
4139
done
4240

4341
sed -i -e '/#/d' \
@@ -66,15 +64,16 @@ sed -i -e '/#/d' \
6664
sort -u tmpblock > block
6765
rm -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..."
7572
sed -E -e '/^[^[:space:]]+\.[^[:space:]]+$/!d' allow
7673
sed -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+
7877
while read line; do
7978
if [[ $line =~ $domain_name_regex ]]; then
8079
echo "$line" >> cleanallow
@@ -87,49 +86,41 @@ while read line; do
8786
fi
8887
done < block
8988

90-
echo " "
91-
echo "Check Dead Block..."
89+
90+
# Check for dead blocklist entries
91+
echo "\nCheck Dead Block..."
9292
rm -rf allow block
9393
mv cleanallow allow
9494
mv cleanblock block
95-
rm -rf cleanblock
96-
cp block checkblock
97-
cp block lite_block
95+
cp block checkblock lite_block
9896
wget --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
10198
rm -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
135126
for file in adblocker lite_adblocker; do
@@ -154,17 +145,21 @@ for file in smartdns.conf lite_smartdns.conf; do
154145
sed -i 's/$/&\/#/' "$file"
155146
done
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 "$1c$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

170165
cp title title.2
@@ -233,8 +228,8 @@ mv title.5 lite_dnsmasq.conf
233228
mv title.7 lite_smartdns.conf
234229
mv title.9 lite_domain
235230

236-
## Add Clash support
237-
231+
# Generate Clash rules
232+
echo "\nAdding Clash support..."
238233
sed -e '14i payload:' -e "14,\$s/^/ - '/" -e "14,\$s/$/'/" domain >> clash
239234
sed -e '14i payload:' -e "14,\$s/^/ - '/" -e "14,\$s/$/'/" lite_domain >> lite_clash
240235

0 commit comments

Comments
 (0)