diff --git a/index b/index
index 76e92f5..50a24ad 100755
--- a/index
+++ b/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
Black |
EOHTML
+
for level in {1..16}
do
+ never=0
+ maxtimestamp=0
+ tableline=()
+ if (( last["AP"] >= lvl[level] ))
+ then
+ tableline+=( ''
+ $(printf "%'li" ${lvl[level]})
+ ' | ' )
+ else
+ #FIXME
+ readable=$(printf "%'li" ${lvl[level]})
+ tableline+=( ''"${readable// / }" )
+ readable=$(printf "%'li" $(( last["AP"] - lvl[level] )))
+ tableline+=( " (${readable// / })" )
+ if (( timestamp ))
+ then
+ tableline+=( " $(date +%Y-%m-%d -d @${nextlevels[level]}) | " )
+ (( nextlevels[level] > maxtimestamp )) \
+ && maxtimestamp=${nextlevels[level]}
+ else
+ tableline+=( "
(maybe some day)" )
+ never=1
+ fi
+ fi
+ if (( silvercount >= lvlsilver[level] ))
+ then
+ tableline+=( ''${lvlsilver[level]}' | ' )
+ else
+ tableline+=( "${lvlsilver[level]} ($(( silvercount - lvlsilver[level] ))) " )
+ 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+=( ' ' )
+ (( ++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+=( ' ' )
+ (( count++ ))
+ done
+ tableline+=( ' | ' )
+ fi
+ if (( goldcount >= lvlgold[level] ))
+ then
+ tableline+=( ''${lvlgold[level]}' | ' )
+ else
+ tableline+=( "${lvlgold[level]} ($(( goldcount - lvlgold[level] ))) " )
+ 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+=( ' ' )
+ (( ++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+=( ' ' )
+ (( count++ ))
+ done
+ tableline+=( ' | ' )
+ fi
+ if (( platinumcount >= lvlplatinum[level] ))
+ then
+ tableline+=( ''${lvlplatinum[level]}' | ' )
+ else
+ tableline+=( "${lvlplatinum[level]} ($(( platinumcount - lvlplatinum[level] ))) " )
+ 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+=( ' ' )
+ (( ++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+=( ' ' )
+ (( count++ ))
+ done
+ tableline+=( ' | ' )
+ fi
+ if (( blackcount >= lvlblack[level] ))
+ then
+ tableline+=( ''${lvlblack[level]}' | ' )
+ else
+ tableline+=( "${lvlblack[level]} ($(( blackcount - lvlblack[level] ))) " )
+ 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+=( ' ' )
+ (( ++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+=( ' ' )
+ (( count++ ))
+ done
+ tableline+=( ' | ' )
+ fi
if (( level <= curlevel ))
then
echo "| $level | "
else
- echo "
|---|
| $level | "
+ cat <<-EOHTML
+
|---|
+ | $level |
+ EOHTML
fi
- if (( last["AP"] >= lvl[level] ))
+ echo "${tableline[@]}"
+ if (( level > curlevel ))
then
- echo ''
- printf "%'li" ${lvl[level]}
- echo ' | '
- else
- readable=$(printf "%'li" ${lvl[level]})
- echo ''"${readable// / }"
- readable=$(printf "%'li" $(( last["AP"] - lvl[level] )))
- echo " (${readable// / }) | "
- fi
- if (( silvercount >= lvlsilver[level] ))
- then
- echo ''${lvlsilver[level]}' | '
- else
- echo "${lvlsilver[level]} ($(( silvercount - lvlsilver[level] ))) "
- 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
-
-
-
- EOHTML
- (( count++ == lvlsilver[level] - silvercount )) && break 2
- done
- done
- echo ' | '
- fi
- if (( goldcount >= lvlgold[level] ))
- then
- echo ''${lvlgold[level]}' | '
- else
- echo "${lvlgold[level]} ($(( goldcount - lvlgold[level] ))) "
- 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
-
-
-
- EOHTML
- (( count++ == lvlgold[level] - goldcount )) && break 2
- done
- done
- echo ' | '
- fi
- if (( platinumcount >= lvlplatinum[level] ))
- then
- echo ''${lvlplatinum[level]}' | '
- else
- echo "${lvlplatinum[level]} ($(( platinumcount - lvlplatinum[level] ))) "
- 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
-
-
-
- EOHTML
- (( count++ == lvlplatinum[level] - platinumcount )) && break 2
- done
- done
- echo ' | '
- fi
- if (( blackcount >= lvlblack[level] ))
- then
- echo ''${lvlblack[level]}' | '
- else
- echo "${lvlblack[level]} ($(( blackcount - lvlblack[level] ))) "
- 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
-
-
-
- EOHTML
- (( count++ == lvlblack[level] - blackcount )) && break 2
- done
- done
- echo ' | '
+ cat <<-EOHTML
+ $(date +%Y-%m-%d -d @$maxtimestamp) |
+ EOHTML
fi
echo '
'
done
@@ -415,7 +441,7 @@ then
- Generated by IngRRD © 2014 Vincent Riquer
+ Generated by IngRRD © 2014-2015 Vincent Riquer
|
diff --git a/ingrrd.css b/ingrrd.css
index c22b952..f847925 100644
--- a/ingrrd.css
+++ b/ingrrd.css
@@ -113,7 +113,7 @@ th.AP,td.AP {
}
th.badge,td.badge {
- width: 170px;
+/* width: 170px;*/
}
a.badge {
diff --git a/lib/get_next_level b/lib/get_next_level
new file mode 100644
index 0000000..973318d
--- /dev/null
+++ b/lib/get_next_level
@@ -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
+}
diff --git a/lib/globals b/lib/globals
index f4eb12f..199d439 100644
--- a/lib/globals
+++ b/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
diff --git a/lib/medals b/lib/medals
index d6d4131..1c89fc9 100644
--- a/lib/medals
+++ b/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
diff --git a/lib/print_medal b/lib/print_medal
new file mode 100644
index 0000000..0ed5c62
--- /dev/null
+++ b/lib/print_medal
@@ -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
+
+
+ ($thisdate)
+ EOHTML
+}
diff --git a/lib/read_query_string b/lib/read_query_string
index 81a52f3..c8be5ea 100644
--- a/lib/read_query_string
+++ b/lib/read_query_string
@@ -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
diff --git a/lib/readlast b/lib/readlast
index 91795a9..e870185 100644
--- a/lib/readlast
+++ b/lib/readlast
@@ -11,6 +11,7 @@ readlast() {
rrdtool lastupdate $rrdfile
)
indices=( ${lastupdatelines[0]} )
+ last["time"]=${lastupdatelines[2]%:*}
values=( ${lastupdatelines[2]#*:} )
for index in ${!indices[@]}
do
diff --git a/lib/readold b/lib/readold
new file mode 100644
index 0000000..af8f41e
--- /dev/null
+++ b/lib/readold
@@ -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'
+ )
+}
diff --git a/lib/show_current_level b/lib/show_current_level
index 8b4ee3a..842a4be 100644
--- a/lib/show_current_level
+++ b/lib/show_current_level
@@ -22,13 +22,15 @@ show_current_level() {
EOHTML
done
- for id in {100..0}
+ for timestamp in ${!nextbronze[@]}
+ do
+ (( timestamp )) || continue
+ for stat in ${nextbronze[timestamp]}
do
- [ -z "${upbronze[id]}" ] && continue
- (( greenlevel = id * 255 / 100 ))
- (( redlevel = 255 - greenlevel ))
- for stat in ${upbronze[id]}
- do
+ if (( upbronze[$stat] ))
+ then
+ (( greenlevel = upbronze[$stat] * 255 / 100 ))
+ (( redlevel = 255 - greenlevel ))
img=${stat,,}
cat <<-EOHTML
EOHTML
- done
+ 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
+
+
+
+ EOHTML
+ else
+ cat <<-EOHTML
+
+
+
+ EOHTML
+ fi
+ done
cat <<-EOHTML
|
@@ -62,14 +102,16 @@ show_current_level() {
EOHTML
done
- for id in {100..0}
+ for timestamp in ${!nextsilver[@]}
+ do
+ (( timestamp )) || continue
+ for stat in ${nextsilver[timestamp]}
do
- [ -z "${upsilver[id]}" ] && continue
- (( greenlevel = id * 255 / 100 ))
- (( redlevel = 255 - greenlevel ))
- for stat in ${upsilver[id]}
- do
- img=${stat,,}
+ img=${stat,,}
+ if (( upsilver[$stat] ))
+ then
+ (( greenlevel = upsilver[$stat] * 255 / 100 ))
+ (( redlevel = 255 - greenlevel ))
cat <<-EOHTML
EOHTML
- done
+ else
+ cat <<-EOHTML
+
+
+
+ EOHTML
+ fi
done
- for stat in ${!nosilver[@]}
- do
- img=${stat,,}
+ done
+ for stat in ${nextsilver[0]}
+ do
+ img=${stat,,}
+ if (( upsilver[$stat] ))
+ then
+ (( greenlevel = upsilver[$stat] * 255 / 100 ))
+ (( redlevel = 255 - greenlevel ))
+ cat <<-EOHTML
+
+
+
+ EOHTML
+ else
cat <<-EOHTML
EOHTML
- done
+ fi
+ done
cat <<-EOHTML
|
@@ -117,14 +194,52 @@ show_current_level() {
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
+
+
+
+ EOHTML
+ else
+ cat <<-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
EOHTML
- done
- done
- for stat in ${!nogold[@]}
- do
- img=${stat,,}
- cat <<-EOHTML
-
-
-
- EOHTML
+ else
+ cat <<-EOHTML
+
+
+
+ EOHTML
+ fi
done
cat <<-EOHTML
|
@@ -172,14 +286,52 @@ show_current_level() {
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
+
+
+
+ EOHTML
+ else
+ cat <<-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
EOHTML
- done
- done
- for stat in ${!noplatinum[@]}
- do
- img=${stat,,}
- cat <<-EOHTML
-
-
-
- EOHTML
+ else
+ cat <<-EOHTML
+
+
+
+ EOHTML
+ fi
done
cat <<-EOHTML
@@ -227,14 +378,52 @@ show_current_level() {
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
+
+
+
+ EOHTML
+ else
+ cat <<-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
EOHTML
- done
- done
- for stat in ${!noblack[@]}
- do
- img=${stat,,}
- cat <<-EOHTML
-
-
-
- EOHTML
+ else
+ cat <<-EOHTML
+
+
+
+ EOHTML
+ fi
done
cat <<-EOHTML
diff --git a/settings b/settings
index 88c6753..957dcac 100644
--- a/settings
+++ b/settings
@@ -31,9 +31,11 @@ L16color=591494
default_start=-604800
default_end=1209600
+default_prevperiod=1m
start=$default_start
end=$default_end
+prevperiod=$default_prevperiod
uinames=(
AP