fediverse-blocklists/fedisync.sh
2024-03-31 16:48:57 +00:00

58 lines
2.4 KiB
Bash
Executable file

#!/bin/bash
set -e
# generate files
exec 2> >(tee /opt/fediblockhole/logs/fedisync.log)
echo "Pulling down all blocklist sources..."
cd /opt/fediblockhole
GIT=`which git`
${GIT} fetchall
PULLCONFIG="/opt/fediblockhole/secretconfig/pull.conf.toml" # default, pull sources WITHOUT public_description
#PULLCONFIG="/opt/fediblockhole/secretconfig/pull.all.conf.toml" # pull down all sources WITH public_description
SYNC=`which fediblock-sync`
${SYNC} -c $PULLCONFIG # pull down all files, create max list
# rename and remove intermediate files
rm -f /opt/fediblockhole/blocklists/file:---opt-fediblockhole-blocklists-__allowlist.csv.csv
mv /opt/fediblockhole/blocklists/https:--seirdy.one-pb-tier0.csv.csv /opt/fediblockhole/blocklists/tier0.csv
mv /opt/fediblockhole/blocklists/https:--raw.githubusercontent.com-gardenfence-blocklist-main-gardenfence-fediblocksync.csv.csv /opt/fediblockhole/blocklists/gardenfence.csv
mv /opt/fediblockhole/blocklists/https:--mastodon.online-api-v1-instance-domain_blocks.csv /opt/fediblockhole/blocklists/mastodon.online.csv
mv /opt/fediblockhole/blocklists/https:--mastodon.social-api-v1-instance-domain_blocks.csv /opt/fediblockhole/blocklists/mastodon.social.csv
mv /opt/fediblockhole/blocklists/https:--raw.githubusercontent.com-iftas-org-resources-main-DNI-dni.csv.csv /opt/fediblockhole/blocklists/dni.csv
# destroy the 'max' list
rm -f /opt/fediblockhole/blocklists/_unified_max_blocklist.csv
# create unified tier0 file
${SYNC} -c /opt/fediblockhole/secretconfig/tier0.conf.toml
# create missing from mastodon.social blocklist file, and the inverse file
${SYNC} -c /opt/fediblockhole/config/ms-noblock.conf.toml
cp /opt/fediblockhole/blocklists/_unified_tier0_blocklist.csv /opt/fediblockhole/blocklists/_unified_min_blocklist.csv
echo "Creating mastodon versions of files..."
# convert files to Mastodon header
cd /opt/fediblockhole/blocklists/mastodon
# copy all files to mastodon subfolder
cp /opt/fediblockhole/blocklists/*.csv /opt/fediblockhole/blocklists/mastodon/ && \
cp /opt/fediblockhole/blocklists/README.md /opt/fediblockhole/blocklists/mastodon/README.md
rm -f __allowlist.csv
# replace first line with mastodon-format header row
headerrow="#domain,#severity,#reject_media,#reject_reports,#public_comment,#obfuscate"
for file in *.csv; do
sed -i "1s/.*/$headerrow/" $file
# replace bad line terminators
sed -i "s/\r//g" $file
# lowercase file to fix booleans
sed -i "s/\(.*\)/\L\1/" $file
done
echo "Pull complete."