SEE THE FUCKING FUTURE!

This commit is contained in:
Vincent Riquer 2015-01-30 12:09:03 +01:00
parent 338209ed31
commit 8964230c5b
11 changed files with 634 additions and 235 deletions

288
index
View File

@ -42,6 +42,8 @@ then
readlast readlast
medals medals
get_current_level get_current_level
readold "${last[time]}-$prevperiod"
get_next_level
if (( show_all )) if (( show_all ))
then then
title="IngRRD - $webuser [L$curlevel] - History & Trend: All stats" title="IngRRD - $webuser [L$curlevel] - History & Trend: All stats"
@ -132,148 +134,172 @@ then
<th class="badge">Black</th> <th class="badge">Black</th>
</tr> </tr>
EOHTML EOHTML
for level in {1..16} for level in {1..16}
do 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// /&nbsp;}" )
readable=$(printf "%'li" $(( last["AP"] - lvl[level] )))
tableline+=( "<br />(<span class=\"missing\">${readable// /&nbsp;}</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 )) if (( level <= curlevel ))
then then
echo "<tr class=\"curlevel\"><th class=\"level\">$level</th>" echo "<tr class=\"curlevel\"><th class=\"level\">$level</th>"
else 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// /&nbsp;}"
readable=$(printf "%'li" $(( last["AP"] - lvl[level] )))
echo "<br />(<span class=\"missing\">${readable// /&nbsp;}</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 cat <<-EOHTML
<a <tr class="nextlevel">
class="badge" <th class="level">$level</th>
style="background:#$(printf %02x%02x $redlevel $greenlevel )00"
href="?hist&amp;start=$start&amp;end=$end#$stat">
<img
class="badge"
src="/${img//_/-}-silver.png"
title="$stat $id%"
alt="$stat silver" />
</a>
EOHTML EOHTML
(( count++ == lvlsilver[level] - silvercount )) && break 2
done
done
echo '</td>'
fi fi
if (( goldcount >= lvlgold[level] )) echo "${tableline[@]}"
if (( level > curlevel ))
then 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 cat <<-EOHTML
<a <td class="date">$(date +%Y-%m-%d -d @$maxtimestamp)</td>
class="badge"
style="background:#$(printf %02x%02x $redlevel $greenlevel )00"
href="?hist&amp;start=$start&amp;end=$end#$stat">
<img
class="badge"
src="/${img//_/-}-gold.png"
title="$stat $id%"
alt="$stat gold" />
</a>
EOHTML 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&amp;start=$start&amp;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&amp;start=$start&amp;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 fi
echo '</tr>' echo '</tr>'
done done
@ -415,7 +441,7 @@ then
</a> </a>
</td> </td>
<td style="text-align:center"> <td style="text-align:center">
Generated by <a href="https://forge.riquer.fr/p/ingrrd/">IngRRD</a> &copy; 2014 Vincent Riquer Generated by <a href="https://forge.riquer.fr/p/ingrrd/">IngRRD</a> &copy; 2014-2015 Vincent Riquer
</td> </td>
<td style="text-align:right; width:180px"> <td style="text-align:right; width:180px">
<a href="http://www.fsf.org/licensing/licenses/agpl-3.0.html"> <a href="http://www.fsf.org/licensing/licenses/agpl-3.0.html">

View File

@ -113,7 +113,7 @@ th.AP,td.AP {
} }
th.badge,td.badge { th.badge,td.badge {
width: 170px; /* width: 170px;*/
} }
a.badge { a.badge {

108
lib/get_next_level Normal file
View 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
}

View File

@ -6,6 +6,17 @@ declare -A \
nogold \ nogold \
noplatinum \ noplatinum \
noblack \ noblack \
upbronze \
upsilver \
upgold \
upplatinum \
upblack \
hasbronze \
hassilver \
hasgold \
hasplatinum \
hasblack \
first \
declare -a \ declare -a \
bronzes \ bronzes \
@ -13,11 +24,11 @@ declare -a \
golds \ golds \
platinums \ platinums \
blacks \ blacks \
upbronze \ nextbronze \
upsilver \ nextsilver \
upgold \ nextgold \
upplatinum \ nextplatinum \
upblack \ nextblack \
declare -i \ declare -i \
bronzecount \ bronzecount \
@ -33,6 +44,7 @@ declare \
graph \ graph \
start \ start \
end \ end \
prevperiod \
want_ds=( want_ds=(
AP AP

View File

@ -1,4 +1,4 @@
#!/bin/bash /bin/bash: :n: command not found
medals() { medals() {
local \ local \
@ -51,16 +51,18 @@ medals() {
then then
(( bronzecount++ )) (( bronzecount++ ))
bronzes+=( "$stat" ) bronzes+=( "$stat" )
hasbronze["$stat"]=1
else else
upbronze[last["$stat"] * 100 / bronze["$stat"]]+="$stat " (( upbronze["$stat"]=last["$stat"] * 100 / bronze["$stat"]))
fi fi
if (( last["$stat"] >= silver["$stat"] )) if (( last["$stat"] >= silver["$stat"] ))
then then
(( silvercount++ )) (( silvercount++ ))
silvers+=( "$stat" ) silvers+=( "$stat" )
hassilver["$stat"]=1
elif (( last["$stat"] >= bronze["$stat"] )) elif (( last["$stat"] >= bronze["$stat"] ))
then then
upsilver[( last["$stat"] - bronze["$stat"] ) * 100 / ( silver["$stat"] - bronze["$stat"] )]+="$stat " (( upsilver["$stat"]=( last["$stat"] - bronze["$stat"] ) * 100 / ( silver["$stat"] - bronze["$stat"] ) ))
else else
nosilver["$stat"]=1 nosilver["$stat"]=1
fi fi
@ -68,9 +70,10 @@ medals() {
then then
(( goldcount++ )) (( goldcount++ ))
golds+=( "$stat" ) golds+=( "$stat" )
hasgold["$stat"]=1
elif (( last["$stat"] >= silver["$stat"] )) elif (( last["$stat"] >= silver["$stat"] ))
then then
upgold[( last["$stat"] - silver["$stat"] ) * 100 / ( gold["$stat"] - silver["$stat"] )]+="$stat " (( upgold["$stat"]=( last["$stat"] - silver["$stat"] ) * 100 / ( gold["$stat"] - silver["$stat"] ) ))
else else
nogold["$stat"]=1 nogold["$stat"]=1
fi fi
@ -78,9 +81,10 @@ medals() {
then then
(( platinumcount++ )) (( platinumcount++ ))
platinums+=( "$stat" ) platinums+=( "$stat" )
hasplatinum["$stat"]=1
elif (( last["$stat"] >= gold["$stat"] )) elif (( last["$stat"] >= gold["$stat"] ))
then then
upplatinum[( last["$stat"] - gold["$stat"] ) * 100 / ( platinum["$stat"] - gold["$stat"] )]+="$stat " (( upplatinum["$stat"]=( last["$stat"] - gold["$stat"] ) * 100 / ( platinum["$stat"] - gold["$stat"] ) ))
else else
noplatinum["$stat"]=1 noplatinum["$stat"]=1
fi fi
@ -88,9 +92,10 @@ medals() {
then then
(( blackcount++ )) (( blackcount++ ))
blacks+=( "$stat" ) blacks+=( "$stat" )
hasblack["$stat"]=1
elif (( last["$stat"] >= platinum["$stat"] )) elif (( last["$stat"] >= platinum["$stat"] ))
then then
upblack[( last["$stat"] - platinum["$stat"] ) * 100 / ( black["$stat"] - platinum["$stat"] )]+="$stat " (( upblack["$stat"]=( last["$stat"] - platinum["$stat"]) * 100 / ( black["$stat"] - platinum["$stat"] ) ))
else else
noblack["$stat"]=1 noblack["$stat"]=1
fi fi

30
lib/print_medal Normal file
View 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&amp;start=$start&amp;end=$end#$stat">
<img
class="badge"
src="/${img//_/-}-silver.png"
title="$stat $percent%"
alt="$stat silver" />
</a>&nbsp;($thisdate)
EOHTML
}

View File

@ -14,6 +14,7 @@ read_query_string() {
}" }"
exprtime='[[:alnum:]-]+' exprtime='[[:alnum:]-]+'
exprgraph='[[:alpha:]_]+' exprgraph='[[:alpha:]_]+'
exprprev='[[:digit:]]+[(d(ay)?)(w(eek)?)(month)(y(ear)?)]'
while read name value while read name value
do do
case $name in case $name in
@ -32,6 +33,9 @@ read_query_string() {
show) show)
[[ $value == all ]] && show_all=1 [[ $value == all ]] && show_all=1
;; ;;
prevperiod)
[[ $value =~ $exprprev ]] && prevperiod=$value
;;
esac esac
done <<<"${query_data//=/ }" done <<<"${query_data//=/ }"
fi fi

View File

@ -11,6 +11,7 @@ readlast() {
rrdtool lastupdate $rrdfile rrdtool lastupdate $rrdfile
) )
indices=( ${lastupdatelines[0]} ) indices=( ${lastupdatelines[0]} )
last["time"]=${lastupdatelines[2]%:*}
values=( ${lastupdatelines[2]#*:} ) values=( ${lastupdatelines[2]#*:} )
for index in ${!indices[@]} for index in ${!indices[@]}
do do

23
lib/readold Normal file
View 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'
)
}

View File

@ -22,13 +22,15 @@ show_current_level() {
</a> </a>
EOHTML EOHTML
done done
for id in {100..0} for timestamp in ${!nextbronze[@]}
do do
[ -z "${upbronze[id]}" ] && continue (( timestamp )) || continue
(( greenlevel = id * 255 / 100 )) for stat in ${nextbronze[timestamp]}
do
if (( upbronze[$stat] ))
then
(( greenlevel = upbronze[$stat] * 255 / 100 ))
(( redlevel = 255 - greenlevel )) (( redlevel = 255 - greenlevel ))
for stat in ${upbronze[id]}
do
img=${stat,,} img=${stat,,}
cat <<-EOHTML cat <<-EOHTML
<a <a
@ -38,12 +40,50 @@ show_current_level() {
<img <img
class="minibadge" class="minibadge"
src="/${img//_/-}-bronze.png" src="/${img//_/-}-bronze.png"
title="$stat $id%" title="$stat ${upbronze[$stat]}%
($(date -d @$timestamp +%Y-%m-%d))"
alt="$stat bronze" /> alt="$stat bronze" />
</a> </a>
EOHTML EOHTML
fi
done done
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&amp;start=$start&amp;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&amp;start=$start&amp;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 cat <<-EOHTML
</td> </td>
<td class="curbadge"> <td class="curbadge">
@ -62,14 +102,16 @@ show_current_level() {
</a> </a>
EOHTML EOHTML
done done
for id in {100..0} for timestamp in ${!nextsilver[@]}
do do
[ -z "${upsilver[id]}" ] && continue (( timestamp )) || continue
(( greenlevel = id * 255 / 100 )) for stat in ${nextsilver[timestamp]}
(( redlevel = 255 - greenlevel ))
for stat in ${upsilver[id]}
do do
img=${stat,,} img=${stat,,}
if (( upsilver[$stat] ))
then
(( greenlevel = upsilver[$stat] * 255 / 100 ))
(( redlevel = 255 - greenlevel ))
cat <<-EOHTML cat <<-EOHTML
<a <a
class="badge" class="badge"
@ -78,15 +120,12 @@ show_current_level() {
<img <img
class="minibadge" class="minibadge"
src="/${img//_/-}-silver.png" src="/${img//_/-}-silver.png"
title="$stat $id%" title="$stat ${upsilver[$stat]}%
($(date -d @$timestamp +%Y-%m-%d))"
alt="$stat silver" /> alt="$stat silver" />
</a> </a>
EOHTML EOHTML
done else
done
for stat in ${!nosilver[@]}
do
img=${stat,,}
cat <<-EOHTML cat <<-EOHTML
<a <a
class="badge" class="badge"
@ -94,10 +133,48 @@ show_current_level() {
<img <img
class="nominibadge" class="nominibadge"
src="/${img//_/-}-silver.png" src="/${img//_/-}-silver.png"
title="$stat $id%" title="$stat
($(date -d @$timestamp +%Y-%m-%d))"
alt="$stat silver" /> alt="$stat silver" />
</a> </a>
EOHTML 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&amp;start=$start&amp;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&amp;start=$start&amp;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 done
cat <<-EOHTML cat <<-EOHTML
</td> </td>
@ -117,14 +194,16 @@ show_current_level() {
</a> </a>
EOHTML EOHTML
done done
for id in {100..0} for timestamp in ${!nextgold[@]}
do do
[ -z "${upgold[id]}" ] && continue (( timestamp )) || continue
(( greenlevel = id * 255 / 100 )) for stat in ${nextgold[timestamp]}
(( redlevel = 255 - greenlevel ))
for stat in ${upgold[id]}
do do
img=${stat,,} img=${stat,,}
if (( upgold[$stat] ))
then
(( greenlevel = upgold[$stat] * 255 / 100 ))
(( redlevel = 255 - greenlevel ))
cat <<-EOHTML cat <<-EOHTML
<a <a
class="badge" class="badge"
@ -133,15 +212,12 @@ show_current_level() {
<img <img
class="minibadge" class="minibadge"
src="/${img//_/-}-gold.png" src="/${img//_/-}-gold.png"
title="$stat $id%" title="$stat ${upgold[$stat]}%
($(date -d @$timestamp +%Y-%m-%d))"
alt="$stat gold" /> alt="$stat gold" />
</a> </a>
EOHTML EOHTML
done else
done
for stat in ${!nogold[@]}
do
img=${stat,,}
cat <<-EOHTML cat <<-EOHTML
<a <a
class="badge" class="badge"
@ -149,10 +225,48 @@ show_current_level() {
<img <img
class="nominibadge" class="nominibadge"
src="/${img//_/-}-gold.png" src="/${img//_/-}-gold.png"
title="$stat $id%" title="$stat
($(date -d @$timestamp +%Y-%m-%d))"
alt="$stat gold" /> alt="$stat gold" />
</a> </a>
EOHTML 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&amp;start=$start&amp;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&amp;start=$start&amp;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 done
cat <<-EOHTML cat <<-EOHTML
</td> </td>
@ -172,14 +286,16 @@ show_current_level() {
</a> </a>
EOHTML EOHTML
done done
for id in {100..0} for timestamp in ${!nextplatinum[@]}
do do
[ -z "${upplatinum[id]}" ] && continue (( timestamp )) || continue
(( greenlevel = id * 255 / 100 )) for stat in ${nextplatinum[timestamp]}
(( redlevel = 255 - greenlevel ))
for stat in ${upplatinum[id]}
do do
img=${stat,,} img=${stat,,}
if (( upplatinum[$stat] ))
then
(( greenlevel = upplatinum[$stat] * 255 / 100 ))
(( redlevel = 255 - greenlevel ))
cat <<-EOHTML cat <<-EOHTML
<a <a
class="badge" class="badge"
@ -188,15 +304,12 @@ show_current_level() {
<img <img
class="minibadge" class="minibadge"
src="/${img//_/-}-platinum.png" src="/${img//_/-}-platinum.png"
title="$stat $id%" title="$stat ${upplatinum[$stat]}%
($(date -d @$timestamp +%Y-%m-%d))"
alt="$stat platinum" /> alt="$stat platinum" />
</a> </a>
EOHTML EOHTML
done else
done
for stat in ${!noplatinum[@]}
do
img=${stat,,}
cat <<-EOHTML cat <<-EOHTML
<a <a
class="badge" class="badge"
@ -204,10 +317,48 @@ show_current_level() {
<img <img
class="nominibadge" class="nominibadge"
src="/${img//_/-}-platinum.png" src="/${img//_/-}-platinum.png"
title="$stat $id%" title="$stat
($(date -d @$timestamp +%Y-%m-%d))"
alt="$stat platinum" /> alt="$stat platinum" />
</a> </a>
EOHTML 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&amp;start=$start&amp;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&amp;start=$start&amp;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 done
cat <<-EOHTML cat <<-EOHTML
</td> </td>
@ -227,14 +378,16 @@ show_current_level() {
</a> </a>
EOHTML EOHTML
done done
for id in {100..0} for timestamp in ${!nextblack[@]}
do do
[ -z "${upblack[id]}" ] && continue (( timestamp )) || continue
(( greenlevel = id * 255 / 100 )) for stat in ${nextblack[timestamp]}
(( redlevel = 255 - greenlevel ))
for stat in ${upblack[id]}
do do
img=${stat,,} img=${stat,,}
if (( upblack[$stat] ))
then
(( greenlevel = upblack[$stat] * 255 / 100 ))
(( redlevel = 255 - greenlevel ))
cat <<-EOHTML cat <<-EOHTML
<a <a
class="badge" class="badge"
@ -243,15 +396,12 @@ show_current_level() {
<img <img
class="minibadge" class="minibadge"
src="/${img//_/-}-black.png" src="/${img//_/-}-black.png"
title="$stat $id%" title="$stat ${upblack[$stat]}%
($(date -d @$timestamp +%Y-%m-%d))"
alt="$stat black" /> alt="$stat black" />
</a> </a>
EOHTML EOHTML
done else
done
for stat in ${!noblack[@]}
do
img=${stat,,}
cat <<-EOHTML cat <<-EOHTML
<a <a
class="badge" class="badge"
@ -259,10 +409,48 @@ show_current_level() {
<img <img
class="nominibadge" class="nominibadge"
src="/${img//_/-}-black.png" src="/${img//_/-}-black.png"
title="$stat $id%" title="$stat
($(date -d @$timestamp +%Y-%m-%d))"
alt="$stat black" /> alt="$stat black" />
</a> </a>
EOHTML 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&amp;start=$start&amp;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&amp;start=$start&amp;end=$end#$stat">
<img
class="nominibadge"
src="/${img//_/-}-black.png"
title="$stat
(maybe one day)"
alt="$stat black" />
</a>
EOHTML
fi
done done
cat <<-EOHTML cat <<-EOHTML
</td> </td>

View File

@ -31,9 +31,11 @@ L16color=591494
default_start=-604800 default_start=-604800
default_end=1209600 default_end=1209600
default_prevperiod=1m
start=$default_start start=$default_start
end=$default_end end=$default_end
prevperiod=$default_prevperiod
uinames=( uinames=(
AP AP