2021-01-13 19:54:19 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
2021-01-18 21:14:04 +00:00
|
|
|
########################
|
|
|
|
# Script configuration #
|
|
|
|
########################
|
2021-01-13 19:54:19 +00:00
|
|
|
|
2021-01-17 15:28:40 +00:00
|
|
|
if [ ! -f "$PWD/config" ]; then
|
|
|
|
declare DB_NAME="hubzilla"
|
|
|
|
declare DB_HOST="localhost"
|
|
|
|
declare DB_PORT="3306"
|
|
|
|
declare DB_USER="user"
|
|
|
|
declare DB_PASS="pass"
|
2021-01-18 21:14:04 +00:00
|
|
|
declare SPAMLIST_URL="https://git.c-r-t.tk/DiasporaDefenseLeague/spamlist/raw/branch/master/spammers"
|
2021-01-17 15:28:40 +00:00
|
|
|
else
|
|
|
|
source $PWD/config > /dev/null
|
|
|
|
fi
|
|
|
|
|
2021-01-18 21:14:04 +00:00
|
|
|
#################################
|
|
|
|
# Download new list of spammers #
|
|
|
|
#################################
|
|
|
|
|
|
|
|
wget $SPAMLIST_URL -q
|
|
|
|
|
2021-01-17 15:28:40 +00:00
|
|
|
#########################
|
|
|
|
# Read List of spammers #
|
|
|
|
#########################
|
|
|
|
|
|
|
|
mapfile -t SPAMMERS < $PWD/spammers
|
2021-01-13 19:54:19 +00:00
|
|
|
|
|
|
|
####################################
|
|
|
|
# Extermination of Zlaxes' actions #
|
|
|
|
####################################
|
|
|
|
|
2021-01-17 15:28:40 +00:00
|
|
|
QUERIES=$(mktemp)
|
|
|
|
|
2021-01-13 19:54:19 +00:00
|
|
|
for SPAM in "${SPAMMERS[@]}"
|
|
|
|
do
|
|
|
|
echo "Preparing to remove items from handle $SPAM ..."
|
2021-01-17 15:28:40 +00:00
|
|
|
echo "UPDATE item SET item_pending_remove = '1' WHERE author_xchan LIKE '$SPAM';" >> $QUERIES
|
|
|
|
|
2021-01-13 19:54:19 +00:00
|
|
|
done
|
|
|
|
|
2021-01-17 15:28:40 +00:00
|
|
|
mysql --user=$DB_USER \
|
|
|
|
--password=$DB_PASS \
|
|
|
|
--database=$DB_NAME \
|
|
|
|
--host=$DB_HOST \
|
|
|
|
--port=$DB_PORT \
|
|
|
|
--silent \
|
|
|
|
--compress \
|
|
|
|
-e "$(cat $QUERIES)"
|
|
|
|
|
|
|
|
rm $QUERIES
|
|
|
|
|
2021-01-13 19:54:19 +00:00
|
|
|
#################################################
|
|
|
|
# Finally remove all marked items from database #
|
|
|
|
#################################################
|
|
|
|
|
2021-01-17 15:28:40 +00:00
|
|
|
QUERIES=$(mktemp)
|
|
|
|
|
2021-01-13 19:54:19 +00:00
|
|
|
echo "All items have been marked for deletion and won't be visible anymore. If you wish to delete them permamently, type YES."
|
|
|
|
read REMOVAL
|
|
|
|
|
|
|
|
if [ "$REMOVAL" = "YES" ]; then
|
2021-01-17 15:28:40 +00:00
|
|
|
echo "DELETE from item WHERE item_pending_remove = '1';" >> $QUERIES
|
2021-01-13 19:54:19 +00:00
|
|
|
fi
|
|
|
|
|
2021-01-17 15:28:40 +00:00
|
|
|
mysql --user=$DB_USER \
|
|
|
|
--password=$DB_PASS \
|
|
|
|
--database=$DB_NAME \
|
|
|
|
--host=$DB_HOST \
|
|
|
|
--port=$DB_PORT \
|
|
|
|
--silent \
|
|
|
|
-e "$(cat $QUERIES)"
|
|
|
|
|
|
|
|
rm $QUERIES
|
|
|
|
|
2021-01-13 19:54:19 +00:00
|
|
|
########################
|
|
|
|
# Remove notifications #
|
|
|
|
########################
|
|
|
|
|
2021-01-17 15:28:40 +00:00
|
|
|
QUERIES=$(mktemp)
|
|
|
|
|
2021-01-13 19:54:19 +00:00
|
|
|
for SPAM in "${SPAMMERS[@]}"
|
|
|
|
do
|
|
|
|
POD=$(echo -e "$SPAM" | cut -f2 -d"@")
|
|
|
|
USR=$(echo -e "$SPAM" | cut -f1 -d"@")
|
|
|
|
URL="htt%://$POD/u/$USR"
|
2021-01-17 15:28:40 +00:00
|
|
|
echo "Preparing to remove notifications from handle $SPAM ..."
|
|
|
|
echo "DELETE FROM notify WHERE url LIKE '$URL';" >> $QUERIES
|
|
|
|
done
|
|
|
|
|
|
|
|
mysql --user=$DB_USER \
|
|
|
|
--password=$DB_PASS \
|
|
|
|
--database=$DB_NAME \
|
|
|
|
--host=$DB_HOST \
|
|
|
|
--port=$DB_PORT \
|
|
|
|
--silent \
|
|
|
|
-e "$(cat $QUERIES)"
|
|
|
|
|
|
|
|
rm $QUERIES
|
|
|
|
|
|
|
|
#####################################
|
|
|
|
# Set hubloc entry to "deactivated" #
|
|
|
|
#####################################
|
|
|
|
|
|
|
|
QUERIES=$(mktemp)
|
2021-01-13 19:54:19 +00:00
|
|
|
|
2021-01-17 15:28:40 +00:00
|
|
|
for SPAM in "${SPAMMERS[@]}"
|
|
|
|
do
|
|
|
|
echo "Deactivating account $SPAM on this hub ..."
|
|
|
|
echo "UPDATE hubloc SET hubloc_deleted = '1' WHERE hubloc_addr LIKE '$SPAM';" >> $QUERIES
|
2021-01-13 19:54:19 +00:00
|
|
|
done
|
|
|
|
|
2021-01-17 15:28:40 +00:00
|
|
|
mysql --user=$DB_USER \
|
|
|
|
--password=$DB_PASS \
|
|
|
|
--database=$DB_NAME \
|
|
|
|
--host=$DB_HOST \
|
|
|
|
--port=$DB_PORT \
|
|
|
|
--silent \
|
|
|
|
-e "$(cat $QUERIES)"
|
|
|
|
|
|
|
|
rm $QUERIES
|
|
|
|
|
2021-01-13 19:54:19 +00:00
|
|
|
##############################################
|
|
|
|
# TBD #
|
|
|
|
##############################################
|
|
|
|
# Blocking further communication from Zlaxes #
|
|
|
|
##############################################
|
|
|
|
#
|
|
|
|
#HZ_BANLIST=$(mysql --user=$DB_USER \
|
|
|
|
# --password=$DB_PASS \
|
|
|
|
# --database=$DB_NAME \
|
|
|
|
# --host=$DB_HOST \
|
|
|
|
# --port=$DB_PORT \
|
|
|
|
# --silent \
|
|
|
|
# -e "SELECT v FROM config WHERE cat='system' AND k='blacklisted_channels';")
|