dtr/webroot/owo.shs

88 lines
2.3 KiB
Bash

#!/bin/bash
lim=90
if [[ "$1" != '' ]]; then
data="storage/data/$(basename $1)"
elif [[ "${get_data[id]}" != '' ]]; then
data="storage/data/$(basename ${get_data[id]})"
header "Content-Type: image/svg+xml"
else
exit 0
fi
label="$(jq -r '.label' < $data | head -n 1 | tr ' ' '_')"
start_date="$(jq -r '.date' < $data | tail -n $lim | head -n1)"
end_date="$(jq -r '.date' < $data | tail -n1)"
tmp="$(mktemp)"
type="$(jq -r '.type' < $data | head -n 1)"
a=''
if [[ "$type" == "ping" ]]; then
timedata="$(jq -r '.time' < $data | tail -n $lim)"
while read line; do
echo -n 's@title=""></div>@title="'"$line"'"></div>@;'
done <<< "$(jq -r '"Name: \(.label)\\\\nPing time: \(.time)ms\\\\nDate: \(.date)"' < "$data" | tail -n $lim)" > $tmp
elif [[ "$type" == "req" ]]; then
timedata="$(jq -r '.status' < $data | tail -n $lim)"
a=""
for i in $timedata; do
if [[ "$i" -gt 0 ]]; then
a="${a}0#"
elif [[ "$i" == 0 ]]; then
a="${a}1#"
fi
done
timedata="$(tr '#' '\n' <<< "$a")"
while read line; do
echo -n 's@title=""></div>@title="'"$line"'"></div>@;'
done <<< "$(jq -r '"Name: \(.label)\\\\nDate: \(.date)"' < "$data" | tail -n $lim)" > $tmp
elif [[ "$type" == "port" ]]; then
timedata="$(jq -r '.status' < $data | tail -n $lim)"
for ii in $timedata; do
if [[ "$ii" -gt 0 ]]; then
a="${a}0#"
elif [[ "$ii" == 0 ]]; then
a="${a}1#"
fi
done
timedata="$(tr '#' '\n' <<< "$a")"
while read line; do
echo -n 's@title=""></div>@title="'"$line"'"></div>@;'
done <<< "$(jq -r '"Name: \(.label)\\\\nDate: \(.date)"' < "$data" | tail -n $lim)" > $tmp
fi
echo "<b>$label</b><br>"
for i in $timedata; do
if [[ "$type" != "ping" ]]; then
echo -n '<div class="bar '
if [[ "$i" == 1 ]]; then
echo -n "green"
elif [[ "$i" == 0 ]]; then
echo -n "vermillion"
else
echo -n "vermillion"
fi
echo '" title=""></div>'
else
n="$(sed -E 's/\..*//' <<< "$i")"
echo -n '<div class="bar '
if [[ "$n" -lt "${cfg[bar_ok]}" ]]; then
echo -n "green"
elif [[ "$n" -lt "${cfg[bar_info]}" ]]; then
echo -n "yellow"
elif [[ "$n" -lt "${cfg[bar_warn]}" ]]; then
echo -n "orange"
else
echo -n "vermillion"
fi
echo '" title=""></div>'
fi
done | tr -d '\n' | sed -f $tmp #| sed 's@###START_DATE###@'"$start_date"'@;s@###END_DATE###@'"$end_date"'@'
echo "<br><span>$start_date</span><span style='float:right;'>$end_date</span>"
rm $tmp