blob: 61f3fb077c502772de9e2b2530ec76c3e06b7404 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
#!/bin/bash
# Filterlist, uncomment to download lists, mutliple lists are supported, but
# don't choose too many lists since it will slow down the adblocker
URLS=(
# Easylist
# Easylist English
https://easylist-downloads.adblockplus.org/easylist.txt
# Easylist Privacy, blocks tracking
https://easylist-downloads.adblockplus.org/easyprivacy.txt
# Easylist Without element hiding
#https://easylist-downloads.adblockplus.org/easylist_noelemhide.txt
# Easylist additional subscriptions
# Easylist Germany
https://easylist-downloads.adblockplus.org/easylistgermany.txt
# Easylist Italy
#https://easylist-downloads.adblockplus.org/easylistitaly.txt
# Easylist Dutch
#http://dutchadblockfilters.googlecode.com/svn/trunk/AdBlock_Dutch_hide.txt
# Easylist French
#http://lian.info.tm/liste_fr.txt
# Easylist China
#http://adblock-chinalist.googlecode.com/svn/trunk/adblock.txt
# Easylist Bulgaria
#http://stanev.org/abp/adblock_bg.txt
# Easylist Indonesia
#http://indonesianadblockrules.googlecode.com/hg/subscriptions/abpindo.txt
# Easylist Finland
#http://www.wiltteri.net/wiltteri.txt
# Easylist Greece
#http://www.void.gr/kargig/void-gr-filters.txt
# Adversity
# Adversity English list
#https://adversity.googlecode.com/hg/Adversity.txt
# Adversity Privacy
#https://adversity.googlecode.com/hg/Adversity-Tracking.txt
# Fanboy
# Fanboy English list
#http://www.fanboy.co.nz/adblock/fanboy-adblock.txt
# Fanboy Tracking list
#http://www.fanboy.co.nz/adblock/fanboy-tracking.txt
)
if [ ${#URLS[@]} -eq 0 ]; then
echo "No urls specified, you must uncomment at least one url."
exit 1
fi
UNSUPPORTED="[\$,~]{1}(xbl|ping|xmlhttprequest|dtd|elemhide|other|collapse|donottrack|popup)(,|$)|[\$,]object-subrequest(,|$)"
CONFIG=${XDG_CONFIG_HOME}/dwb/settings
declare PROFILE
# Parse settings
while read; do
if [[ ${REPLY} =~ ^\[ ]]; then
PROFILE=${REPLY:1:$((${#REPLY}-2))}
fi
if [ "${PROFILE}" = "default" ] && [[ ${REPLY} =~ ^adblocker-filterlist ]]; then
DEST=${REPLY//*=/}
break
fi
done < ${CONFIG}
if [ ! ${DEST} ]; then
DEST=${XDG_CONFIG_HOME}/dwb/adblock_default
echo "No setting 'adblocker-filterlist' found for profile default, using '${DEST}'"
sed -i "0,/adblocker-filterlist/s#^adblocker-filterlist=.*#adblocker-filterlist=${DEST}#" ${CONFIG}
fi
echo "Saving filterlist as ${DEST}"
if [ -e ${DEST} ]; then
rm ${DEST}
fi
AFTER=0
BEFORE=0
REMOVED=0
TOTAL=0
# Download the filterlists
for URL in ${URLS[@]}; do
TMP=$(mktemp)
echo "Grabbing ${URL}"
wget -O ${TMP} ${URL} &>/dev/null
BEFORE=( $(wc -l "${TMP}") )
((BEFORE+=TOTAL))
sed -r "/${UNSUPPORTED}/d" "${TMP}" >> ${DEST}
rm ${TMP}
AFTER=( $(wc -l "${DEST}") )
((REMOVED=BEFORE-AFTER))
TOTAL=${BEFORE}
done
echo "Removed ${REMOVED} unsupported of ${BEFORE} filters."
echo "Removing comments."
sed -i "/^[!\[]/d" "${DEST}"
echo "Done."
|