37 lines
1.5 KiB
Bash
Executable file
37 lines
1.5 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
# Get a list of nameservers
|
|
|
|
rm -f nameservers
|
|
touch nameservers
|
|
[ -f nameservers.head ] && cat nameservers.head >> nameservers
|
|
curl https://public-dns.info/nameservers.txt | sort -R >> nameservers
|
|
|
|
# Filter out the subdomains not pointing to a first-party tracker
|
|
|
|
cat subdomains/*.list | sort -u > temp/all_subdomains.list
|
|
./filter_subdomains.py temp/all_subdomains.list > temp/all_toblock.list
|
|
sort -u temp/all_toblock.list > dist/firstparty-trackers.txt
|
|
|
|
# Format the blocklist so it can be used as a hostlist
|
|
|
|
(
|
|
echo "# First-party trackers host list"
|
|
echo "#"
|
|
echo "# About first-party trackers: https://git.frogeye.fr/geoffrey/eulaurarien#whats-a-first-party-tracker"
|
|
echo "# Source code: https://git.frogeye.fr/geoffrey/eulaurarien"
|
|
echo "# Latest version of this list: https://hostfiles.frogeye.fr/firstparty-trackers-hosts.txt"
|
|
echo "#"
|
|
echo "# Generation date: $(date -Isec)"
|
|
echo "# Generation version: eulaurarien $(git describe --tags)"
|
|
echo "# Number of source websites: $(wc -l temp/all_websites.list | cut -d' ' -f1)"
|
|
echo "# Number of source subdomains: $(wc -l temp/all_subdomains.list | cut -d' ' -f1)"
|
|
echo "# Number of known trackers : $(python -c 'import regexes; print(len(regexes.REGEXES))')"
|
|
echo "# Number of blocked subdomains: $(wc -l dist/firstparty-trackers.txt | cut -d' ' -f1)"
|
|
echo
|
|
cat dist/firstparty-trackers.txt | while read host;
|
|
do
|
|
echo "0.0.0.0 $host"
|
|
done
|
|
) > dist/firstparty-trackers-hosts.txt
|