while (defined ($_ = readline $reportfile)) {
# ignore leading empty lines; stop if trailing
/\S/ or @player ? last : next;
- my ($name, $result) = /^ (.*?) \s+ ([A-Z]+) \s*$/x
+ my ($name, $result, $ladder) = /^ (\S+) \s+ ([A-Z]+) \s* (.*)/x
or chomp, warn("Unknown pvpgn report player line: $_\n");
push @player, {name => $name, result => $result};
+ if ($ladder) {
+ my @ladderdata = $ladder =~ m{
+ ^ \s* rating=(\d+) \s+ \[\#\d+\]
+ \s+ prob=([\d.]+)% \s+ K=(\d+) \s+ adj=([+-]\d+) \s* $
+ }x ? $player[-1]{ladder} = {
+ rating => $1,
+ prob => $2,
+ K => $3,
+ adj => $4,
+ } : warn("Unknown ladder details for player $name: $ladder\n");
+ }
}
my $i = -1;
return \@player;
}
-my $name = $ARGV[0] or die "Usage: $0 FILE\n";
-open my $reportfile, '<', "$name.txt" or die "No report file: $!\n";
+my $path = $ARGV[0] or die "Usage: $0 FILE\n";
+my ($name) = $path =~ m{([^/]+)$};
+open my $reportfile, '<', "$path.txt" or die "No report file: $!\n";
my $report = reporthead($reportfile);
print Dumper $report if $DBG;
start => time2str('%Y-%m-%d %X', $start),
duration => sprintf('%d seconds', $end - $start),
})->rows or die "Game insert failed: ".$Db->error."\n";
-my $gameid = $Db->last_insert_id((undef) x 4, {sequence => "game_id_seq"});
+my $gameid = $Db->last_insert_id((undef) x 4, {sequence => "game_id_seq"})
+ or die "Couldn't find our game insertion: ".$Db->error."\n";
+print "Game inserted as # $gameid\n";
$Db->insert("play", {
game => $gameid,