SEE THE FUCKING FUTURE!
This commit is contained in:
parent
338209ed31
commit
8964230c5b
288
index
288
index
@ -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// / }" )
|
||||||
|
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 ))
|
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// / }"
|
|
||||||
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
|
cat <<-EOHTML
|
||||||
<a
|
<tr class="nextlevel">
|
||||||
class="badge"
|
<th class="level">$level</th>
|
||||||
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>
|
|
||||||
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&start=$start&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&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
|
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> © 2014 Vincent Riquer
|
Generated by <a href="https://forge.riquer.fr/p/ingrrd/">IngRRD</a> © 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">
|
||||||
|
|||||||
@ -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
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 \
|
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
|
||||||
|
|||||||
17
lib/medals
17
lib/medals
@ -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
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:]-]+'
|
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
|
||||||
|
|||||||
@ -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
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>
|
</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&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
|
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&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
|
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&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
|
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&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
|
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&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
|
done
|
||||||
cat <<-EOHTML
|
cat <<-EOHTML
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user