diff --git a/bot.sh b/bot.sh index 71edc2f..74d2e05 100644 --- a/bot.sh +++ b/bot.sh @@ -9,110 +9,113 @@ STATS_MESSAGE="Daily Block Stats for: $ENDPOINT" ############################ cd /opt -blocks(){ -#TIME_STAMP="`date +%y-%m-%d` `date +%H`" -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 +blocks() { + #TIME_STAMP="`date +%y-%m-%d` `date +%H`" + TIME_STAMP="$(date +%y-%m-%d) $(date +%H:%M)" + TIME=$(echo $TIME_STAMP | sed 's/.$//') + data='' -readarray -t list < /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 -for i in "${list[@]}" -do - : - json=`echo $i | cut -d '{' -f2-3 | cut -d '}' -f1 | sed '1 i\{' | sed '$a } '` + 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 1 ]; - then - 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 -done +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 1 ]; then + 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 + done - data="$STATS_MESSAGE `cat /tmp/a.txt | sort -n -k 2`" -if [ -n "$1" ]; then - echo $data -else - echo $data | toot post "$data" -fi + data="$STATS_MESSAGE $(cat /tmp/a.txt | sort -n -k 2)" + if [ -n "$1" ]; then + echo $data + else + echo $data | toot post "$data" + 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