Show current level on all pages
Begin splitting code into functions
This commit is contained in:
parent
509e7fa4e3
commit
d618373dc9
42
add.html
42
add.html
@ -18,33 +18,11 @@
|
|||||||
|
|
||||||
. settings
|
. settings
|
||||||
|
|
||||||
if [ -n "$QUERY_STRING" ]
|
for lib in lib/*
|
||||||
then
|
do
|
||||||
query_data="${QUERY_STRING//&/
|
source $lib
|
||||||
}"
|
done
|
||||||
exprtime='[[:alnum:]-]+'
|
read_query_string
|
||||||
exprgraph='[[:alpha:]_]+'
|
|
||||||
while read name value
|
|
||||||
do
|
|
||||||
case $name in
|
|
||||||
start)
|
|
||||||
[[ $value =~ $exprtime ]] && start=$value
|
|
||||||
;;
|
|
||||||
end)
|
|
||||||
[[ $value =~ $exprtime ]] && end=$value
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done <<<"${query_data//=/ }"
|
|
||||||
fi
|
|
||||||
|
|
||||||
readprevvalues() {
|
|
||||||
shift
|
|
||||||
for arg
|
|
||||||
do
|
|
||||||
prevvalues+=( "$arg" )
|
|
||||||
done
|
|
||||||
}
|
|
||||||
readprevvalues $(rrdtool lastupdate ingress.rrd | tail -n1)
|
|
||||||
|
|
||||||
cat <<-EOHTML
|
cat <<-EOHTML
|
||||||
content-type: text/xml
|
content-type: text/xml
|
||||||
@ -91,7 +69,6 @@ Expires: $(LC_ALL=C TZ=GMT date +'%a, %d %b %Y %X %Z')
|
|||||||
<td class="menu-inv">Add data</td>
|
<td class="menu-inv">Add data</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
|
||||||
EOHTML
|
EOHTML
|
||||||
if ! [ -w "$rrdfile" ]
|
if ! [ -w "$rrdfile" ]
|
||||||
then
|
then
|
||||||
@ -138,6 +115,13 @@ then
|
|||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
|
readlast
|
||||||
|
medals
|
||||||
|
get_current_level
|
||||||
|
show_current_level
|
||||||
|
cat <<-EOHTML
|
||||||
|
</div>
|
||||||
|
EOHTML
|
||||||
cat <<-EOHTML
|
cat <<-EOHTML
|
||||||
<div class="main">
|
<div class="main">
|
||||||
<form method="post" action="add">
|
<form method="post" action="add">
|
||||||
@ -146,7 +130,7 @@ EOHTML
|
|||||||
|
|
||||||
for indice in ${!uinames[@]}
|
for indice in ${!uinames[@]}
|
||||||
do
|
do
|
||||||
echo "<li><input type=\"text\" name=\"${dsnames[indice]}\" value=\"${prevvalues[indice]}\" /> ${uinames[indice]}</li>"
|
echo "<li><input type=\"text\" name=\"${dsnames[indice]}\" value=\"${last["${dsnames[indice]}"]}\" /> ${uinames[indice]}</li>"
|
||||||
done
|
done
|
||||||
|
|
||||||
cat <<-EOHTML
|
cat <<-EOHTML
|
||||||
|
|||||||
229
index
229
index
@ -17,6 +17,11 @@
|
|||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
. settings
|
. settings
|
||||||
|
|
||||||
|
for lib in lib/*
|
||||||
|
do
|
||||||
|
source $lib
|
||||||
|
done
|
||||||
if [ ! -w "$rrdfile" ]
|
if [ ! -w "$rrdfile" ]
|
||||||
then
|
then
|
||||||
cat <<-EOHead
|
cat <<-EOHead
|
||||||
@ -29,45 +34,22 @@ then
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$QUERY_STRING" ]
|
read_query_string
|
||||||
then
|
|
||||||
query_data="${QUERY_STRING//&/
|
|
||||||
}"
|
|
||||||
exprtime='[[:alnum:]-]+'
|
|
||||||
exprgraph='[[:alpha:]_]+'
|
|
||||||
while read name value
|
|
||||||
do
|
|
||||||
case $name in
|
|
||||||
start)
|
|
||||||
[[ $value =~ $exprtime ]] && start=$value
|
|
||||||
;;
|
|
||||||
end)
|
|
||||||
[[ $value =~ $exprtime ]] && end=$value
|
|
||||||
;;
|
|
||||||
hist|trend)
|
|
||||||
show_graphs=1
|
|
||||||
;;
|
|
||||||
graph)
|
|
||||||
[[ $value =~ $exprgraph ]] && graph=$value
|
|
||||||
;;
|
|
||||||
show)
|
|
||||||
[[ $value == all ]] && show_all=1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done <<<"${query_data//=/ }"
|
|
||||||
fi
|
|
||||||
(( start >= end)) && (( end = start + 604800 ))
|
(( start >= end)) && (( end = start + 604800 ))
|
||||||
|
|
||||||
if [ -z "$graph" ]
|
if [ -z "$graph" ]
|
||||||
then
|
then
|
||||||
|
readlast
|
||||||
|
medals
|
||||||
|
get_current_level
|
||||||
if (( show_all ))
|
if (( show_all ))
|
||||||
then
|
then
|
||||||
title="IngRRD - $webuser - History & Trend: All stats"
|
title="IngRRD - $webuser [L$curlevel] - History & Trend: All stats"
|
||||||
elif (( show_graphs ))
|
elif (( show_graphs ))
|
||||||
then
|
then
|
||||||
title="IngRRD - $webuser - History & Trend: Badges"
|
title="IngRRD - $webuser [L$curlevel] - History & Trend: Badges"
|
||||||
else
|
else
|
||||||
title="IngRRD - $webuser - Overview"
|
title="IngRRD - $webuser [L$curlevel] - Overview"
|
||||||
fi
|
fi
|
||||||
cat <<-EOHTML
|
cat <<-EOHTML
|
||||||
content-type: application/xhtml+xml
|
content-type: application/xhtml+xml
|
||||||
@ -116,59 +98,12 @@ then
|
|||||||
<td class="menu"><a href="add.html?start=$start&end=$end"><b>Add data</b></a></td>
|
<td class="menu"><a href="add.html?start=$start&end=$end"><b>Add data</b></a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
EOHTML
|
||||||
|
show_current_level
|
||||||
|
cat <<-EOHTML
|
||||||
</div>
|
</div>
|
||||||
<div class="main">
|
<div class="main">
|
||||||
EOHTML
|
EOHTML
|
||||||
readarray -t lastupdatelines < <(
|
|
||||||
rrdtool lastupdate $rrdfile
|
|
||||||
)
|
|
||||||
indices=( ${lastupdatelines[0]} )
|
|
||||||
values=( ${lastupdatelines[2]#*:} )
|
|
||||||
declare -A last
|
|
||||||
for index in ${!indices[@]}
|
|
||||||
do
|
|
||||||
last["${indices[index]}"]=${values[index]}
|
|
||||||
done
|
|
||||||
unset indices values
|
|
||||||
|
|
||||||
for stat in "${medals[@]}"
|
|
||||||
do
|
|
||||||
if (( last["$stat"] >= bronze["$stat"] ))
|
|
||||||
then
|
|
||||||
(( bronzecount++ ))
|
|
||||||
bronzes+=( "$stat" )
|
|
||||||
else
|
|
||||||
upbronze[last["$stat"] * 100 / bronze["$stat"]]+="$stat "
|
|
||||||
fi
|
|
||||||
if (( last["$stat"] >= silver["$stat"] ))
|
|
||||||
then
|
|
||||||
(( silvercount++ ))
|
|
||||||
silvers+=( "$stat" )
|
|
||||||
else
|
|
||||||
upsilver[last["$stat"] * 100 / silver["$stat"]]+="$stat "
|
|
||||||
fi
|
|
||||||
if (( last["$stat"] >= gold["$stat"] ))
|
|
||||||
then
|
|
||||||
(( goldcount++ ))
|
|
||||||
golds+=( "$stat" )
|
|
||||||
else
|
|
||||||
upgold[last["$stat"] * 100 / gold["$stat"]]+="$stat "
|
|
||||||
fi
|
|
||||||
if (( last["$stat"] >= platinum["$stat"] ))
|
|
||||||
then
|
|
||||||
(( platinumcount++ ))
|
|
||||||
platinums+=( "$stat" )
|
|
||||||
else
|
|
||||||
upplatinum[last["$stat"] * 100 / platinum["$stat"]]+="$stat "
|
|
||||||
fi
|
|
||||||
if (( last["$stat"] >= black["$stat"] ))
|
|
||||||
then
|
|
||||||
(( blackcount++ ))
|
|
||||||
blacks+=( "$stat" )
|
|
||||||
else
|
|
||||||
upblack[last["$stat"] * 100 / black["$stat"]]+="$stat "
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
cat <<-EOHTML
|
cat <<-EOHTML
|
||||||
<div>
|
<div>
|
||||||
<table class="level">
|
<table class="level">
|
||||||
@ -180,86 +115,15 @@ then
|
|||||||
<th class="badge">Platinum</th>
|
<th class="badge">Platinum</th>
|
||||||
<th class="badge">Black</th>
|
<th class="badge">Black</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td />
|
|
||||||
<td class="AP">$(printf "%'li" ${last["AP"]})</td>
|
|
||||||
<td class="badge">
|
|
||||||
EOHTML
|
|
||||||
for stat in ${silvers[@]}
|
|
||||||
do
|
|
||||||
img=${stat,,}
|
|
||||||
cat <<-EOHTML
|
|
||||||
<a class="badge"
|
|
||||||
href="?hist&start=$start&end=$end#$stat">
|
|
||||||
<img
|
|
||||||
class="badge"
|
|
||||||
src="/${img//_/-}-silver.png"
|
|
||||||
title="$stat"
|
|
||||||
alt="$stat silver" />
|
|
||||||
</a>
|
|
||||||
EOHTML
|
|
||||||
done
|
|
||||||
cat <<-EOHTML
|
|
||||||
</td>
|
|
||||||
<td class="badge">
|
|
||||||
EOHTML
|
|
||||||
for stat in ${golds[@]}
|
|
||||||
do
|
|
||||||
img=${stat,,}
|
|
||||||
cat <<-EOHTML
|
|
||||||
<a class="badge"
|
|
||||||
href="?hist&start=$start&end=$end#$stat">
|
|
||||||
<img
|
|
||||||
class="badge"
|
|
||||||
src="/${img//_/-}-gold.png"
|
|
||||||
title="$stat"
|
|
||||||
alt="$stat gold" />
|
|
||||||
</a>
|
|
||||||
EOHTML
|
|
||||||
done
|
|
||||||
cat <<-EOHTML
|
|
||||||
</td>
|
|
||||||
<td class="badge">
|
|
||||||
EOHTML
|
|
||||||
for stat in ${platinums[@]}
|
|
||||||
do
|
|
||||||
img=${stat,,}
|
|
||||||
cat <<-EOHTML
|
|
||||||
<a class="badge"
|
|
||||||
href="?hist&start=$start&end=$end#$stat">
|
|
||||||
<img
|
|
||||||
class="badge"
|
|
||||||
src="/${img//_/-}-platinum.png"
|
|
||||||
title="$stat"
|
|
||||||
alt="$stat platinum" />
|
|
||||||
</a>
|
|
||||||
EOHTML
|
|
||||||
done
|
|
||||||
cat <<-EOHTML
|
|
||||||
</td>
|
|
||||||
<td class="badge">
|
|
||||||
EOHTML
|
|
||||||
for stat in ${blacks[@]}
|
|
||||||
do
|
|
||||||
img=${stat,,}
|
|
||||||
cat <<-EOHTML
|
|
||||||
<a class="badge"
|
|
||||||
href="?hist&start=$start&end=$end#$stat">
|
|
||||||
<img
|
|
||||||
class="badge"
|
|
||||||
src="/${img//_/-}-black.png"
|
|
||||||
title="$stat"
|
|
||||||
alt="$stat black" />
|
|
||||||
</a>
|
|
||||||
EOHTML
|
|
||||||
done
|
|
||||||
cat <<-EOHTML
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
EOHTML
|
EOHTML
|
||||||
for level in {1..16}
|
for level in {1..16}
|
||||||
do
|
do
|
||||||
echo "<tr><th class=\"level\">$level</th>"
|
if (( level <= curlevel ))
|
||||||
|
then
|
||||||
|
echo "<tr class=\"curlevel\"><th class=\"level\">$level</th>"
|
||||||
|
else
|
||||||
|
echo "<tr class=\"nextlevel\"><th class=\"level\">$level</th>"
|
||||||
|
fi
|
||||||
if (( last["AP"] >= lvl[level] ))
|
if (( last["AP"] >= lvl[level] ))
|
||||||
then
|
then
|
||||||
echo '<td class="AP" style="background:lightgreen">'
|
echo '<td class="AP" style="background:lightgreen">'
|
||||||
@ -276,6 +140,7 @@ then
|
|||||||
echo '<td class="badge" style="background:lightgreen">'${lvlsilver[level]}'</td>'
|
echo '<td class="badge" style="background:lightgreen">'${lvlsilver[level]}'</td>'
|
||||||
else
|
else
|
||||||
echo "<td class=\"badge\" style=\"background:lightgrey\">${lvlsilver[level]} (<span class=\"missing\">$(( silvercount - lvlsilver[level] ))</span>)<br />"
|
echo "<td class=\"badge\" style=\"background:lightgrey\">${lvlsilver[level]} (<span class=\"missing\">$(( silvercount - lvlsilver[level] ))</span>)<br />"
|
||||||
|
count=0
|
||||||
for id in {100..0}
|
for id in {100..0}
|
||||||
do
|
do
|
||||||
[ -z "${upsilver[id]}" ] && continue
|
[ -z "${upsilver[id]}" ] && continue
|
||||||
@ -296,6 +161,7 @@ then
|
|||||||
alt="$stat silver" />
|
alt="$stat silver" />
|
||||||
</a>
|
</a>
|
||||||
EOHTML
|
EOHTML
|
||||||
|
(( count++ == lvlsilver[level] - silvercount )) && break 2
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
echo '</td>'
|
echo '</td>'
|
||||||
@ -305,6 +171,7 @@ then
|
|||||||
echo '<td class="badge" style="background:lightgreen">'${lvlgold[level]}'</td>'
|
echo '<td class="badge" style="background:lightgreen">'${lvlgold[level]}'</td>'
|
||||||
else
|
else
|
||||||
echo "<td class=\"badge\" style=\"background:lightgrey\">${lvlgold[level]} (<span class=\"missing\">$(( goldcount - lvlgold[level] ))</span>)<br />"
|
echo "<td class=\"badge\" style=\"background:lightgrey\">${lvlgold[level]} (<span class=\"missing\">$(( goldcount - lvlgold[level] ))</span>)<br />"
|
||||||
|
count=0
|
||||||
for id in {100..0}
|
for id in {100..0}
|
||||||
do
|
do
|
||||||
[ -z "${upgold[id]}" ] && continue
|
[ -z "${upgold[id]}" ] && continue
|
||||||
@ -325,6 +192,7 @@ then
|
|||||||
alt="$stat gold" />
|
alt="$stat gold" />
|
||||||
</a>
|
</a>
|
||||||
EOHTML
|
EOHTML
|
||||||
|
(( count++ == lvlgold[level] - goldcount )) && break 2
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
echo '</td>'
|
echo '</td>'
|
||||||
@ -334,6 +202,7 @@ then
|
|||||||
echo '<td class="badge" style="background:lightgreen">'${lvlplatinum[level]}'</td>'
|
echo '<td class="badge" style="background:lightgreen">'${lvlplatinum[level]}'</td>'
|
||||||
else
|
else
|
||||||
echo "<td class=\"badge\" style=\"background:lightgrey\">${lvlplatinum[level]} (<span class=\"missing\">$(( platinumcount - lvlplatinum[level] ))</span>)<br />"
|
echo "<td class=\"badge\" style=\"background:lightgrey\">${lvlplatinum[level]} (<span class=\"missing\">$(( platinumcount - lvlplatinum[level] ))</span>)<br />"
|
||||||
|
count=0
|
||||||
for id in {100..0}
|
for id in {100..0}
|
||||||
do
|
do
|
||||||
[ -z "${upplatinum[id]}" ] && continue
|
[ -z "${upplatinum[id]}" ] && continue
|
||||||
@ -354,6 +223,7 @@ then
|
|||||||
alt="$stat platinum" />
|
alt="$stat platinum" />
|
||||||
</a>
|
</a>
|
||||||
EOHTML
|
EOHTML
|
||||||
|
(( count++ == lvlplatinum[level] - platinumcount )) && break 2
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
echo '</td>'
|
echo '</td>'
|
||||||
@ -363,6 +233,7 @@ then
|
|||||||
echo '<td class="badge" style="background:lightgreen">'${lvlblack[level]}'</td>'
|
echo '<td class="badge" style="background:lightgreen">'${lvlblack[level]}'</td>'
|
||||||
else
|
else
|
||||||
echo "<td class=\"badge\" style=\"background:lightgrey\">${lvlblack[level]} (<span class=\"missing\">$(( blackcount - lvlblack[level] ))</span>)<br />"
|
echo "<td class=\"badge\" style=\"background:lightgrey\">${lvlblack[level]} (<span class=\"missing\">$(( blackcount - lvlblack[level] ))</span>)<br />"
|
||||||
|
count=0
|
||||||
for id in {100..0}
|
for id in {100..0}
|
||||||
do
|
do
|
||||||
[ -z "${upblack[id]}" ] && continue
|
[ -z "${upblack[id]}" ] && continue
|
||||||
@ -383,6 +254,7 @@ then
|
|||||||
alt="$stat black" />
|
alt="$stat black" />
|
||||||
</a>
|
</a>
|
||||||
EOHTML
|
EOHTML
|
||||||
|
(( count++ == lvlblack[level] - blackcount )) && break 2
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
echo '</td>'
|
echo '</td>'
|
||||||
@ -402,7 +274,7 @@ then
|
|||||||
<td class="menu-inv">
|
<td class="menu-inv">
|
||||||
<table class="menu">
|
<table class="menu">
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2" class="menu-inv">History</td>
|
<td colspan="2" class="menu-inv">History & Trend</td>
|
||||||
</tr>
|
</tr>
|
||||||
EOHTML
|
EOHTML
|
||||||
if (( show_all ))
|
if (( show_all ))
|
||||||
@ -431,26 +303,29 @@ then
|
|||||||
<td class="menu"><a href="add.html?start=$start&end=$end"><b>Add data</b></a></td>
|
<td class="menu"><a href="add.html?start=$start&end=$end"><b>Add data</b></a></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<table style="width:$(( graph_width + 97 ))px">
|
EOHTML
|
||||||
<tr>
|
show_current_level
|
||||||
<td>
|
cat <<-EOHTML
|
||||||
<a href="?hist&start=$(( start - 604800 ))&end=$end"><<</a>
|
<table style="width:$(( graph_width + 97 ))px">
|
||||||
<a href="?hist&start=$(( start - 86400 ))&end=$end"><</a>
|
<tr>
|
||||||
<a href="?hist&start=$default_start&end=$end">R</a>
|
<td>
|
||||||
<a href="?hist&start=$(( start + 86400 ))&end=$end">></a>
|
<a href="?hist&start=$(( start - 604800 ))&end=$end"><<</a>
|
||||||
<a href="?hist&start=$(( start + 604800 ))&end=$end">>></a>
|
<a href="?hist&start=$(( start - 86400 ))&end=$end"><</a>
|
||||||
</td>
|
<a href="?hist&start=$default_start&end=$end">R</a>
|
||||||
<td align="right">
|
<a href="?hist&start=$(( start + 86400 ))&end=$end">></a>
|
||||||
<a href="?hist&start=$start&end=$(( end - 604800 ))"><<</a>
|
<a href="?hist&start=$(( start + 604800 ))&end=$end">>></a>
|
||||||
<a href="?hist&start=$start&end=$(( end - 86400 ))"><</a>
|
</td>
|
||||||
<a href="?hist&start=$start&end=$default_end">R</a>
|
<td align="right">
|
||||||
<a href="?hist&start=$start&end=$(( end + 86400 ))">></a>
|
<a href="?hist&start=$start&end=$(( end - 604800 ))"><<</a>
|
||||||
<a href="?hist&start=$start&end=$(( end + 604800 ))">>></a>
|
<a href="?hist&start=$start&end=$(( end - 86400 ))"><</a>
|
||||||
</td>
|
<a href="?hist&start=$start&end=$default_end">R</a>
|
||||||
</tr>
|
<a href="?hist&start=$start&end=$(( end + 86400 ))">></a>
|
||||||
</table>
|
<a href="?hist&start=$start&end=$(( end + 604800 ))">>></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div class="main">
|
<div class="maingraph">
|
||||||
EOHTML
|
EOHTML
|
||||||
|
|
||||||
if (( show_all ))
|
if (( show_all ))
|
||||||
|
|||||||
131
ingrrd.css
Normal file
131
ingrrd.css
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
/*
|
||||||
|
* IngRRD (https://forge.riquer.fr/p/ingrrd/)
|
||||||
|
* Copyright (C) 2014 Vincent Riquer
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
div.container {
|
||||||
|
position: relative;
|
||||||
|
clear: both;
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.menu {
|
||||||
|
z-index: 1000;
|
||||||
|
position: fixed;
|
||||||
|
top: 0px;
|
||||||
|
background: white;
|
||||||
|
border: 1px solid black;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.anchor {
|
||||||
|
position: relative;
|
||||||
|
top: -9.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.menu {
|
||||||
|
border: 1px solid black;
|
||||||
|
border-collapse: collapse;
|
||||||
|
text-align: center;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.menu-nobrd {
|
||||||
|
border-collapse: collapse;
|
||||||
|
text-align: center;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
td.menu {
|
||||||
|
border: 1px solid black;
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
td.menu-inv {
|
||||||
|
background: black;
|
||||||
|
color: white
|
||||||
|
}
|
||||||
|
td.submenu-inv {
|
||||||
|
background: #444;
|
||||||
|
color: white
|
||||||
|
}
|
||||||
|
|
||||||
|
div.main {
|
||||||
|
position: absolute;
|
||||||
|
top: 7.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.maingraph {
|
||||||
|
position: absolute;
|
||||||
|
top: 9.3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.curlevel {
|
||||||
|
width: 100%;
|
||||||
|
background: white;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.curlevel {
|
||||||
|
background: lightgreen;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr.nextlevel {
|
||||||
|
background: lightgrey;
|
||||||
|
}
|
||||||
|
|
||||||
|
td.curlevel {
|
||||||
|
color: rgb(105, 105, 0);
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
td.curbadge {
|
||||||
|
width: 145px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.level {
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
th.level,td.level {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
th.AP,td.AP {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
th.badge,td.badge {
|
||||||
|
width: 170px;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.badge {
|
||||||
|
color: black;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.badge {
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.minibadge {
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.missing {
|
||||||
|
color: red;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
20
lib/get_current_level
Normal file
20
lib/get_current_level
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
get_current_level() {
|
||||||
|
for level in {1..16}
|
||||||
|
do
|
||||||
|
if ((
|
||||||
|
last["AP"] >= lvl[level]
|
||||||
|
&& silvercount >= lvlsilver[level]
|
||||||
|
&& goldcount >= lvlgold[level]
|
||||||
|
&& platinumcount >= lvlplatinum[level]
|
||||||
|
&& blackcount >= lvlblack[level]
|
||||||
|
))
|
||||||
|
then
|
||||||
|
curlevel=$level
|
||||||
|
else
|
||||||
|
nextlevel=$level
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
32
lib/globals
Normal file
32
lib/globals
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
declare -A \
|
||||||
|
last \
|
||||||
|
|
||||||
|
declare -a \
|
||||||
|
bronzes \
|
||||||
|
silvers \
|
||||||
|
golds \
|
||||||
|
platinums \
|
||||||
|
blacks \
|
||||||
|
upbronze \
|
||||||
|
upsilver \
|
||||||
|
upgold \
|
||||||
|
upplatinum \
|
||||||
|
upblack \
|
||||||
|
|
||||||
|
declare -i \
|
||||||
|
bronzecount \
|
||||||
|
silvercount \
|
||||||
|
goldcount \
|
||||||
|
platinumcount \
|
||||||
|
blackcount \
|
||||||
|
show_graphs \
|
||||||
|
show_all \
|
||||||
|
curlevel \
|
||||||
|
|
||||||
|
declare \
|
||||||
|
graph \
|
||||||
|
start \
|
||||||
|
end \
|
||||||
|
|
||||||
45
lib/medals
Normal file
45
lib/medals
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
medals() {
|
||||||
|
local \
|
||||||
|
stat \
|
||||||
|
|
||||||
|
for stat in "${medals[@]}"
|
||||||
|
do
|
||||||
|
if (( last["$stat"] >= bronze["$stat"] ))
|
||||||
|
then
|
||||||
|
(( bronzecount++ ))
|
||||||
|
bronzes+=( "$stat" )
|
||||||
|
else
|
||||||
|
upbronze[last["$stat"] * 100 / bronze["$stat"]]+="$stat "
|
||||||
|
fi
|
||||||
|
if (( last["$stat"] >= silver["$stat"] ))
|
||||||
|
then
|
||||||
|
(( silvercount++ ))
|
||||||
|
silvers+=( "$stat" )
|
||||||
|
else
|
||||||
|
upsilver[last["$stat"] * 100 / silver["$stat"]]+="$stat "
|
||||||
|
fi
|
||||||
|
if (( last["$stat"] >= gold["$stat"] ))
|
||||||
|
then
|
||||||
|
(( goldcount++ ))
|
||||||
|
golds+=( "$stat" )
|
||||||
|
else
|
||||||
|
upgold[last["$stat"] * 100 / gold["$stat"]]+="$stat "
|
||||||
|
fi
|
||||||
|
if (( last["$stat"] >= platinum["$stat"] ))
|
||||||
|
then
|
||||||
|
(( platinumcount++ ))
|
||||||
|
platinums+=( "$stat" )
|
||||||
|
else
|
||||||
|
upplatinum[last["$stat"] * 100 / platinum["$stat"]]+="$stat "
|
||||||
|
fi
|
||||||
|
if (( last["$stat"] >= black["$stat"] ))
|
||||||
|
then
|
||||||
|
(( blackcount++ ))
|
||||||
|
blacks+=( "$stat" )
|
||||||
|
else
|
||||||
|
upblack[last["$stat"] * 100 / black["$stat"]]+="$stat "
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
38
lib/read_query_string
Normal file
38
lib/read_query_string
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
read_query_string() {
|
||||||
|
local \
|
||||||
|
exprgraph \
|
||||||
|
exprtime \
|
||||||
|
name \
|
||||||
|
query_data \
|
||||||
|
value \
|
||||||
|
|
||||||
|
if [ -n "$QUERY_STRING" ]
|
||||||
|
then
|
||||||
|
query_data="${QUERY_STRING//&/
|
||||||
|
}"
|
||||||
|
exprtime='[[:alnum:]-]+'
|
||||||
|
exprgraph='[[:alpha:]_]+'
|
||||||
|
while read name value
|
||||||
|
do
|
||||||
|
case $name in
|
||||||
|
start)
|
||||||
|
[[ $value =~ $exprtime ]] && start=$value
|
||||||
|
;;
|
||||||
|
end)
|
||||||
|
[[ $value =~ $exprtime ]] && end=$value
|
||||||
|
;;
|
||||||
|
hist|trend)
|
||||||
|
show_graphs=1
|
||||||
|
;;
|
||||||
|
graph)
|
||||||
|
[[ $value =~ $exprgraph ]] && graph=$value
|
||||||
|
;;
|
||||||
|
show)
|
||||||
|
[[ $value == all ]] && show_all=1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done <<<"${query_data//=/ }"
|
||||||
|
fi
|
||||||
|
}
|
||||||
19
lib/readlast
Normal file
19
lib/readlast
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
readlast() {
|
||||||
|
local \
|
||||||
|
index \
|
||||||
|
indices \
|
||||||
|
lastupdatelines \
|
||||||
|
values \
|
||||||
|
|
||||||
|
readarray -t lastupdatelines < <(
|
||||||
|
rrdtool lastupdate $rrdfile
|
||||||
|
)
|
||||||
|
indices=( ${lastupdatelines[0]} )
|
||||||
|
values=( ${lastupdatelines[2]#*:} )
|
||||||
|
for index in ${!indices[@]}
|
||||||
|
do
|
||||||
|
last["${indices[index]}"]=${values[index]}
|
||||||
|
done
|
||||||
|
}
|
||||||
256
lib/show_current_level
Normal file
256
lib/show_current_level
Normal file
@ -0,0 +1,256 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
show_current_level() {
|
||||||
|
cat <<-EOHTML
|
||||||
|
<table class="curlevel" style="width:$(( graph_width + 97 ))px">
|
||||||
|
<tr class="curlevel">
|
||||||
|
<td class="curlevel">L$curlevel</td>
|
||||||
|
<td class="curAP">$(printf "%'li" ${last["AP"]}) AP</td>
|
||||||
|
<td class="curbadge">
|
||||||
|
EOHTML
|
||||||
|
for stat in ${bronzes[@]}
|
||||||
|
do
|
||||||
|
img=${stat,,}
|
||||||
|
cat <<-EOHTML
|
||||||
|
<a class="badge"
|
||||||
|
href="?hist&start=$start&end=$end#$stat">
|
||||||
|
<img
|
||||||
|
class="minibadge"
|
||||||
|
src="/${img//_/-}-bronze.png"
|
||||||
|
title="$stat"
|
||||||
|
alt="$stat bronze" />
|
||||||
|
</a>
|
||||||
|
EOHTML
|
||||||
|
done
|
||||||
|
for id in {100..0}
|
||||||
|
do
|
||||||
|
[ -z "${upbronze[id]}" ] && continue
|
||||||
|
(( greenlevel = id * 255 / 100 ))
|
||||||
|
(( redlevel = 255 - greenlevel ))
|
||||||
|
for stat in ${upbronze[id]}
|
||||||
|
do
|
||||||
|
img=${stat,,}
|
||||||
|
cat <<-EOHTML
|
||||||
|
<a
|
||||||
|
class="badge"
|
||||||
|
style="background:#$(printf %02x%02x $redlevel $greenlevel )00"
|
||||||
|
href="?hist&start=$start&end=$end#$stat">
|
||||||
|
<img
|
||||||
|
class="minibadge"
|
||||||
|
src="/${img//_/-}-bronze.png"
|
||||||
|
title="$stat $id%"
|
||||||
|
alt="$stat bronze" />
|
||||||
|
</a>
|
||||||
|
EOHTML
|
||||||
|
done
|
||||||
|
done
|
||||||
|
cat <<-EOHTML
|
||||||
|
</td>
|
||||||
|
<td class="curbadge">
|
||||||
|
EOHTML
|
||||||
|
for stat in ${silvers[@]}
|
||||||
|
do
|
||||||
|
img=${stat,,}
|
||||||
|
cat <<-EOHTML
|
||||||
|
<a class="badge"
|
||||||
|
href="?hist&start=$start&end=$end#$stat">
|
||||||
|
<img
|
||||||
|
class="minibadge"
|
||||||
|
src="/${img//_/-}-silver.png"
|
||||||
|
title="$stat"
|
||||||
|
alt="$stat silver" />
|
||||||
|
</a>
|
||||||
|
EOHTML
|
||||||
|
done
|
||||||
|
for id in {100..0}
|
||||||
|
do
|
||||||
|
[ -z "${upsilver[id]}" ] && continue
|
||||||
|
(( greenlevel = id * 255 / 100 ))
|
||||||
|
(( redlevel = 255 - greenlevel ))
|
||||||
|
for stat in ${upsilver[id]}
|
||||||
|
do
|
||||||
|
img=${stat,,}
|
||||||
|
cat <<-EOHTML
|
||||||
|
<a
|
||||||
|
class="badge"
|
||||||
|
style="background:#$(printf %02x%02x $redlevel $greenlevel )00"
|
||||||
|
href="?hist&start=$start&end=$end#$stat">
|
||||||
|
<img
|
||||||
|
class="minibadge"
|
||||||
|
src="/${img//_/-}-silver.png"
|
||||||
|
title="$stat $id%"
|
||||||
|
alt="$stat silver" />
|
||||||
|
</a>
|
||||||
|
EOHTML
|
||||||
|
done
|
||||||
|
done
|
||||||
|
cat <<-EOHTML
|
||||||
|
</td>
|
||||||
|
<td class="curbadge">
|
||||||
|
EOHTML
|
||||||
|
for stat in ${golds[@]}
|
||||||
|
do
|
||||||
|
img=${stat,,}
|
||||||
|
cat <<-EOHTML
|
||||||
|
<a class="badge"
|
||||||
|
href="?hist&start=$start&end=$end#$stat">
|
||||||
|
<img
|
||||||
|
class="minibadge"
|
||||||
|
src="/${img//_/-}-gold.png"
|
||||||
|
title="$stat"
|
||||||
|
alt="$stat gold" />
|
||||||
|
</a>
|
||||||
|
EOHTML
|
||||||
|
done
|
||||||
|
for id in {100..0}
|
||||||
|
do
|
||||||
|
[ -z "${upgold[id]}" ] && continue
|
||||||
|
(( greenlevel = id * 255 / 100 ))
|
||||||
|
(( redlevel = 255 - greenlevel ))
|
||||||
|
for stat in ${upgold[id]}
|
||||||
|
do
|
||||||
|
img=${stat,,}
|
||||||
|
cat <<-EOHTML
|
||||||
|
<a
|
||||||
|
class="badge"
|
||||||
|
style="background:#$(printf %02x%02x $redlevel $greenlevel )00"
|
||||||
|
href="?hist&start=$start&end=$end#$stat">
|
||||||
|
<img
|
||||||
|
class="minibadge"
|
||||||
|
src="/${img//_/-}-gold.png"
|
||||||
|
title="$stat $id%"
|
||||||
|
alt="$stat gold" />
|
||||||
|
</a>
|
||||||
|
EOHTML
|
||||||
|
done
|
||||||
|
done
|
||||||
|
cat <<-EOHTML
|
||||||
|
</td>
|
||||||
|
<td class="curbadge">
|
||||||
|
EOHTML
|
||||||
|
for stat in ${platinums[@]}
|
||||||
|
do
|
||||||
|
img=${stat,,}
|
||||||
|
cat <<-EOHTML
|
||||||
|
<a class="badge"
|
||||||
|
href="?hist&start=$start&end=$end#$stat">
|
||||||
|
<img
|
||||||
|
class="minibadge"
|
||||||
|
src="/${img//_/-}-platinum.png"
|
||||||
|
title="$stat"
|
||||||
|
alt="$stat platinum" />
|
||||||
|
</a>
|
||||||
|
EOHTML
|
||||||
|
done
|
||||||
|
for id in {100..0}
|
||||||
|
do
|
||||||
|
[ -z "${upplatinum[id]}" ] && continue
|
||||||
|
(( greenlevel = id * 255 / 100 ))
|
||||||
|
(( redlevel = 255 - greenlevel ))
|
||||||
|
for stat in ${upplatinum[id]}
|
||||||
|
do
|
||||||
|
img=${stat,,}
|
||||||
|
cat <<-EOHTML
|
||||||
|
<a
|
||||||
|
class="badge"
|
||||||
|
style="background:#$(printf %02x%02x $redlevel $greenlevel )00"
|
||||||
|
href="?hist&start=$start&end=$end#$stat">
|
||||||
|
<img
|
||||||
|
class="minibadge"
|
||||||
|
src="/${img//_/-}-platinum.png"
|
||||||
|
title="$stat $id%"
|
||||||
|
alt="$stat platinum" />
|
||||||
|
</a>
|
||||||
|
EOHTML
|
||||||
|
done
|
||||||
|
done
|
||||||
|
cat <<-EOHTML
|
||||||
|
</td>
|
||||||
|
<td class="curbadge">
|
||||||
|
EOHTML
|
||||||
|
for stat in ${blacks[@]}
|
||||||
|
do
|
||||||
|
img=${stat,,}
|
||||||
|
cat <<-EOHTML
|
||||||
|
<a class="badge"
|
||||||
|
href="?hist&start=$start&end=$end#$stat">
|
||||||
|
<img
|
||||||
|
class="minibadge"
|
||||||
|
src="/${img//_/-}-black.png"
|
||||||
|
title="$stat"
|
||||||
|
alt="$stat black" />
|
||||||
|
</a>
|
||||||
|
EOHTML
|
||||||
|
done
|
||||||
|
for id in {100..0}
|
||||||
|
do
|
||||||
|
[ -z "${upblack[id]}" ] && continue
|
||||||
|
(( greenlevel = id * 255 / 100 ))
|
||||||
|
(( redlevel = 255 - greenlevel ))
|
||||||
|
for stat in ${upblack[id]}
|
||||||
|
do
|
||||||
|
img=${stat,,}
|
||||||
|
cat <<-EOHTML
|
||||||
|
<a
|
||||||
|
class="badge"
|
||||||
|
style="background:#$(printf %02x%02x $redlevel $greenlevel )00"
|
||||||
|
href="?hist&start=$start&end=$end#$stat">
|
||||||
|
<img
|
||||||
|
class="minibadge"
|
||||||
|
src="/${img//_/-}-black.png"
|
||||||
|
title="$stat $id%"
|
||||||
|
alt="$stat black" />
|
||||||
|
</a>
|
||||||
|
EOHTML
|
||||||
|
done
|
||||||
|
done
|
||||||
|
cat <<-EOHTML
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="nextlevel">
|
||||||
|
<td class="curevel">L$nextlevel</td>
|
||||||
|
EOHTML
|
||||||
|
readable=$(printf "%'li" ${lvl[nextlevel]})
|
||||||
|
if (( last["AP"] >= lvl[nextlevel] ))
|
||||||
|
then
|
||||||
|
style='style="background:lightgreen"'
|
||||||
|
else
|
||||||
|
style=''
|
||||||
|
fi
|
||||||
|
cat <<-EOHTML
|
||||||
|
<td class="curAP" $style>${readable// / } AP</td>
|
||||||
|
<td />
|
||||||
|
EOHTML
|
||||||
|
if (( silvercount >= lvlsilver[level] ))
|
||||||
|
then
|
||||||
|
echo '<td class="curbadge" style="background:lightgreen">'${lvlsilver[level]}'</td>'
|
||||||
|
else
|
||||||
|
echo "<td class=\"curbadge\" style=\"background:lightgrey\">${lvlsilver[level]} (<span class=\"missing\">$(( silvercount - lvlsilver[level] ))</span>)"
|
||||||
|
echo '</td>'
|
||||||
|
fi
|
||||||
|
if (( goldcount >= lvlgold[level] ))
|
||||||
|
then
|
||||||
|
echo '<td class="curbadge" style="background:lightgreen">'${lvlgold[level]}'</td>'
|
||||||
|
else
|
||||||
|
echo "<td class=\"curbadge\" style=\"background:lightgrey\">${lvlgold[level]} (<span class=\"missing\">$(( goldcount - lvlgold[level] ))</span>)"
|
||||||
|
echo '</td>'
|
||||||
|
fi
|
||||||
|
if (( platinumcount >= lvlplatinum[level] ))
|
||||||
|
then
|
||||||
|
echo '<td class="curbadge" style="background:lightgreen">'${lvlplatinum[level]}'</td>'
|
||||||
|
else
|
||||||
|
echo "<td class=\"curbadge\" style=\"background:lightgrey\">${lvlplatinum[level]} (<span class=\"missing\">$(( platinumcount - lvlplatinum[level] ))</span>)"
|
||||||
|
echo '</td>'
|
||||||
|
fi
|
||||||
|
if (( blackcount >= lvlblack[level] ))
|
||||||
|
then
|
||||||
|
echo '<td class="curbadge" style="background:lightgreen">'${lvlblack[level]}'</td>'
|
||||||
|
else
|
||||||
|
echo "<td class=\"curbadge\" style=\"background:lightgrey\">${lvlblack[level]} (<span class=\"missing\">$(( blackcount - lvlblack[level] ))</span>)"
|
||||||
|
echo '</td>'
|
||||||
|
fi
|
||||||
|
cat <<-EOHTML
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
EOHTML
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user