6 use CGI::Carp qw(fatalsToBrowser);
7 use lib qw(/srv/bzr.sesse.net/www/xml-template/perl/);
9 require '../foosball.pm';
13 my $username1 = $cgi->param('username1');
14 $username1 =~ /^([a-z][a-z0-9]*)$/ or die "Invalid user name 1";
17 my $username2 = $cgi->param('username2');
18 $username2 =~ /^([a-z][a-z0-9]*)$/ or die "Invalid user name 2";
21 my $dbh = foosball::db_connect();
23 # fetch the single ratings
24 my ($rating1, $rd1) = foosball::find_single_rating($dbh, $username1);
25 my ($rating2, $rd2) = foosball::find_single_rating($dbh, $username2);
28 open ASSESS, "/srv/foosball.sesse.net/foosrank $rating1 $rd1 $rating2 $rd2 10 |"
29 or die "foosrank: $!";
33 my ($score, $prob, $rdiff1, $rdiff2) = split /,/, $_;
36 prob => (sprintf "%.3f", $prob),
37 rdiff1 => (sprintf "%+d", foosball::round($rdiff1)),
38 rdiff2 => (sprintf "%+d", foosball::round($rdiff2)),
43 open ASSESS, "/srv/foosball.sesse.net/foosrank $rating1 $rd1 $rating2 $rd2 7 |"
44 or die "foosrank: $!";
48 my ($score, $prob, $rdiff1, $rdiff2) = split /,/, $_;
51 prob => (sprintf "%.3f", $prob),
52 rdiff1 => (sprintf "%+d", foosball::round($rdiff1)),
53 rdiff2 => (sprintf "%+d", foosball::round($rdiff2)),
57 print CGI->header(-type=>'application/xhtml+xml');
59 my $doc = XML::Template::process_file('assess.xml', {
60 'username1' => $username1,
61 'username2' => $username2,
62 'rating1' => foosball::round($rating1),
63 'rating2' => foosball::round($rating2),
64 '#results10' => XML::Template::alternate('tr/class', \@results10, 'odd', 'even'),
65 '#results7' => XML::Template::alternate('tr/class', \@results7, 'odd', 'even'),