Merge branch 'master' into prod
* master: SEE THE FUCKING FUTURE!
This commit is contained in:
commit
b3463f0ea5
288
index
288
index
@ -42,6 +42,8 @@ then
|
||||
readlast
|
||||
medals
|
||||
get_current_level
|
||||
readold "${last[time]}-$prevperiod"
|
||||
get_next_level
|
||||
if (( show_all ))
|
||||
then
|
||||
title="IngRRD - $webuser [L$curlevel] - History & Trend: All stats"
|
||||
@ -132,148 +134,172 @@ then
|
||||
<th class="badge">Black</th>
|
||||
</tr>
|
||||
EOHTML
|
||||
|
||||
for level in {1..16}
|
||||
do
|
||||
never=0
|
||||
maxtimestamp=0
|
||||
tableline=()
|
||||
if (( last["AP"] >= lvl[level] ))
|
||||
then
|
||||
tableline+=( '<td class="AP" style="background:lightgreen">'
|
||||
$(printf "%'li" ${lvl[level]})
|
||||
'</td>' )
|
||||
else
|
||||
#FIXME
|
||||
readable=$(printf "%'li" ${lvl[level]})
|
||||
tableline+=( '<td class="AP" style="background:lightgrey">'"${readable// / }" )
|
||||
readable=$(printf "%'li" $(( last["AP"] - lvl[level] )))
|
||||
tableline+=( "<br />(<span class=\"missing\">${readable// / }</span>)" )
|
||||
if (( timestamp ))
|
||||
then
|
||||
tableline+=( "<br />$(date +%Y-%m-%d -d @${nextlevels[level]})</td>" )
|
||||
(( nextlevels[level] > maxtimestamp )) \
|
||||
&& maxtimestamp=${nextlevels[level]}
|
||||
else
|
||||
tableline+=( "<br />(maybe some day)</td>" )
|
||||
never=1
|
||||
fi
|
||||
fi
|
||||
if (( silvercount >= lvlsilver[level] ))
|
||||
then
|
||||
tableline+=( '<td class="badge" style="background:lightgreen">'${lvlsilver[level]}'</td>' )
|
||||
else
|
||||
tableline+=( "<td class=\"badge\" style=\"background:lightgrey\">${lvlsilver[level]} (<span class=\"missing\">$(( silvercount - lvlsilver[level] ))</span>)<br />" )
|
||||
count=0
|
||||
for timestamp in ${!nextsilver[@]}
|
||||
do
|
||||
if (( timestamp ))
|
||||
then
|
||||
thisdate=$(date +%Y-%m-%d -d @$timestamp)
|
||||
(( timestamp > maxtimestamp )) \
|
||||
&& maxtimestamp=$timestamp
|
||||
for stat in ${nextsilver[timestamp]}
|
||||
do
|
||||
tableline+=( "$(print_medal $timestamp $stat ${upsilver[$stat]})" )
|
||||
tableline+=( '<br />' )
|
||||
(( ++count == lvlsilver[level] - silvercount )) && break 2
|
||||
done
|
||||
fi
|
||||
done
|
||||
for stat in ${nextsilver[0]}
|
||||
do
|
||||
(( count >= lvlsilver[level] - silvercount )) && break 1
|
||||
(( count < lvlsilver[level] - silvercount )) && never=1
|
||||
tableline+=( "$(print_medal $timestamp $stat ${upsilver[$stat]})" )
|
||||
tableline+=( '<br />' )
|
||||
(( count++ ))
|
||||
done
|
||||
tableline+=( '</td>' )
|
||||
fi
|
||||
if (( goldcount >= lvlgold[level] ))
|
||||
then
|
||||
tableline+=( '<td class="badge" style="background:lightgreen">'${lvlgold[level]}'</td>' )
|
||||
else
|
||||
tableline+=( "<td class=\"badge\" style=\"background:lightgrey\">${lvlgold[level]} (<span class=\"missing\">$(( goldcount - lvlgold[level] ))</span>)<br />" )
|
||||
count=0
|
||||
for timestamp in ${!nextgold[@]}
|
||||
do
|
||||
if (( timestamp ))
|
||||
then
|
||||
thisdate=$(date +%Y-%m-%d -d @$timestamp)
|
||||
(( timestamp > maxtimestamp )) \
|
||||
&& maxtimestamp=$timestamp
|
||||
for stat in ${nextgold[timestamp]}
|
||||
do
|
||||
tableline+=( "$(print_medal $timestamp $stat ${upgold[$stat]})" )
|
||||
tableline+=( '<br />' )
|
||||
(( ++count == lvlgold[level] - goldcount )) && break 2
|
||||
done
|
||||
fi
|
||||
done
|
||||
for stat in ${nextgold[0]}
|
||||
do
|
||||
(( count >= lvlgold[level] - goldcount )) && break 1
|
||||
(( count < lvlgold[level] - goldcount )) && never=1
|
||||
tableline+=( "$(print_medal $timestamp $stat ${upgold[$stat]})" )
|
||||
tableline+=( '<br />' )
|
||||
(( count++ ))
|
||||
done
|
||||
tableline+=( '</td>' )
|
||||
fi
|
||||
if (( platinumcount >= lvlplatinum[level] ))
|
||||
then
|
||||
tableline+=( '<td class="badge" style="background:lightgreen">'${lvlplatinum[level]}'</td>' )
|
||||
else
|
||||
tableline+=( "<td class=\"badge\" style=\"background:lightgrey\">${lvlplatinum[level]} (<span class=\"missing\">$(( platinumcount - lvlplatinum[level] ))</span>)<br />" )
|
||||
count=0
|
||||
for timestamp in ${!nextplatinum[@]}
|
||||
do
|
||||
if (( timestamp ))
|
||||
then
|
||||
thisdate=$(date +%Y-%m-%d -d @$timestamp)
|
||||
(( timestamp > maxtimestamp )) \
|
||||
&& maxtimestamp=$timestamp
|
||||
for stat in ${nextplatinum[timestamp]}
|
||||
do
|
||||
tableline+=( "$(print_medal $timestamp $stat ${upplatinum[$stat]})" )
|
||||
tableline+=( '<br />' )
|
||||
(( ++count == lvlplatinum[level] - platinumcount )) && break 2
|
||||
done
|
||||
fi
|
||||
done
|
||||
for stat in ${nextplatinum[0]}
|
||||
do
|
||||
(( count >= lvlplatinum[level] - platinumcount )) && break 1
|
||||
(( count < lvlplatinum[level] - platinumcount )) && never=1
|
||||
tableline+=( "$(print_medal $timestamp $stat ${upplatinum[$stat]})" )
|
||||
tableline+=( '<br />' )
|
||||
(( count++ ))
|
||||
done
|
||||
tableline+=( '</td>' )
|
||||
fi
|
||||
if (( blackcount >= lvlblack[level] ))
|
||||
then
|
||||
tableline+=( '<td class="badge" style="background:lightgreen">'${lvlblack[level]}'</td>' )
|
||||
else
|
||||
tableline+=( "<td class=\"badge\" style=\"background:lightgrey\">${lvlblack[level]} (<span class=\"missing\">$(( blackcount - lvlblack[level] ))</span>)<br />" )
|
||||
count=0
|
||||
for timestamp in ${!nextblack[@]}
|
||||
do
|
||||
if (( timestamp ))
|
||||
then
|
||||
thisdate=$(date +%Y-%m-%d -d @$timestamp)
|
||||
(( timestamp > maxtimestamp )) \
|
||||
&& maxtimestamp=$timestamp
|
||||
for stat in ${nextblack[timestamp]}
|
||||
do
|
||||
tableline+=( "$(print_medal $timestamp $stat ${upblack[$stat]})" )
|
||||
tableline+=( '<br />' )
|
||||
(( ++count == lvlblack[level] - blackcount )) && break 2
|
||||
done
|
||||
fi
|
||||
done
|
||||
for stat in ${nextblack[0]}
|
||||
do
|
||||
(( count >= lvlblack[level] - blackcount )) && break 1
|
||||
(( count < lvlblack[level] - blackcount )) && never=1
|
||||
tableline+=( "$(print_medal $timestamp $stat ${upblack[$stat]})" )
|
||||
tableline+=( '<br />' )
|
||||
(( count++ ))
|
||||
done
|
||||
tableline+=( '</td>' )
|
||||
fi
|
||||
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] ))
|
||||
then
|
||||
echo '<td class="AP" style="background:lightgreen">'
|
||||
printf "%'li" ${lvl[level]}
|
||||
echo '</td>'
|
||||
else
|
||||
readable=$(printf "%'li" ${lvl[level]})
|
||||
echo '<td class="AP" style="background:lightgrey">'"${readable// / }"
|
||||
readable=$(printf "%'li" $(( last["AP"] - lvl[level] )))
|
||||
echo "<br />(<span class=\"missing\">${readable// / }</span>)</td>"
|
||||
fi
|
||||
if (( silvercount >= lvlsilver[level] ))
|
||||
then
|
||||
echo '<td class="badge" style="background:lightgreen">'${lvlsilver[level]}'</td>'
|
||||
else
|
||||
echo "<td class=\"badge\" style=\"background:lightgrey\">${lvlsilver[level]} (<span class=\"missing\">$(( silvercount - lvlsilver[level] ))</span>)<br />"
|
||||
count=0
|
||||
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="badge"
|
||||
src="/${img//_/-}-silver.png"
|
||||
title="$stat $id%"
|
||||
alt="$stat silver" />
|
||||
</a>
|
||||
<tr class="nextlevel">
|
||||
<th class="level">$level</th>
|
||||
EOHTML
|
||||
(( count++ == lvlsilver[level] - silvercount )) && break 2
|
||||
done
|
||||
done
|
||||
echo '</td>'
|
||||
fi
|
||||
if (( goldcount >= lvlgold[level] ))
|
||||
echo "${tableline[@]}"
|
||||
if (( level > curlevel ))
|
||||
then
|
||||
echo '<td class="badge" style="background:lightgreen">'${lvlgold[level]}'</td>'
|
||||
else
|
||||
echo "<td class=\"badge\" style=\"background:lightgrey\">${lvlgold[level]} (<span class=\"missing\">$(( goldcount - lvlgold[level] ))</span>)<br />"
|
||||
count=0
|
||||
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="badge"
|
||||
src="/${img//_/-}-gold.png"
|
||||
title="$stat $id%"
|
||||
alt="$stat gold" />
|
||||
</a>
|
||||
<td class="date">$(date +%Y-%m-%d -d @$maxtimestamp)</td>
|
||||
EOHTML
|
||||
(( count++ == lvlgold[level] - goldcount )) && break 2
|
||||
done
|
||||
done
|
||||
echo '</td>'
|
||||
fi
|
||||
if (( platinumcount >= lvlplatinum[level] ))
|
||||
then
|
||||
echo '<td class="badge" style="background:lightgreen">'${lvlplatinum[level]}'</td>'
|
||||
else
|
||||
echo "<td class=\"badge\" style=\"background:lightgrey\">${lvlplatinum[level]} (<span class=\"missing\">$(( platinumcount - lvlplatinum[level] ))</span>)<br />"
|
||||
count=0
|
||||
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="badge"
|
||||
src="/${img//_/-}-platinum.png"
|
||||
title="$stat $id%"
|
||||
alt="$stat platinum" />
|
||||
</a>
|
||||
EOHTML
|
||||
(( count++ == lvlplatinum[level] - platinumcount )) && break 2
|
||||
done
|
||||
done
|
||||
echo '</td>'
|
||||
fi
|
||||
if (( blackcount >= lvlblack[level] ))
|
||||
then
|
||||
echo '<td class="badge" style="background:lightgreen">'${lvlblack[level]}'</td>'
|
||||
else
|
||||
echo "<td class=\"badge\" style=\"background:lightgrey\">${lvlblack[level]} (<span class=\"missing\">$(( blackcount - lvlblack[level] ))</span>)<br />"
|
||||
count=0
|
||||
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="badge"
|
||||
src="/${img//_/-}-black.png"
|
||||
title="$stat $id%"
|
||||
alt="$stat black" />
|
||||
</a>
|
||||
EOHTML
|
||||
(( count++ == lvlblack[level] - blackcount )) && break 2
|
||||
done
|
||||
done
|
||||
echo '</td>'
|
||||
fi
|
||||
echo '</tr>'
|
||||
done
|
||||
@ -415,7 +441,7 @@ then
|
||||
</a>
|
||||
</td>
|
||||
<td style="text-align:center">
|
||||
Generated by <a href="https://forge.riquer.fr/p/ingrrd/">IngRRD</a> © 2014 Vincent Riquer
|
||||
Generated by <a href="https://forge.riquer.fr/p/ingrrd/">IngRRD</a> © 2014-2015 Vincent Riquer
|
||||
</td>
|
||||
<td style="text-align:right; width:180px">
|
||||
<a href="http://www.fsf.org/licensing/licenses/agpl-3.0.html">
|
||||
|
||||
@ -113,7 +113,7 @@ th.AP,td.AP {
|
||||
}
|
||||
|
||||
th.badge,td.badge {
|
||||
width: 170px;
|
||||
/* width: 170px;*/
|
||||
}
|
||||
|
||||
a.badge {
|
||||
|
||||
108
lib/get_next_level
Normal file
108
lib/get_next_level
Normal file
@ -0,0 +1,108 @@
|
||||
#!/bin/bash
|
||||
|
||||
get_next_level() {
|
||||
local level
|
||||
next=()
|
||||
for (( level = curlevel + 1; level <= 16; level++))
|
||||
do
|
||||
if (( lvl[level] > last["AP"] ))
|
||||
then
|
||||
next+=(
|
||||
CDEF:nextcross$level=pred,${lvl[level]},GE,pred,UNKN,IF
|
||||
VDEF:nexttime$level=nextcross$level,FIRST
|
||||
"PRINT:nexttime$level:$level %s:strftime"
|
||||
)
|
||||
fi
|
||||
done
|
||||
{
|
||||
read
|
||||
while read level timestamp
|
||||
do
|
||||
nextlevels[level]=$timestamp
|
||||
done
|
||||
} < <(
|
||||
rrdtool graph /dev/null -s ${first["time"]%:} -e +15y \
|
||||
DEF:data=$rrdfile:AP:AVERAGE:step=600 \
|
||||
VDEF:intercept=data,LSLINT \
|
||||
VDEF:growth=data,LSLSLOPE \
|
||||
CDEF:trend=data,POP,COUNT,growth,*,intercept,+ \
|
||||
CDEF:pred=TIME,NOW,GE,trend,UNKN,IF \
|
||||
"${next[@]}"
|
||||
)
|
||||
|
||||
for stat in ${medals[@]}
|
||||
do
|
||||
next=()
|
||||
if ! (( hasbronze[$stat] ))
|
||||
then
|
||||
next+=(
|
||||
CDEF:nextcrossbronze=pred,${bronze[$stat]},GE,pred,UNKN,IF
|
||||
VDEF:nexttimebronze=nextcrossbronze,FIRST
|
||||
"PRINT:nexttimebronze:bronze %s:strftime"
|
||||
)
|
||||
fi
|
||||
if ! (( hassilver[$stat] ))
|
||||
then
|
||||
next+=(
|
||||
CDEF:nextcrosssilver=pred,${silver[$stat]},GE,pred,UNKN,IF
|
||||
VDEF:nexttimesilver=nextcrosssilver,FIRST
|
||||
"PRINT:nexttimesilver:silver %s:strftime"
|
||||
)
|
||||
fi
|
||||
if ! (( hasgold[$stat] ))
|
||||
then
|
||||
next+=(
|
||||
CDEF:nextcrossgold=pred,${gold[$stat]},GE,pred,UNKN,IF
|
||||
VDEF:nexttimegold=nextcrossgold,FIRST
|
||||
"PRINT:nexttimegold:gold %s:strftime"
|
||||
)
|
||||
fi
|
||||
if ! (( hasplatinum[$stat] ))
|
||||
then
|
||||
next+=(
|
||||
CDEF:nextcrossplatinum=pred,${platinum[$stat]},GE,pred,UNKN,IF
|
||||
VDEF:nexttimeplatinum=nextcrossplatinum,FIRST
|
||||
"PRINT:nexttimeplatinum:platinum %s:strftime"
|
||||
)
|
||||
fi
|
||||
if ! (( hasblack[$stat] ))
|
||||
then
|
||||
next+=(
|
||||
CDEF:nextcrossblack=pred,${black[$stat]},GE,pred,UNKN,IF
|
||||
VDEF:nexttimeblack=nextcrossblack,FIRST
|
||||
"PRINT:nexttimeblack:black %s:strftime"
|
||||
)
|
||||
fi
|
||||
{
|
||||
read
|
||||
while read matter timestamp
|
||||
do
|
||||
case $matter in
|
||||
bronze)
|
||||
nextbronze[timestamp]+="$stat "
|
||||
;;
|
||||
silver)
|
||||
nextsilver[timestamp]+="$stat "
|
||||
;;
|
||||
gold)
|
||||
nextgold[timestamp]+="$stat "
|
||||
;;
|
||||
platinum)
|
||||
nextplatinum[timestamp]+="$stat "
|
||||
;;
|
||||
black)
|
||||
nextblack[timestamp]+="$stat "
|
||||
;;
|
||||
esac
|
||||
done
|
||||
} < <(
|
||||
rrdtool graph /dev/null -s ${first["time"]%:} -e +15y \
|
||||
DEF:data=$rrdfile:$stat:AVERAGE:step=600 \
|
||||
VDEF:intercept=data,LSLINT \
|
||||
VDEF:growth=data,LSLSLOPE \
|
||||
CDEF:trend=data,POP,COUNT,growth,*,intercept,+ \
|
||||
CDEF:pred=TIME,NOW,GE,trend,UNKN,IF \
|
||||
"${next[@]}"
|
||||
)
|
||||
done
|
||||
}
|
||||
22
lib/globals
22
lib/globals
@ -6,6 +6,17 @@ declare -A \
|
||||
nogold \
|
||||
noplatinum \
|
||||
noblack \
|
||||
upbronze \
|
||||
upsilver \
|
||||
upgold \
|
||||
upplatinum \
|
||||
upblack \
|
||||
hasbronze \
|
||||
hassilver \
|
||||
hasgold \
|
||||
hasplatinum \
|
||||
hasblack \
|
||||
first \
|
||||
|
||||
declare -a \
|
||||
bronzes \
|
||||
@ -13,11 +24,11 @@ declare -a \
|
||||
golds \
|
||||
platinums \
|
||||
blacks \
|
||||
upbronze \
|
||||
upsilver \
|
||||
upgold \
|
||||
upplatinum \
|
||||
upblack \
|
||||
nextbronze \
|
||||
nextsilver \
|
||||
nextgold \
|
||||
nextplatinum \
|
||||
nextblack \
|
||||
|
||||
declare -i \
|
||||
bronzecount \
|
||||
@ -33,6 +44,7 @@ declare \
|
||||
graph \
|
||||
start \
|
||||
end \
|
||||
prevperiod \
|
||||
|
||||
want_ds=(
|
||||
AP
|
||||
|
||||
17
lib/medals
17
lib/medals
@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
/bin/bash: :n: command not found
|
||||
|
||||
medals() {
|
||||
local \
|
||||
@ -51,16 +51,18 @@ medals() {
|
||||
then
|
||||
(( bronzecount++ ))
|
||||
bronzes+=( "$stat" )
|
||||
hasbronze["$stat"]=1
|
||||
else
|
||||
upbronze[last["$stat"] * 100 / bronze["$stat"]]+="$stat "
|
||||
(( upbronze["$stat"]=last["$stat"] * 100 / bronze["$stat"]))
|
||||
fi
|
||||
if (( last["$stat"] >= silver["$stat"] ))
|
||||
then
|
||||
(( silvercount++ ))
|
||||
silvers+=( "$stat" )
|
||||
hassilver["$stat"]=1
|
||||
elif (( last["$stat"] >= bronze["$stat"] ))
|
||||
then
|
||||
upsilver[( last["$stat"] - bronze["$stat"] ) * 100 / ( silver["$stat"] - bronze["$stat"] )]+="$stat "
|
||||
(( upsilver["$stat"]=( last["$stat"] - bronze["$stat"] ) * 100 / ( silver["$stat"] - bronze["$stat"] ) ))
|
||||
else
|
||||
nosilver["$stat"]=1
|
||||
fi
|
||||
@ -68,9 +70,10 @@ medals() {
|
||||
then
|
||||
(( goldcount++ ))
|
||||
golds+=( "$stat" )
|
||||
hasgold["$stat"]=1
|
||||
elif (( last["$stat"] >= silver["$stat"] ))
|
||||
then
|
||||
upgold[( last["$stat"] - silver["$stat"] ) * 100 / ( gold["$stat"] - silver["$stat"] )]+="$stat "
|
||||
(( upgold["$stat"]=( last["$stat"] - silver["$stat"] ) * 100 / ( gold["$stat"] - silver["$stat"] ) ))
|
||||
else
|
||||
nogold["$stat"]=1
|
||||
fi
|
||||
@ -78,9 +81,10 @@ medals() {
|
||||
then
|
||||
(( platinumcount++ ))
|
||||
platinums+=( "$stat" )
|
||||
hasplatinum["$stat"]=1
|
||||
elif (( last["$stat"] >= gold["$stat"] ))
|
||||
then
|
||||
upplatinum[( last["$stat"] - gold["$stat"] ) * 100 / ( platinum["$stat"] - gold["$stat"] )]+="$stat "
|
||||
(( upplatinum["$stat"]=( last["$stat"] - gold["$stat"] ) * 100 / ( platinum["$stat"] - gold["$stat"] ) ))
|
||||
else
|
||||
noplatinum["$stat"]=1
|
||||
fi
|
||||
@ -88,9 +92,10 @@ medals() {
|
||||
then
|
||||
(( blackcount++ ))
|
||||
blacks+=( "$stat" )
|
||||
hasblack["$stat"]=1
|
||||
elif (( last["$stat"] >= platinum["$stat"] ))
|
||||
then
|
||||
upblack[( last["$stat"] - platinum["$stat"] ) * 100 / ( black["$stat"] - platinum["$stat"] )]+="$stat "
|
||||
(( upblack["$stat"]=( last["$stat"] - platinum["$stat"]) * 100 / ( black["$stat"] - platinum["$stat"] ) ))
|
||||
else
|
||||
noblack["$stat"]=1
|
||||
fi
|
||||
|
||||
30
lib/print_medal
Normal file
30
lib/print_medal
Normal file
@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
print_medal() {
|
||||
local \
|
||||
timestamp=$1 \
|
||||
stat=$2 \
|
||||
percent=$3 \
|
||||
|
||||
if (( timestamp ))
|
||||
then
|
||||
thisdate=$(date +%Y-%m-%d -d @$timestamp)
|
||||
else
|
||||
thisdate="maybe some day..."
|
||||
fi
|
||||
img=${stat,,}
|
||||
(( greenlevel = percent * 255 / 100 ))
|
||||
(( redlevel = 255 - greenlevel ))
|
||||
cat <<-EOHTML
|
||||
<a
|
||||
class="badge"
|
||||
style="background:#$(printf %02x%02x $redlevel $greenlevel )00"
|
||||
href="?hist&start=$start&end=$end#$stat">
|
||||
<img
|
||||
class="badge"
|
||||
src="/${img//_/-}-silver.png"
|
||||
title="$stat $percent%"
|
||||
alt="$stat silver" />
|
||||
</a> ($thisdate)
|
||||
EOHTML
|
||||
}
|
||||
@ -14,6 +14,7 @@ read_query_string() {
|
||||
}"
|
||||
exprtime='[[:alnum:]-]+'
|
||||
exprgraph='[[:alpha:]_]+'
|
||||
exprprev='[[:digit:]]+[(d(ay)?)(w(eek)?)(month)(y(ear)?)]'
|
||||
while read name value
|
||||
do
|
||||
case $name in
|
||||
@ -32,6 +33,9 @@ read_query_string() {
|
||||
show)
|
||||
[[ $value == all ]] && show_all=1
|
||||
;;
|
||||
prevperiod)
|
||||
[[ $value =~ $exprprev ]] && prevperiod=$value
|
||||
;;
|
||||
esac
|
||||
done <<<"${query_data//=/ }"
|
||||
fi
|
||||
|
||||
@ -11,6 +11,7 @@ readlast() {
|
||||
rrdtool lastupdate $rrdfile
|
||||
)
|
||||
indices=( ${lastupdatelines[0]} )
|
||||
last["time"]=${lastupdatelines[2]%:*}
|
||||
values=( ${lastupdatelines[2]#*:} )
|
||||
for index in ${!indices[@]}
|
||||
do
|
||||
|
||||
23
lib/readold
Normal file
23
lib/readold
Normal file
@ -0,0 +1,23 @@
|
||||
#!/bin/bash
|
||||
|
||||
readold() {
|
||||
local when=$1 \
|
||||
line \
|
||||
dataindex \
|
||||
empty \
|
||||
id \
|
||||
LANG=C
|
||||
{
|
||||
read line
|
||||
dataindex=( $line )
|
||||
read empty
|
||||
read first['time'] $(
|
||||
for id in ${dataindex[@]}
|
||||
do
|
||||
echo "first['"$id"']"
|
||||
done
|
||||
)
|
||||
} < <(
|
||||
rrdtool fetch -s "$when" ingress.rrd AVERAGE | sed '/: nan/d'
|
||||
)
|
||||
}
|
||||
@ -22,13 +22,15 @@ show_current_level() {
|
||||
</a>
|
||||
EOHTML
|
||||
done
|
||||
for id in {100..0}
|
||||
for timestamp in ${!nextbronze[@]}
|
||||
do
|
||||
[ -z "${upbronze[id]}" ] && continue
|
||||
(( greenlevel = id * 255 / 100 ))
|
||||
(( timestamp )) || continue
|
||||
for stat in ${nextbronze[timestamp]}
|
||||
do
|
||||
if (( upbronze[$stat] ))
|
||||
then
|
||||
(( greenlevel = upbronze[$stat] * 255 / 100 ))
|
||||
(( redlevel = 255 - greenlevel ))
|
||||
for stat in ${upbronze[id]}
|
||||
do
|
||||
img=${stat,,}
|
||||
cat <<-EOHTML
|
||||
<a
|
||||
@ -38,12 +40,50 @@ show_current_level() {
|
||||
<img
|
||||
class="minibadge"
|
||||
src="/${img//_/-}-bronze.png"
|
||||
title="$stat $id%"
|
||||
title="$stat ${upbronze[$stat]}%
|
||||
($(date -d @$timestamp +%Y-%m-%d))"
|
||||
alt="$stat bronze" />
|
||||
</a>
|
||||
EOHTML
|
||||
fi
|
||||
done
|
||||
done
|
||||
for stat in ${nextbronze[0]}
|
||||
do
|
||||
img=${stat,,}
|
||||
if (( upbronze[$stat] ))
|
||||
then
|
||||
(( greenlevel = upbronze[$stat] * 255 / 100 ))
|
||||
(( redlevel = 255 - greenlevel ))
|
||||
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 ${upbronze[$stat]}%
|
||||
(maybe one day)"
|
||||
alt="$stat bronze" />
|
||||
</a>
|
||||
EOHTML
|
||||
else
|
||||
cat <<-EOHTML
|
||||
<a
|
||||
class="badge"
|
||||
style="background:#ff0000"
|
||||
href="?hist&start=$start&end=$end#$stat">
|
||||
<img
|
||||
class="minibadge"
|
||||
src="/${img//_/-}-bronze.png"
|
||||
title="$stat 0%
|
||||
(maybe one day)"
|
||||
alt="$stat bronze" />
|
||||
</a>
|
||||
EOHTML
|
||||
fi
|
||||
done
|
||||
cat <<-EOHTML
|
||||
</td>
|
||||
<td class="curbadge">
|
||||
@ -62,14 +102,16 @@ show_current_level() {
|
||||
</a>
|
||||
EOHTML
|
||||
done
|
||||
for id in {100..0}
|
||||
for timestamp in ${!nextsilver[@]}
|
||||
do
|
||||
[ -z "${upsilver[id]}" ] && continue
|
||||
(( greenlevel = id * 255 / 100 ))
|
||||
(( redlevel = 255 - greenlevel ))
|
||||
for stat in ${upsilver[id]}
|
||||
(( timestamp )) || continue
|
||||
for stat in ${nextsilver[timestamp]}
|
||||
do
|
||||
img=${stat,,}
|
||||
if (( upsilver[$stat] ))
|
||||
then
|
||||
(( greenlevel = upsilver[$stat] * 255 / 100 ))
|
||||
(( redlevel = 255 - greenlevel ))
|
||||
cat <<-EOHTML
|
||||
<a
|
||||
class="badge"
|
||||
@ -78,15 +120,12 @@ show_current_level() {
|
||||
<img
|
||||
class="minibadge"
|
||||
src="/${img//_/-}-silver.png"
|
||||
title="$stat $id%"
|
||||
title="$stat ${upsilver[$stat]}%
|
||||
($(date -d @$timestamp +%Y-%m-%d))"
|
||||
alt="$stat silver" />
|
||||
</a>
|
||||
EOHTML
|
||||
done
|
||||
done
|
||||
for stat in ${!nosilver[@]}
|
||||
do
|
||||
img=${stat,,}
|
||||
else
|
||||
cat <<-EOHTML
|
||||
<a
|
||||
class="badge"
|
||||
@ -94,10 +133,48 @@ show_current_level() {
|
||||
<img
|
||||
class="nominibadge"
|
||||
src="/${img//_/-}-silver.png"
|
||||
title="$stat $id%"
|
||||
title="$stat
|
||||
($(date -d @$timestamp +%Y-%m-%d))"
|
||||
alt="$stat silver" />
|
||||
</a>
|
||||
EOHTML
|
||||
fi
|
||||
done
|
||||
done
|
||||
for stat in ${nextsilver[0]}
|
||||
do
|
||||
img=${stat,,}
|
||||
if (( upsilver[$stat] ))
|
||||
then
|
||||
(( greenlevel = upsilver[$stat] * 255 / 100 ))
|
||||
(( redlevel = 255 - greenlevel ))
|
||||
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 ${upsilver[$stat]}%
|
||||
($(date -d @$timestamp +%Y-%m-%d))"
|
||||
alt="$stat silver" />
|
||||
</a>
|
||||
EOHTML
|
||||
else
|
||||
cat <<-EOHTML
|
||||
<a
|
||||
class="badge"
|
||||
href="?hist&start=$start&end=$end#$stat">
|
||||
<img
|
||||
class="nominibadge"
|
||||
src="/${img//_/-}-silver.png"
|
||||
title="$stat
|
||||
($(date -d @$timestamp +%Y-%m-%d))"
|
||||
alt="$stat silver" />
|
||||
</a>
|
||||
EOHTML
|
||||
fi
|
||||
done
|
||||
cat <<-EOHTML
|
||||
</td>
|
||||
@ -117,14 +194,16 @@ show_current_level() {
|
||||
</a>
|
||||
EOHTML
|
||||
done
|
||||
for id in {100..0}
|
||||
for timestamp in ${!nextgold[@]}
|
||||
do
|
||||
[ -z "${upgold[id]}" ] && continue
|
||||
(( greenlevel = id * 255 / 100 ))
|
||||
(( redlevel = 255 - greenlevel ))
|
||||
for stat in ${upgold[id]}
|
||||
(( timestamp )) || continue
|
||||
for stat in ${nextgold[timestamp]}
|
||||
do
|
||||
img=${stat,,}
|
||||
if (( upgold[$stat] ))
|
||||
then
|
||||
(( greenlevel = upgold[$stat] * 255 / 100 ))
|
||||
(( redlevel = 255 - greenlevel ))
|
||||
cat <<-EOHTML
|
||||
<a
|
||||
class="badge"
|
||||
@ -133,15 +212,12 @@ show_current_level() {
|
||||
<img
|
||||
class="minibadge"
|
||||
src="/${img//_/-}-gold.png"
|
||||
title="$stat $id%"
|
||||
title="$stat ${upgold[$stat]}%
|
||||
($(date -d @$timestamp +%Y-%m-%d))"
|
||||
alt="$stat gold" />
|
||||
</a>
|
||||
EOHTML
|
||||
done
|
||||
done
|
||||
for stat in ${!nogold[@]}
|
||||
do
|
||||
img=${stat,,}
|
||||
else
|
||||
cat <<-EOHTML
|
||||
<a
|
||||
class="badge"
|
||||
@ -149,10 +225,48 @@ show_current_level() {
|
||||
<img
|
||||
class="nominibadge"
|
||||
src="/${img//_/-}-gold.png"
|
||||
title="$stat $id%"
|
||||
title="$stat
|
||||
($(date -d @$timestamp +%Y-%m-%d))"
|
||||
alt="$stat gold" />
|
||||
</a>
|
||||
EOHTML
|
||||
fi
|
||||
done
|
||||
done
|
||||
for stat in ${nextgold[0]}
|
||||
do
|
||||
img=${stat,,}
|
||||
if (( upgold[$stat] ))
|
||||
then
|
||||
(( greenlevel = upgold[$stat] * 255 / 100 ))
|
||||
(( redlevel = 255 - greenlevel ))
|
||||
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 ${upgold[$stat]}%
|
||||
($(date -d @$timestamp +%Y-%m-%d))"
|
||||
alt="$stat gold" />
|
||||
</a>
|
||||
EOHTML
|
||||
else
|
||||
cat <<-EOHTML
|
||||
<a
|
||||
class="badge"
|
||||
href="?hist&start=$start&end=$end#$stat">
|
||||
<img
|
||||
class="nominibadge"
|
||||
src="/${img//_/-}-gold.png"
|
||||
title="$stat
|
||||
($(date -d @$timestamp +%Y-%m-%d))"
|
||||
alt="$stat gold" />
|
||||
</a>
|
||||
EOHTML
|
||||
fi
|
||||
done
|
||||
cat <<-EOHTML
|
||||
</td>
|
||||
@ -172,14 +286,16 @@ show_current_level() {
|
||||
</a>
|
||||
EOHTML
|
||||
done
|
||||
for id in {100..0}
|
||||
for timestamp in ${!nextplatinum[@]}
|
||||
do
|
||||
[ -z "${upplatinum[id]}" ] && continue
|
||||
(( greenlevel = id * 255 / 100 ))
|
||||
(( redlevel = 255 - greenlevel ))
|
||||
for stat in ${upplatinum[id]}
|
||||
(( timestamp )) || continue
|
||||
for stat in ${nextplatinum[timestamp]}
|
||||
do
|
||||
img=${stat,,}
|
||||
if (( upplatinum[$stat] ))
|
||||
then
|
||||
(( greenlevel = upplatinum[$stat] * 255 / 100 ))
|
||||
(( redlevel = 255 - greenlevel ))
|
||||
cat <<-EOHTML
|
||||
<a
|
||||
class="badge"
|
||||
@ -188,15 +304,12 @@ show_current_level() {
|
||||
<img
|
||||
class="minibadge"
|
||||
src="/${img//_/-}-platinum.png"
|
||||
title="$stat $id%"
|
||||
title="$stat ${upplatinum[$stat]}%
|
||||
($(date -d @$timestamp +%Y-%m-%d))"
|
||||
alt="$stat platinum" />
|
||||
</a>
|
||||
EOHTML
|
||||
done
|
||||
done
|
||||
for stat in ${!noplatinum[@]}
|
||||
do
|
||||
img=${stat,,}
|
||||
else
|
||||
cat <<-EOHTML
|
||||
<a
|
||||
class="badge"
|
||||
@ -204,10 +317,48 @@ show_current_level() {
|
||||
<img
|
||||
class="nominibadge"
|
||||
src="/${img//_/-}-platinum.png"
|
||||
title="$stat $id%"
|
||||
title="$stat
|
||||
($(date -d @$timestamp +%Y-%m-%d))"
|
||||
alt="$stat platinum" />
|
||||
</a>
|
||||
EOHTML
|
||||
fi
|
||||
done
|
||||
done
|
||||
for stat in ${nextplatinum[0]}
|
||||
do
|
||||
img=${stat,,}
|
||||
if (( upplatinum[$stat] ))
|
||||
then
|
||||
(( greenlevel = upplatinum[$stat] * 255 / 100 ))
|
||||
(( redlevel = 255 - greenlevel ))
|
||||
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 ${upplatinum[$stat]}%
|
||||
($(date -d @$timestamp +%Y-%m-%d))"
|
||||
alt="$stat platinum" />
|
||||
</a>
|
||||
EOHTML
|
||||
else
|
||||
cat <<-EOHTML
|
||||
<a
|
||||
class="badge"
|
||||
href="?hist&start=$start&end=$end#$stat">
|
||||
<img
|
||||
class="nominibadge"
|
||||
src="/${img//_/-}-platinum.png"
|
||||
title="$stat
|
||||
($(date -d @$timestamp +%Y-%m-%d))"
|
||||
alt="$stat platinum" />
|
||||
</a>
|
||||
EOHTML
|
||||
fi
|
||||
done
|
||||
cat <<-EOHTML
|
||||
</td>
|
||||
@ -227,14 +378,16 @@ show_current_level() {
|
||||
</a>
|
||||
EOHTML
|
||||
done
|
||||
for id in {100..0}
|
||||
for timestamp in ${!nextblack[@]}
|
||||
do
|
||||
[ -z "${upblack[id]}" ] && continue
|
||||
(( greenlevel = id * 255 / 100 ))
|
||||
(( redlevel = 255 - greenlevel ))
|
||||
for stat in ${upblack[id]}
|
||||
(( timestamp )) || continue
|
||||
for stat in ${nextblack[timestamp]}
|
||||
do
|
||||
img=${stat,,}
|
||||
if (( upblack[$stat] ))
|
||||
then
|
||||
(( greenlevel = upblack[$stat] * 255 / 100 ))
|
||||
(( redlevel = 255 - greenlevel ))
|
||||
cat <<-EOHTML
|
||||
<a
|
||||
class="badge"
|
||||
@ -243,15 +396,12 @@ show_current_level() {
|
||||
<img
|
||||
class="minibadge"
|
||||
src="/${img//_/-}-black.png"
|
||||
title="$stat $id%"
|
||||
title="$stat ${upblack[$stat]}%
|
||||
($(date -d @$timestamp +%Y-%m-%d))"
|
||||
alt="$stat black" />
|
||||
</a>
|
||||
EOHTML
|
||||
done
|
||||
done
|
||||
for stat in ${!noblack[@]}
|
||||
do
|
||||
img=${stat,,}
|
||||
else
|
||||
cat <<-EOHTML
|
||||
<a
|
||||
class="badge"
|
||||
@ -259,10 +409,48 @@ show_current_level() {
|
||||
<img
|
||||
class="nominibadge"
|
||||
src="/${img//_/-}-black.png"
|
||||
title="$stat $id%"
|
||||
title="$stat
|
||||
($(date -d @$timestamp +%Y-%m-%d))"
|
||||
alt="$stat black" />
|
||||
</a>
|
||||
EOHTML
|
||||
fi
|
||||
done
|
||||
done
|
||||
for stat in ${nextblack[0]}
|
||||
do
|
||||
img=${stat,,}
|
||||
if (( upblack[$stat] ))
|
||||
then
|
||||
(( greenlevel = upblack[$stat] * 255 / 100 ))
|
||||
(( redlevel = 255 - greenlevel ))
|
||||
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 ${upblack[$stat]}%
|
||||
(maybe one day)"
|
||||
alt="$stat black" />
|
||||
</a>
|
||||
EOHTML
|
||||
else
|
||||
cat <<-EOHTML
|
||||
<a
|
||||
class="badge"
|
||||
href="?hist&start=$start&end=$end#$stat">
|
||||
<img
|
||||
class="nominibadge"
|
||||
src="/${img//_/-}-black.png"
|
||||
title="$stat
|
||||
(maybe one day)"
|
||||
alt="$stat black" />
|
||||
</a>
|
||||
EOHTML
|
||||
fi
|
||||
done
|
||||
cat <<-EOHTML
|
||||
</td>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user