#!/usr/bin/perl -w

=pod

=head1 NAME

chronicles.pl - check references between chronicles and db

=head1 SYNOPSIS

chronicles.pl I<chronicles_dir>

=head1 DESCRIPTION

Check the references between database and chronicles. 


=head1 BUGS

The database, user and password are hardcoded. 

=head1 AUTHOR

Boris Veytsman 

=head1 $Id: chronicles.pl,v 1.3 2003/03/17 15:47:22 boris Exp $

=cut

    use strict;
use DBI;


# Creating hash dbtochronicles;
my($dbh) = DBI->connect("DBI:mysql:chgk", "piataev", "")
    or die "Can't connect to DB chgk\n";
my %dbtochronicles;
my $sth=$dbh->prepare("SELECT FileName,URL from Tournaments where Type='þ' 
and not isnull(URL)");
$sth->execute;
while (my ($name,$url) = $sth->fetchrow_array) {
    $dbtochronicles{$name}=$url;
}


# Checking chronicles
if (! -d $ARGV[0]) {
    die "Cannot read $ARGV[0]";
}
chdir $ARGV[0] || die "Cannot chdir to $ARGV[0]: $!";
opendir (DIR, ".") || die "Cannot open $ARGV[0]: $!";
while (my $file=readdir(DIR)) {
    if (-f $file && $file =~ /html$/) {
	open (FILE, $file);
	while (<FILE>) {
	    chomp;
	    if (/znatoki\/cgi-bin\/db.cgi\?tour=([^\"]*)\"/) {
		my $name="$1.txt";
		if (!exists($dbtochronicles{$name}) ||
		    $dbtochronicles{$name} !~ /$file$/) {
		    print "$file -> $name\n";
		} else {
		    delete($dbtochronicles{$name});
		}
	    }
	}
	close FILE;
    }
}
closedir DIR;
foreach my $name (keys %dbtochronicles) {
    if ($name =~ /boris/) {
	print "$name -> $dbtochronicles{$name}\n";
    }
}

exit 0;

