#!/bin/sh
# -*- ksh -*-

_() {
python -c '
import tomuss_init
import sys
import utilities
for i in sys.argv[1:]:
   print utilities.__(i).encode("latin-1")
' $1
}

PLTT=$(_ LABEL_page_load_time_time)
PLTN=$(_ LABEL_page_load_time_number)
PLT24=$(_ LABEL_page_load_time_24)
PLT7=$(_ LABEL_page_load_time_7)
PLTA=$(_ LABEL_page_load_time_total)
PLTAD=$(_ LABEL_page_load_time_average_day)
PLTAW=$(_ LABEL_page_load_time_average_week)
PLTMD=$(_ LABEL_page_load_time_median_day)
PLTMW=$(_ LABEL_page_load_time_median_week)
PLTND=$(_ LABEL_page_load_time_nr_day)
PLTNW=$(_ LABEL_page_load_time_nr_week)
PLTD=$(_ LABEL_page_load_time_days)


do_graph() {
grep page_load_time LOGS/TOMUSS/$(date '+%Y').times |
awk "$2 "'{ A[int(10 * $2)/10]++ ; }
 END {
   max = 0 ;
   for(i in A)
     if ( i+0 > max )
       max = i+0 ;
   for(i=0;i<=max;i += 0.1)
     if ( A[i] == "" )
       print i, "0" ;
     else
       print i, A[i] ;
 }' |
sort -n > TMP/xxx.page_load_time

echo "
set terminal png large font arial
set output 'TMP/$1.png'
set xlabel '$PLTT'
set ylabel '$PLTN'
set logscale x 2

plot 'TMP/xxx.page_load_time' with histeps title '$3'
" | gnuplot

}


export DAY=86400
export WEEK=$(expr $DAY '*' 7)
export MONTH=$(expr $DAY '*' 31)


do_graph "xxx.page_load_time" "" "$PLTA"
do_graph "xxx.page_load_time_1d" "\$1>$(expr $(date +'%s') - $DAY)" "$PLT24"
do_graph "xxx.page_load_time_1w" "\$1>$(expr $(date +'%s') - $WEEK)" "$PLT7"


NR_DAYS=140

DATE=$(expr $(date +'%s') - \( $NR_DAYS '*' $DAY \))


grep page_load_time LOGS/TOMUSS/$(date '+%Y').times |
python -c '
import sys
import itertools
d = list([[] for i in range('$NR_DAYS')])
for i in sys.stdin.readlines():
   i = i.split(" ")
   t = float(i[0])
   if t < '$DATE':
      continue
   d[int((t-'$DATE')/'$DAY')].append(float(i[1]))

f = open("TMP/xxx.page_load_timeW", "w")
for i in range(0, '$NR_DAYS', 7):
      dd = sorted(itertools.chain(*d[i:i+7]))
      nr = len(dd)
      if nr:
          f.write("%s %s %s %s\n" % (i, sum(dd)/nr, nr, dd[nr//2]))
f.close()

f = open("TMP/xxx.page_load_time", "w")
for i in range('$NR_DAYS'):
   if d[i]:
      d[i].sort()
      nr = len(d[i])
      if nr:
          f.write("%s %s %s %s\n" % (i, sum(d[i])/nr, nr, d[i][nr//2]))
f.close()

'


echo "
set terminal png large font arial
set output 'TMP/xxx.page_load_time_evolution.png'
set logscale y
set ylabel '$PLTT'
set xlabel '$PLTD'

plot 'TMP/xxx.page_load_time' using 1:2 with lines title '$PLTAD', 'TMP/xxx.page_load_time' using 1:4 with lines title '$PLTMD', 'TMP/xxx.page_load_time' using 1:3 with lines title '$PLTND'
" | gnuplot

echo "
set terminal png large font arial
set output 'TMP/xxx.page_load_time_evolutionW.png'
set logscale y
set ylabel '$PLTT'
set xlabel '$PLTD'

plot 'TMP/xxx.page_load_timeW' using 1:2 with lines title '$PLTAW', 'TMP/xxx.page_load_timeW' using 1:4 with lines title '$PLTMW', 'TMP/xxx.page_load_timeW' using 1:3 with lines title '$PLTNW'
" | gnuplot


