From 9bfc971d2c0232c6e8f526bb8e1828092f3b6c99 Mon Sep 17 00:00:00 2001 From: verita84 Date: Mon, 10 Jul 2023 20:30:31 -0600 Subject: [PATCH] Update 'bot.sh' --- bot.sh | 180 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 89 insertions(+), 91 deletions(-) diff --git a/bot.sh b/bot.sh index 6869e7e..1b22f98 100644 --- a/bot.sh +++ b/bot.sh @@ -3,122 +3,120 @@ ENDPOINT='myinstance.com' SQL_USER='root' SQL_PASS='sql' -SQL_HOST='0.0.0.0' +SQL_HOST='127.0.0.1' SQL_DATABASE='pleroma' -STATS_MESSAGE="" -#STATS_MESSAGE="Daily Block Stats for: $ENDPOINT" +STATS_MESSAGE="Daily Block Stats for: $ENDPOINT" ############################ +blocks() { + TIME_STAMP="$(TZ=Atlantic/Reykjavik date +%y-%m-%d) $(TZ=Atlantic/Reykjavik date +%H:%M)" + TIME=$(echo $TIME_STAMP | sed 's/.$//') + data='' -blocks(){ -#TIME_STAMP="`date +%y-%m-%d` `date +%H`" -TIME_STAMP="`TZ=Atlantic/Reykjavik date +%y-%m-%d` `TZ=Atlantic/Reykjavik date +%H:%M`" -#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/a.txt -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` - if [ $number -gt 10 ]; - then +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 ')) + echo >/tmp/a.txt + 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) + if [ $number -gt 10 ]; 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 + 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 - data="$STATS_MESSAGE `cat /tmp/a.txt | sort -n -k 2`" -if [ -n "$1" ]; then - echo $data -else - echo ":hacker_l::hacker_e::hacker_a::hacker_d::hacker_e::hacker_r::hacker_b::hacker_o::hacker_a::hacker_r::hacker_d: $data" | toot post -fi + data="$STATS_MESSAGE $(cat /tmp/a.txt | sort -n -k 2)" + if [ -n "$1" ]; then + echo $data + else + echo "$STATS_MESSAGE $data" | toot post + fi } +background_daemon() { + echo + echo "BlockBot running in Daemon Mode" + echo + echo + while true; do + echo "#######################################" + echo "Current Time: $(date)" - -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.......";echo - blocks - fi - if [[ `date` == *"16:30:"* ]]; then - echo "Sending Block Report.......";echo - scalps - fi - blocks print - echo "Sleeping for 50......" - echo "#######################################"; - sleep 50 + if [[ $(date | cut -d ':' -f2 | tail -c2) == *"9"* ]]; then + echo "Checking for new blocks......." + echo + blocks + fi + if [[ $(date) == *"16:30:"* ]]; then + echo "Sending Block Report......." + echo + scalps + fi + blocks print + echo "Sleeping for 50......" + echo "#######################################" + sleep 50 done } - background(){ - if [[ `date` == *":00"* ]]; then - background_daemon - else - echo "Waiting for time to be in sync...." - sleep 1 - background - fi - } +background() { + if [[ $(date) == *":00"* ]]; then + background_daemon + else + echo "Waiting for time to be in sync...." + sleep 1 + background + fi +} - help(){ - echo;echo "bot.sh daemon" - echo;echo "bot.sh blocks" - echo;echo "bot.sh blocks print" - echo "bot.sh scalps" - echo "bot.sh scalps print" - echo "bot.sh help";echo;echo - } +help() { + echo + echo "bot.sh daemon" + echo + echo "bot.sh blocks" + echo + echo "bot.sh blocks print" + echo "bot.sh scalps" + echo "bot.sh scalps print" + echo "bot.sh help" + echo + echo +} if [ "$1" = "daemon" ]; then - background + background elif [ "$1" = "blocks" ]; then - blocks "$2" + blocks "$2" elif [ "$1" = "scalps" ]; then - scalps "$2" -else - help + scalps "$2" +else + help fi