#!/usr/bin/perl

#use strict;
require 'ref.pl';

# アクセスログを集計して統計情報ファイルを更新します。
# 定期的に実行するように設定します。
# 実はこのスクリプトに Web からアクセスしても構いません。

open(IN, "$log") || die "Cannot open $log";

while (<IN>) {
    chomp;
    ($date, $time, $url, $title, $ref) = split(/ /);
    unless (&need_recording_access($ref)) {
        next;
    }

    if (length($list_title{$url}) < 2) {
        # title は UTF-8 で URL encode されている
        $title =~ tr/+/ /;
        $title =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack("C", hex($1))/eg;
        $list_title{$url} = $title;
    }
    $count{$url} = $count{$url} + 1;
}
close(IN);

my $s = '<ul id="statistics">';
foreach $u (sort { $count{$b} <=> $count{$a} || $b <=> $a } keys %count) {
    $s .= '<li><a title="' . $list_title{$u} . '" href="' . $u . '" target="_top">';
    $s .= $list_title{$u};
    $s .= ' (' . $count{$u} . ')';
    $s .= "</a></li>";
    $max_lines_url--;
    last if $max_lines_url == 0;
}
$s .= '</ul>';

open(OUT, "> $statistics") || die "Cannot open $statistics";
print OUT $s;
close(OUT);

if ($ENV{'QUERY_STRING'}) {
    print "Content-type: text/html\n\nsucceed\n";
}

