#!/bin/sh
#
# Yal: list yesterdays WWW-alog entries for your account on www.glg.ed.ac.uk
#      You need to change a lot to use it for your web-space and server.
#      Use this example for my web-space under http://www.glg.ed.ac.uk/~pete
#
# last update: 7 Mar 2001 by Peter_Hanssen@WriteMe.com (http://I.am/Pete)

# Exclude this mashine in output (e.g. mashine you access your own page).
#
EXCL='mhu62 192.171.143.43 mhp615 192.171.144.215'

# Path to the access log of you web-server (Yes, Shane & Justin change this
# a lot without warning...)
#
ACL=/usr/local/http/logs/glg_access_log

# Calculate yesterdays date and file name variables
#
GESTERN=`TZ=\`date +%Z\`+24 date +%d/%b/%Y`
OUT=Yal-`TZ=\`date +%Z\`+24 date +%Y%m%d`.out
TMP=/tmp/Yal$$.tmp

# Constructing short and long form of the URL like ~pete and /home/Peter.Hanssen
#
WAI=`whoami`
SHORT="~$WAI"
LONG="/home/`grep ${WAI}@ /usr/local/share/etc/glgdir.dat | \
        cut -d":" -f11 | cut -d"," -f1`"

# Printing head of the output with yesterdays date.
#
echo "  Producing WWW-log for yesterday: $GESTERN"
echo "ACCESS_LOG $GESTERN" > $OUT
echo "-------------------" >> $OUT

# Grep your webpage hits out of the access log
#
echo "   - looking for $LONG and $SHORT"
grep $LONG $ACL | grep $GESTERN | awk '{print $1,$4,$7,$11}' | \
 grep -v .jpg | grep -v .gif | sed 's/%7E/~/g' > $TMP
HITS=`wc -l $TMP | awk '{print $1}'`
echo "     $HITS Hits for $LONG"
grep $SHORT $ACL | grep $GESTERN | awk '{print $1,$4,$7,$11}' | \
 grep -v .jpg | grep -v .gif | sed 's/%7E/~/g' >> $TMP
N=`wc -l $TMP | awk '{print $1}'`
HITS=`expr $N - $HITS`
echo "     $HITS Hits for $SHORT"

echo "   - deleting own machines: $EXCL"
for U in $EXCL
do
 grep -v $U $TMP > /tmp/Yal$$-grep.tmp
 mv /tmp/Yal$$-grep.tmp $TMP
done

echo "   - beautifying the date & sorting"
sed 's/\[[0-9]*\/[A-Z][a-z][a-z]\/200[0-9]://' $TMP | sort > /tmp/Yal$$-s.tmp

echo "   - reducing to pages"
sed 's/[^ ]*ME[^ ]*/ME/g' /tmp/Yal$$-s.tmp | \
sed 's/[^ ]*ver3a[^ ]*/VERSION-AWARDS-3/g' | \
sed 's/[^ ]*VERSION[^ ]*/VERSION-AWARDS/g' | \
sed 's/[^ ]*DIPLOM[^ ]*/DIPLOM/g' | \
sed 's/[^ ]*WORK[^ ]*/WORK/g' | \
sed 's/[^ ]*ronja-name[^ ]*/RONJA-NAME/g' | \
sed 's/[^ ]*RONJA[^ ]*/RONJA/g' | \
sed 's/[^ ]*ALBUM-RONJA[^ ]*/ALBUM-RONJA/g' | \
sed 's/[^ ]*ALBUM-EDINBURGH[^ ]*/ALBUM-EDINBURGH/g' | \
sed 's/[^ ]*ALBUM-INDIA[^ ]*/ALBUM-INDIA/g' | \
sed 's/[^ ]*ALBUM-BERLIN[^ ]*/ALBUM-BERLIN/g' | \
sed 's/[^ ]*ALBUM-LASTDAYS[^ ]*/ALBUM-LASTDAYS/g' | \
sed 's/[^ ]*ALBUM-OSTSEE[^ ]*/ALBUM-OSTSEE/g' | \
sed 's/[^ ]*ALBUM-MISC[^ ]*/ALBUM-MISC/g' | \
sed 's/[^ ]*ALBUM-NEWYORK[^ ]*/ALBUM-NEWYORK/g' | \
sed 's/[^ ]*PICS[^ ]*/PICS/g' | \
sed 's/[^ ]*PicBook_2.[0-9].tar.gz[^ ]*/PicBook_2.x.tar.gz/g' | \
sed 's/[^ ]*skinsplit[^ ]*/PicBook-SKINSPLIT/g' | \
sed 's/[^ ]*BITSBYTES\/PicBook[^ ]*/PicBook/g' | \
sed 's/[^ ]*eap_search[^ ]*/EAPSEARCH/g' | \
sed 's/[^ ]*picindex[^ ]*/PICINDEX/g' | \
sed 's/[^ ]*al-rep[^ ]*/ALREP/g' | \
sed 's/[^ ]*Yal[^ ]*/YAL/g' | \
sed 's/[^ ]*WhoShort[^ ]*/WHOSHORT/g' | \
sed 's/[^ ]*BITSBYTES[^ ]*/BITSBYTES/g' | \
sed 's/[^ ]*LINKS[^ ]*/LINKS/g' | \
sed 's/[^ ]*CHAT[^ ]*/CHAT/g' | \
sed 's/[^ ]*PicBook.tar.gz/OLD-PicBook.tar.gz/g' | \
sed 's/[^ ]*PICS\/PicBook[^ ]*/OLD-PicBook/g' | \
sed 's/[^ ]*\/pics[^ ]*/OLD-pics-DIR!!!/g' | \
sed 's/[^ ]*\/me[^ ]*/OLD-me-DIR!!!/g' | \
sed 's/[^ ]*\/work[^ ]*/OLD-work-DIR!!!/g' | \
sed 's/[^ ]*\/ronja[^ ]*/OLD-ronja-DIR!!!/g' | \
sed 's/[^ ]*\/links[^ ]*/OLD-links-DIR!!!/g' | \
sed 's/[^ ]*\/chat[^ ]*/OLD-chat-DIR!!!/g' | \
sed 's/[^ ]*\/diploma[^ ]*/OLD-diploma-DIR!!!/g' | \
sed 's/[^ ]*HILDEGARD[^ ]*/HILDEGARD/g' | \
sed 's/[^ ]*favicon[^ ]*/FAVICON/g' | \
sed 's/[^ ]*TEST[^ ]*/TEST/g' | \
sed 's/[^ ]*pete[^ ]*/PETE/g' | \
sed 's/[^ ]*Peter.Hanssen[^ ]*/PETER.HANSSEN/g' > $TMP

echo "   - final sort"
awk '$3 != $4 {print $2,$1,$3,$4}' $TMP | uniq -3 >> $OUT

echo
echo "All hosts:"
awk '{print $1}' $TMP | uniq
echo

rm /tmp/Yal$$-s.tmp $TMP
echo "  *** FINISHED ! output: $OUT *************************************"

