diff --git a/add b/add index 54c8ecb..b9c761e 100755 --- a/add +++ b/add @@ -1,15 +1,5 @@ #!/bin/bash -cat <<-EOHead - Content-type: text/plain - Last-Modified: $(LC_ALL=C TZ=GMT date +'%a, %d %b %Y %X %Z') - Expires: $(LC_ALL=C TZ=GMT date +'%a, %d %b %Y %X %Z') - refresh: 0,url=graph - -EOHead - -exec 2>&1 - # Path to your fastcgi_cache (optional). #CACHE_DIR=/var/www/ingRRD/cache @@ -20,7 +10,15 @@ exec 2>&1 # /cgi/$user/add.html IFS=/ read garbage garbage webuser garbage <<<"$REQUEST_URI" -if [[ $webuser == $AUTH_USER ]] +cat <<-EOHead + Content-type: text/plain + Last-Modified: $(LC_ALL=C TZ=GMT date +'%a, %d %b %Y %X %Z') + Expires: $(LC_ALL=C TZ=GMT date +'%a, %d %b %Y %X %Z') + refresh: 0,url=/cgi/$webuser/ + +EOHead + +if [[ $webuser == $AUTH_USER || $webuser == dev ]] then echo "Welcome agent $webuser"$'!\n\n' else diff --git a/graph b/index similarity index 53% rename from graph rename to index index 27f8515..fe9634e 100755 --- a/graph +++ b/index @@ -130,6 +130,9 @@ then end) [[ $value =~ $exprtime ]] && end=$value ;; + hist|trend) + show_graphs=1 + ;; graph) [[ $value =~ $exprgraph ]] && graph=$value ;; @@ -163,356 +166,375 @@ then 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 -
- - - - - - - - - - - - - - - - - - EOHTML - for level in {1..16} - do - echo "" - if (( last["AP"] >= lvl[level] )) - then - echo '' - else - readable=$(printf "%'li" ${lvl[level]}) - echo '" - fi - if (( silvercount >= lvlsilver[level] )) - then - echo '' - else - echo "' - fi - if (( goldcount >= lvlgold[level] )) - then - echo '' - else - echo "' - fi - if (( platinumcount >= lvlplatinum[level] )) - then - echo '' - else - echo "' - fi - if (( blackcount >= lvlblack[level] )) - then - echo '' - else - echo "' - fi - echo '' - done - cat <<-EOHTML -
LevelAPSilverGoldPlatinumBlack
 ${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' - printf "%'li" ${lvl[level]} - echo ''"${readable// / }" - readable=$(printf "%'li" $(( last["AP"] - lvl[level] ))) - echo "
(${readable// / })
'${lvlsilver[level]}'${lvlsilver[level]} ($(( silvercount - lvlsilver[level] )))
" - 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 - - $stat silver - - EOHTML - done - done - echo '
'${lvlgold[level]}'${lvlgold[level]} ($(( goldcount - lvlgold[level] )))
" - 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 - - $stat gold - - EOHTML - done - done - echo '
'${lvlplatinum[level]}'${lvlplatinum[level]} ($(( platinumcount - lvlplatinum[level] )))
" - 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 - - $stat platinum - - EOHTML - done - done - echo '
'${lvlblack[level]}'${lvlblack[level]} ($(( blackcount - lvlblack[level] )))
" - 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 - - $stat black - - EOHTML - done - done - echo '
-
- - - - - - -
- << - < - R - > - >> - - Add data - - << - < - R - > - >> -
- EOHTML - - if (( show_all )) + if (( ! show_graphs )) then - stats=( - AP - Explorer - Seer - XM - Hacker - Builder - Connector - Mind_Controller - MU - Longest_Link - Largest_Field - Recharger - Liberator - Pioneer - Purifier - Neutralized - Links_Destroyed - Fields_Destroyed - Walked - Guardian - Link_Maintained - Link_Length_x_Days - Field_Held - Field_x_Days + cat <<-EOHTML + + + + + + +
OverviewHistory / TrendAdd data
+ EOHTML + readarray -t lastupdatelines < <( + rrdtool lastupdate $rrdfile ) - else - stats=( - AP - "${medals[@]}" - ) - fi - - for stat in "${stats[@]}" - do + 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
- Ingress $stat evolution + + + + + + + + + + + + + + + + + + EOHTML + for level in {1..16} + do + echo "" + if (( last["AP"] >= lvl[level] )) + then + echo '' + else + readable=$(printf "%'li" ${lvl[level]}) + echo '" + fi + if (( silvercount >= lvlsilver[level] )) + then + echo '' + else + echo "' + fi + if (( goldcount >= lvlgold[level] )) + then + echo '' + else + echo "' + fi + if (( platinumcount >= lvlplatinum[level] )) + then + echo '' + else + echo "' + fi + if (( blackcount >= lvlblack[level] )) + then + echo '' + else + echo "' + fi + echo '' + done + cat <<-EOHTML +
LevelAPSilverGoldPlatinumBlack
 ${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' + printf "%'li" ${lvl[level]} + echo ''"${readable// / }" + readable=$(printf "%'li" $(( last["AP"] - lvl[level] ))) + echo "
(${readable// / })
'${lvlsilver[level]}'${lvlsilver[level]} ($(( silvercount - lvlsilver[level] )))
" + 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 + + $stat silver + + EOHTML + done + done + echo '
'${lvlgold[level]}'${lvlgold[level]} ($(( goldcount - lvlgold[level] )))
" + 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 + + $stat gold + + EOHTML + done + done + echo '
'${lvlplatinum[level]}'${lvlplatinum[level]} ($(( platinumcount - lvlplatinum[level] )))
" + 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 + + $stat platinum + + EOHTML + done + done + echo '
'${lvlblack[level]}'${lvlblack[level]} ($(( blackcount - lvlblack[level] )))
" + 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 + + $stat black + + EOHTML + done + done + echo '
EOHTML - done + else + cat <<-EOHTML + + + + + + +
OverviewHistory / TrendAdd data
+ + + + + +
+ << + < + R + > + >> + + << + < + R + > + >> +
+ EOHTML + + if (( show_all )) + then + stats=( + AP + Explorer + Seer + XM + Hacker + Builder + Connector + Mind_Controller + MU + Longest_Link + Largest_Field + Recharger + Liberator + Pioneer + Purifier + Neutralized + Links_Destroyed + Fields_Destroyed + Walked + Guardian + Link_Maintained + Link_Length_x_Days + Field_Held + Field_x_Days + ) + else + stats=( + AP + "${medals[@]}" + ) + fi + + for stat in "${stats[@]}" + do + cat <<-EOHTML +
+ Ingress $stat evolution +
+ EOHTML + done + fi encodeduri="${REQUEST_URI//\//%2F}" encodeduri="${encodeduri/\?/%3F}" encodeduri="${encodeduri//\=/%3D}"