#! /bin/ksh

year=`date +%Y`
month=`date +%m`
day=`date +%d`

function getstartdate 
{
	myfile=$1
	startdate=`grep -i "<meta name=\"start-date" < $myfile |
		sed -e 's/.*content=\"//' -e 's/".*$//' -e 's/-/ /g'`
	if test ! "$startdate"
	then
		startdate=`grep -i "<meta name=\"access" < $myfile |
			sed -e 's/.*content=\"//' -e 's/ .*$//' -e 's/-/ /g'`
	fi
	if test ! "$startdate"
	then
		startdate=`grep -i 'accesses.*since' < $myfile |
			sed -e 's/^[^0-9]*//' -e 's/:.*$//' -e 's/-/ /g'`
	fi
	# echo $myfile $startdate > /dev/tty
	echo $startdate
}

function getage # filke hits year month day
{
	mfile=$1
	mhits=$2
	myear=$3
	mmonth=$4
	mday=$5
	age="($year-$myear)*365 + ($month-$mmonth)*30 + ($day-$mday) + 1"
	echo "$age" | bc
}

DB=hits.db

function getfreq # hits age
{
	echo "$1.00/$2" | calc | sed 's/.*=[   ]*//'
}

function gethits # counter
{
	wc -c < $1 | sed 's/ //g'
}

if test -r $DB
then
	idents=`sssort -f file $DB | ssformat -t %ident`
	for ident in $idents
	do
		info=`sssearch ident=$ident $DB |
			ssformat -t "%file %counter %start %title"`
		set -- $info
		file=$1; shift
		counter=$1; shift
		start=$1; shift
		title="$*"
		hits=`gethits $counter`
		date=`echo $start | sed 's/-/ /g'`
		age=`getage $file $hits $date`
		freq=`getfreq $hits $age`
		line=`echo $file $hits $age $freq $start | colex 6i2 5i3 7.2n4 11s5 -15s1 | tr '	' ' '`
		echo "$line $title"
	done
	exit
fi

for file in .*.html .*.cgi
do
	realfile=`echo $file | sed 's/.//'`
	if test ! -r $realfile
	then
		realfile=`echo $realfile | sed 's/[.]/\/index./'`
	fi
	if test -r $realfile
	then
		# echo ====== $realfile
		hits=`gethits $file`
		# echo ================ hits =  $hits
		date=`getstartdate $realfile`
		# echo ================ date =  $date
		age=`getage $realfile $hits $date`
		# echo ================ age =  $age
		freq=`getfreq $hits $age`
		date=`echo $date | sed 's/ /-/g'`
		echo $realfile $hits $age $freq $date
	fi
done | colex 6i2 5i3 6.2n4 5 1
