#!/usr/bin/perl
#
# usage.byurl -- summerize log by URL
#
# $Id: usage.byurl,v 2.3 1993/06/29 02:40:37 sanders Exp $
#
sub fold {
    $_[0] =~ s,^(/decode_walk)[/\?].*,\1, && return 1;
    $_[0] =~ s,^(/decode-walk)[/\?].*,\1, && return 1;
    $_[0] =~ s,^(/bookmark)[/\?].*,\1,    && return 1;
    $_[0] =~ s,^(/finger)[/\?].*,\1,      && return 1;
    $_[0] =~ s,^(/date)[/\?].*,\1,        && return 1;
    $_[0] =~ s,^(/calendar)[/\?].*,\1,    && return 1;
    $_[0] =~ s,^(/bsdi-man)[/\?].*,\1,    && return 1;
    $_[0] =~ s,^(/faces)[/\?].*,\1,       && return 1;
    0;
}
$log = $ARGV[0] || "/usr/local/www/log";
$sum = "usage.url";
if ( -f $sum ) {
    rename ($sum, "$sum-") || die "rename $sum $sum-: $!";
}
if ( -f "$sum-" ) {
    open(SUM, "< $sum-") || die "$sum-: $!";
    while(<SUM>) {
	chop;
	($a, $b) = split(" ", $_, 2);
	&fold($b);
	$count{$b} += $a;
    }
    close(SUM);
}
open(SUM, "> /tmp/$sum") || die "$sum: $!";

open(LOG, $log) || die "$log: $!";
while(<LOG>) {
    next if /^-/;
    $b = '**empty**' unless ($b) = m/GET ([^ \t\r\n]*)/;
    &fold($b);
    $count{$b}++;
}
close(LOG);

# -- summerize --
# foreach $i (keys(%count)) {
#     $count{$i} <= 10 && do {
#         $count{'**junk**'} += $count{$i};
#         $count{$i} = 0;
#     };
# }

foreach $i (keys(%count)) {
    printf(SUM "%6d %s\n", $count{$i}, $i) if $count{$i} > 0;
}
close(SUM);
system("sort -rn /tmp/$sum > $sum ; rm -f /tmp/$sum");
