add logging helper script and update historyDownload script

This commit is contained in:
HF 2020-05-02 02:54:28 +02:00
parent 8bfa91fd91
commit 9e3cdc25e9
3 changed files with 86 additions and 2 deletions

View File

@ -51,5 +51,9 @@ same as historyDownload, just that its designed for running on the storage serve
## backupSync.sh
shell script that can be launched with backup.js to sync to a storage server after every backup. It uses rsync which is much faster than ftp, sftp or any other methode
## liveLog.sh
shell script that watches the pixel.log file and outputs the stats of the current IPs placing there
Usage: `./liveLog.sh LOGFILE CANVASID STARTX_STARTY ENDX_ENDY`
## pp-center\*.png
center logo of pixelplanet

View File

@ -68,8 +68,13 @@ async def get_area(x, y, w, h, start_date, end_date):
cnt += 1
#frames.append(image.copy())
image.save('./timelapse/t%s.png' % (cnt))
async with session.get('https://pixelplanet.fun/api/history?day=%s&id=%s' % (iter_date, canvas_id)) as resp:
time_list = json.loads(await resp.text())
while True:
async with session.get('https://pixelplanet.fun/api/history?day=%s&id=%s' % (iter_date, canvas_id)) as resp:
try:
time_list = json.loads(await resp.text())
break
except:
print('Couldn\'t decode json for day %s, trying again' % (iter_date))
i = 0
for time in time_list:
i += 1

75
utils/liveLog.sh Executable file
View File

@ -0,0 +1,75 @@
#!/bin/bash
# this script parses the pixellogs live and shows which IPs are currently active in
# a given area and where they placed their last pixel
# Usage: ./liveLog.sh LOGFILE CANVASID STARTX_STARTY ENDX_ENDY
LOGFILE=$1
CANVAS=$2
STARTCOORDS=$3
ENDCOORDS=$4
STARTX=`echo ${STARTCOORDS} | sed 's/_.*$//'`
STARTY=`echo ${STARTCOORDS} | sed 's/^.*_//'`
ENDX=`echo ${ENDCOORDS} | sed 's/_.*$//'`
ENDY=`echo ${ENDCOORDS} | sed 's/^.*_//'`
if [ "$#" -ne 4 ]
then
echo " Usage: ./liveLog.sh LOGFILE CANVASID STARTX_STARTY ENDX_ENDY"
echo ""
echo "this script parses the pixellogs live and shows which IPs are currently active in "
echo "a given area and where they placed their last pixel"
exit 1
fi
parse_log()
{
while read -r -a args
do
CAN=${args[2]}
X=${args[3]}
Y=${args[4]}
if [ "$CAN" -eq "$CANVAS" -a "$X" -ge "$STARTX" -a "$X" -le "$ENDX" -a "$Y" -ge "$STARTY" -a "$Y" -le "$ENDY" ]
then
IP=${args[0]}
CLR=${args[6]}
printf "%-40s | %-18s | %5s\n" "$IP" "$X,$Y" "$CLR"
fi
done <&0
}
declare -A ACTIVEIPS
parse_log_active_ips()
{
while read -r -a args
do
CAN=${args[2]}
X=${args[3]}
Y=${args[4]}
if [ "$CAN" -eq "$CANVAS" -a "$X" -ge "$STARTX" -a "$X" -le "$ENDX" -a "$Y" -ge "$STARTY" -a "$Y" -le "$ENDY" ]
then
IP=${args[0]}
if [ -z "${ACTIVEIPS[$IP]}" ]
then
CNT=0
else
CNT=`echo ${ACTIVEIPS[$IP]} | sed 's/ .*//'`
fi
CNT=$((${CNT} + 1))
CLR=${args[6]}
ACTIVEIPS[$IP]="$CNT $IP $X,$Y $CLR"
print_active_ips | sort -rV
fi
done <&0
}
print_active_ips()
{
clear
for IP in "${!ACTIVEIPS[@]}"
do
printf "%-7s | %-40s | %-18s | %5s\n" ${ACTIVEIPS[$IP]}
done
}
tail -f ${LOGFILE} | parse_log_active_ips