Update 'bot.sh'
This commit is contained in:
parent
40c8f4194d
commit
f636ad4136
128
bot.sh
128
bot.sh
@ -1,113 +1,117 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#############################
|
#############################
|
||||||
ENDPOINT='pooper.social'
|
ENDPOINT='poster.place'
|
||||||
SQL_USER='root'
|
SQL_USER='root'
|
||||||
SQL_PASS='sql'
|
SQL_PASS='sql'
|
||||||
SQL_HOST='postgresql'
|
SQL_HOST='127.0.0.1'
|
||||||
SQL_DATABASE='pooper'
|
SQL_DATABASE='pleroma'
|
||||||
STATS_MESSAGE="Daily Block Stats for: $ENDPOINT"
|
STATS_MESSAGE=""
|
||||||
|
#STATS_MESSAGE="Daily Block Stats for: $ENDPOINT"
|
||||||
############################
|
############################
|
||||||
cd /opt
|
cd /root/docker/blockbot
|
||||||
|
|
||||||
blocks() {
|
blocks(){
|
||||||
TIME_STAMP="$(date +%y-%m-%d) $(date +%H:%M)"
|
#TIME_STAMP="`date +%y-%m-%d` `date +%H`"
|
||||||
TIME=$(echo $TIME_STAMP | sed 's/.$//')
|
TIME_STAMP="`TZ=Atlantic/Reykjavik date +%y-%m-%d` `TZ=Atlantic/Reykjavik date +%H:%M`"
|
||||||
data=''
|
#TIME_STAMP="`date +%y-%m-%d` `date +%H:%M`"
|
||||||
|
TIME=`echo $TIME_STAMP | sed 's/.$//'`
|
||||||
|
data=''
|
||||||
|
|
||||||
echo "select * from activities where data->>'type' = 'Block';" | PGPASSWORD=$SQL_PASS psql -h $SQL_HOST -U $SQL_USER $SQL_DATABASE | grep "$TIME" >/tmp/list
|
echo "select * from activities where data->>'type' = 'Block';" | PGPASSWORD=$SQL_PASS psql -h $SQL_HOST -U $SQL_USER $SQL_DATABASE | grep "$TIME" > /tmp/list
|
||||||
|
|
||||||
readarray -t list </tmp/list
|
readarray -t list < /tmp/list
|
||||||
|
|
||||||
for i in "${list[@]}"; do
|
for i in "${list[@]}"
|
||||||
|
do
|
||||||
:
|
:
|
||||||
json=$(echo $i | cut -d '{' -f2-3 | cut -d '}' -f1 | sed '1 i\{' | sed '$a } ')
|
json=`echo $i | cut -d '{' -f2-3 | cut -d '}' -f1 | sed '1 i\{' | sed '$a } '`
|
||||||
|
|
||||||
blocker="$(echo $json | jq -r .actor | cut -d '/' -f5)@$(echo $json | jq -r .actor | cut -d '/' -f3)"
|
blocker="`echo $json | jq -r .actor | cut -d '/' -f5`@`echo $json | jq -r .actor | cut -d '/' -f3`"
|
||||||
|
|
||||||
blocked="@$(echo $json | jq -r .object | cut -d '/' -f5)@$(echo $json | jq -r .object | cut -d '/' -f3)"
|
blocked="@`echo $json | jq -r .object | cut -d '/' -f5`@`echo $json | jq -r .object | cut -d '/' -f3`"
|
||||||
|
|
||||||
profile=$(echo $json | jq -r .actor)
|
profile=`echo $json | jq -r .actor`
|
||||||
|
|
||||||
message="BLOCK ALERT! $blocker blocked $blocked. Profile is available at: $profile"
|
message="BLOCK ALERT! $blocker blocked $blocked. Profile is available at: $profile"
|
||||||
|
|
||||||
if [ -n "$1" ]; then
|
|
||||||
|
if [ -n "$1" ]; then
|
||||||
echo $message
|
echo $message
|
||||||
else
|
else
|
||||||
echo $message
|
echo $message
|
||||||
|
sleep 30
|
||||||
toot post "$message" -m ./bot.png
|
toot post "$message" -m ./bot.png
|
||||||
fi
|
fi
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
scalps() {
|
scalps(){
|
||||||
users=($(echo "select nickname from users where ap_id like '%${ENDPOINT}%';" | PGPASSWORD=sql psql -h $SQL_HOST -U $SQL_USER $SQL_DATABASE --csv | egrep -vi 'relay|nickname|internal.fetch'))
|
users=( $(echo "select nickname from users where ap_id like '%${ENDPOINT}%';" | PGPASSWORD=sql psql -h $SQL_HOST -U $SQL_USER $SQL_DATABASE --csv | egrep -vi 'relay|nickname|internal.fetch ') );
|
||||||
echo >/tmp/a.txt
|
echo > /tmp/a.txt
|
||||||
for i in "${users[@]}"; do
|
for i in "${users[@]}"
|
||||||
|
do
|
||||||
:
|
:
|
||||||
number=$(echo "select * from activities where data->>'type' = 'Block';" | PGPASSWORD=$SQL_PASS psql -h $SQL_HOST -U $SQL_USER $SQL_DATABASE | grep -i "$ENDPOINT/users/$i" | cut -d '"' -f18 | grep -iv $ENDPOINT | wc -l)
|
number=`echo "select * from activities where data->>'type' = 'Block';" | PGPASSWORD=$SQL_PASS psql -h $SQL_HOST -U $SQL_USER $SQL_DATABASE | grep -i "$ENDPOINT/users/$i" | cut -d '"' -f18 | grep -iv $ENDPOINT | wc -l`
|
||||||
if [ $number -gt 1 ]; then
|
if [ $number -gt 10 ];
|
||||||
echo "@$i: $(echo "select * from activities where data->>'type' = 'Block';" | PGPASSWORD=$SQL_PASS psql -h $SQL_HOST -U $SQL_USER $SQL_DATABASE | grep -i "$ENDPOINT/users/$i" | cut -d '"' -f18 | grep -iv $ENDPOINT | wc -l)! " >>/tmp/a.txt
|
then
|
||||||
|
if [ "$i" != "a" ]; then
|
||||||
|
#data=$data" @$i: ` echo "select * from activities where data->>'type' = 'Block';" | PGPASSWORD=$SQL_PASS psql -h $SQL_HOST -U $SQL_USER $SQL_DATABASE | grep -i "$ENDPOINT/users/$i" | cut -d '"' -f18 | grep -iv $ENDPOINT | wc -l`! "
|
||||||
|
echo "@$i: ` echo "select * from activities where data->>'type' = 'Block';" | PGPASSWORD=$SQL_PASS psql -h $SQL_HOST -U $SQL_USER $SQL_DATABASE | grep -i "$ENDPOINT/users/$i" | cut -d '"' -f18 | grep -iv $ENDPOINT | wc -l`! " >> /tmp/a.txt
|
||||||
fi
|
fi
|
||||||
done
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
data="$STATS_MESSAGE $(cat /tmp/a.txt | sort -n -k 2)"
|
data="$STATS_MESSAGE `cat /tmp/a.txt | sort -n -k 2`"
|
||||||
if [ -n "$1" ]; then
|
if [ -n "$1" ]; then
|
||||||
echo $data
|
echo $data
|
||||||
else
|
else
|
||||||
echo $data | toot post "$data"
|
echo "Poster.place Block Report $data" | toot post
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
background_daemon() {
|
|
||||||
echo
|
|
||||||
echo "BlockBot running in Daemon Mode"
|
|
||||||
echo
|
|
||||||
echo
|
|
||||||
while true; do
|
|
||||||
echo "#######################################"
|
|
||||||
echo "Current Time: $(date)"
|
|
||||||
|
|
||||||
if [[ $(date | cut -d ':' -f2 | tail -c2) == *"9"* ]]; then
|
|
||||||
echo "Checking for new blocks......."
|
background_daemon(){
|
||||||
echo
|
echo;echo "BlockBot running in Daemon Mode";echo;echo
|
||||||
|
while true
|
||||||
|
do
|
||||||
|
echo "#######################################"
|
||||||
|
echo "Current Time: `date`"
|
||||||
|
|
||||||
|
if [[ `date | cut -d ':' -f2 | tail -c2` == *"9"* ]]; then
|
||||||
|
echo "Checking for new blocks.......";echo
|
||||||
blocks
|
blocks
|
||||||
fi
|
fi
|
||||||
if [[ $(date) == *"16:30:"* ]]; then
|
if [[ `date` == *"16:30:"* ]]; then
|
||||||
echo "Sending Block Report......."
|
echo "Sending Block Report.......";echo
|
||||||
echo
|
|
||||||
scalps
|
scalps
|
||||||
fi
|
fi
|
||||||
blocks print
|
blocks print
|
||||||
echo "Sleeping for 50......"
|
echo "Sleeping for 50......"
|
||||||
echo "#######################################"
|
echo "#######################################";
|
||||||
sleep 50
|
sleep 50
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
background() {
|
background(){
|
||||||
if [[ $(date) == *":00"* ]]; then
|
if [[ `date` == *":00"* ]]; then
|
||||||
background_daemon
|
background_daemon
|
||||||
else
|
else
|
||||||
echo "Waiting for time to be in sync...."
|
echo "Waiting for time to be in sync...."
|
||||||
sleep 1
|
sleep 1
|
||||||
background
|
background
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
help() {
|
help(){
|
||||||
echo
|
echo;echo "bot.sh daemon"
|
||||||
echo "bot.sh daemon"
|
echo;echo "bot.sh blocks"
|
||||||
echo
|
echo;echo "bot.sh blocks print"
|
||||||
echo "bot.sh blocks"
|
|
||||||
echo
|
|
||||||
echo "bot.sh blocks print"
|
|
||||||
echo "bot.sh scalps"
|
echo "bot.sh scalps"
|
||||||
echo "bot.sh scalps print"
|
echo "bot.sh scalps print"
|
||||||
echo "bot.sh help"
|
echo "bot.sh help";echo;echo
|
||||||
echo
|
}
|
||||||
echo
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ "$1" = "daemon" ]; then
|
if [ "$1" = "daemon" ]; then
|
||||||
background
|
background
|
||||||
|
Loading…
Reference in New Issue
Block a user