From d618373dc930751493d7f3d2adcd7a24b0246d54 Mon Sep 17 00:00:00 2001 From: Vincent Riquer Date: Sun, 29 Jun 2014 19:11:33 +0200 Subject: [PATCH] Show current level on all pages Begin splitting code into functions --- add.html | 42 +++---- index | 229 +++++++++--------------------------- ingrrd.css | 131 +++++++++++++++++++++ lib/get_current_level | 20 ++++ lib/globals | 32 ++++++ lib/medals | 45 ++++++++ lib/read_query_string | 38 ++++++ lib/readlast | 19 +++ lib/show_current_level | 256 +++++++++++++++++++++++++++++++++++++++++ 9 files changed, 606 insertions(+), 206 deletions(-) create mode 100644 ingrrd.css create mode 100644 lib/get_current_level create mode 100644 lib/globals create mode 100644 lib/medals create mode 100644 lib/read_query_string create mode 100644 lib/readlast create mode 100644 lib/show_current_level diff --git a/add.html b/add.html index 548955f..32871c6 100755 --- a/add.html +++ b/add.html @@ -18,33 +18,11 @@ . settings -if [ -n "$QUERY_STRING" ] -then - query_data="${QUERY_STRING//&/ -}" - exprtime='[[:alnum:]-]+' - exprgraph='[[:alpha:]_]+' - while read name value - do - case $name in - start) - [[ $value =~ $exprtime ]] && start=$value - ;; - end) - [[ $value =~ $exprtime ]] && end=$value - ;; - esac - done <<<"${query_data//=/ }" -fi - -readprevvalues() { - shift - for arg - do - prevvalues+=( "$arg" ) - done -} -readprevvalues $(rrdtool lastupdate ingress.rrd | tail -n1) +for lib in lib/* +do + source $lib +done +read_query_string cat <<-EOHTML content-type: text/xml @@ -91,7 +69,6 @@ Expires: $(LC_ALL=C TZ=GMT date +'%a, %d %b %Y %X %Z') Add data - EOHTML if ! [ -w "$rrdfile" ] then @@ -138,6 +115,13 @@ then exit } fi +readlast +medals +get_current_level +show_current_level +cat <<-EOHTML + +EOHTML cat <<-EOHTML
@@ -146,7 +130,7 @@ EOHTML for indice in ${!uinames[@]} do - echo "
  • ${uinames[indice]}
  • " + echo "
  • ${uinames[indice]}
  • " done cat <<-EOHTML diff --git a/index b/index index 6b0d694..947e29f 100755 --- a/index +++ b/index @@ -17,6 +17,11 @@ # along with this program. If not, see . . settings + +for lib in lib/* +do + source $lib +done if [ ! -w "$rrdfile" ] then cat <<-EOHead @@ -29,45 +34,22 @@ then exit fi -if [ -n "$QUERY_STRING" ] -then - query_data="${QUERY_STRING//&/ -}" - exprtime='[[:alnum:]-]+' - exprgraph='[[:alpha:]_]+' - while read name value - do - case $name in - start) - [[ $value =~ $exprtime ]] && start=$value - ;; - end) - [[ $value =~ $exprtime ]] && end=$value - ;; - hist|trend) - show_graphs=1 - ;; - graph) - [[ $value =~ $exprgraph ]] && graph=$value - ;; - show) - [[ $value == all ]] && show_all=1 - ;; - esac - done <<<"${query_data//=/ }" -fi +read_query_string (( start >= end)) && (( end = start + 604800 )) if [ -z "$graph" ] then + readlast + medals + get_current_level if (( show_all )) then - title="IngRRD - $webuser - History & Trend: All stats" + title="IngRRD - $webuser [L$curlevel] - History & Trend: All stats" elif (( show_graphs )) then - title="IngRRD - $webuser - History & Trend: Badges" + title="IngRRD - $webuser [L$curlevel] - History & Trend: Badges" else - title="IngRRD - $webuser - Overview" + title="IngRRD - $webuser [L$curlevel] - Overview" fi cat <<-EOHTML content-type: application/xhtml+xml @@ -116,59 +98,12 @@ then Add data + EOHTML + show_current_level + cat <<-EOHTML
    EOHTML - readarray -t lastupdatelines < <( - rrdtool lastupdate $rrdfile - ) - indices=( ${lastupdatelines[0]} ) - values=( ${lastupdatelines[2]#*:} ) - declare -A last - for index in ${!indices[@]} - do - last["${indices[index]}"]=${values[index]} - done - unset indices values - - for stat in "${medals[@]}" - do - if (( last["$stat"] >= bronze["$stat"] )) - then - (( bronzecount++ )) - bronzes+=( "$stat" ) - else - upbronze[last["$stat"] * 100 / bronze["$stat"]]+="$stat " - fi - if (( last["$stat"] >= silver["$stat"] )) - then - (( silvercount++ )) - silvers+=( "$stat" ) - else - upsilver[last["$stat"] * 100 / silver["$stat"]]+="$stat " - fi - if (( last["$stat"] >= gold["$stat"] )) - then - (( goldcount++ )) - golds+=( "$stat" ) - else - upgold[last["$stat"] * 100 / gold["$stat"]]+="$stat " - fi - if (( last["$stat"] >= platinum["$stat"] )) - then - (( platinumcount++ )) - platinums+=( "$stat" ) - else - upplatinum[last["$stat"] * 100 / platinum["$stat"]]+="$stat " - fi - if (( last["$stat"] >= black["$stat"] )) - then - (( blackcount++ )) - blacks+=( "$stat" ) - else - upblack[last["$stat"] * 100 / black["$stat"]]+="$stat " - fi - done cat <<-EOHTML
    @@ -180,86 +115,15 @@ then - - - - - - - EOHTML for level in {1..16} do - echo "" + if (( level <= curlevel )) + then + echo "" + else + echo "" + fi if (( last["AP"] >= lvl[level] )) then echo '' else echo "' @@ -305,6 +171,7 @@ then echo '' else echo "' @@ -334,6 +202,7 @@ then echo '' else echo "' @@ -363,6 +233,7 @@ then echo '' else echo "' @@ -402,7 +274,7 @@ then
    Platinum Black
    - $(printf "%'li" ${last["AP"]}) - EOHTML - for stat in ${silvers[@]} - do - img=${stat,,} - cat <<-EOHTML - - $stat silver - - EOHTML - done - cat <<-EOHTML - - EOHTML - for stat in ${golds[@]} - do - img=${stat,,} - cat <<-EOHTML - - $stat gold - - EOHTML - done - cat <<-EOHTML - - EOHTML - for stat in ${platinums[@]} - do - img=${stat,,} - cat <<-EOHTML - - $stat platinum - - EOHTML - done - cat <<-EOHTML - - EOHTML - for stat in ${blacks[@]} - do - img=${stat,,} - cat <<-EOHTML - - $stat black - - EOHTML - done - cat <<-EOHTML -
    $level
    $level
    $level' @@ -276,6 +140,7 @@ then echo ''${lvlsilver[level]}'${lvlsilver[level]} ($(( silvercount - lvlsilver[level] )))
    " + count=0 for id in {100..0} do [ -z "${upsilver[id]}" ] && continue @@ -296,6 +161,7 @@ then alt="$stat silver" /> EOHTML + (( count++ == lvlsilver[level] - silvercount )) && break 2 done done echo '
    '${lvlgold[level]}'${lvlgold[level]} ($(( goldcount - lvlgold[level] )))
    " + count=0 for id in {100..0} do [ -z "${upgold[id]}" ] && continue @@ -325,6 +192,7 @@ then alt="$stat gold" /> EOHTML + (( count++ == lvlgold[level] - goldcount )) && break 2 done done echo '
    '${lvlplatinum[level]}'${lvlplatinum[level]} ($(( platinumcount - lvlplatinum[level] )))
    " + count=0 for id in {100..0} do [ -z "${upplatinum[id]}" ] && continue @@ -354,6 +223,7 @@ then alt="$stat platinum" /> EOHTML + (( count++ == lvlplatinum[level] - platinumcount )) && break 2 done done echo '
    '${lvlblack[level]}'${lvlblack[level]} ($(( blackcount - lvlblack[level] )))
    " + count=0 for id in {100..0} do [ -z "${upblack[id]}" ] && continue @@ -383,6 +254,7 @@ then alt="$stat black" /> EOHTML + (( count++ == lvlblack[level] - blackcount )) && break 2 done done echo '