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_1 = $cgi->param('team1_username1');
14 $username1_1 =~ /^([a-z][a-z0-9]*)$/ or die "Invalid user name 1.1";
17 my $username1_2 = $cgi->param('team1_username2');
18 $username1_2 =~ /^([a-z][a-z0-9]*)$/ or die "Invalid user name 1.2";
21 my $username2_1 = $cgi->param('team2_username1');
22 $username2_1 =~ /^([a-z][a-z0-9]*)$/ or die "Invalid user name 2.1";
25 my $username2_2 = $cgi->param('team2_username2');
26 $username2_2 =~ /^([a-z][a-z0-9]*)$/ or die "Invalid user name 2.2";
29 my $dbh = foosball::db_connect();
31 # fetch the double ratings
32 my ($rating1_1, $rd1_1) = foosball::find_double_rating($dbh, $username1_1);
33 my ($rating1_2, $rd1_2) = foosball::find_double_rating($dbh, $username1_2);
34 my ($rating2_1, $rd2_1) = foosball::find_double_rating($dbh, $username2_1);
35 my ($rating2_2, $rd2_2) = foosball::find_double_rating($dbh, $username2_2);
38 open ASSESS, "/srv/foosball.sesse.net/foosrank $rating1_1 $rd1_1 $rating1_2 $rd1_2 $rating2_1 $rd2_1 $rating2_2 $rd2_2 10 |"
39 or die "foosrank: $!";
43 my ($score, $prob, $rdiff1, $rdiff2, $rdiff3, $rdiff4) = split /,/, $_;
46 prob => (sprintf "%.3f", $prob),
47 rdiff1 => (sprintf "%+d", foosball::round($rdiff1)),
48 rdiff2 => (sprintf "%+d", foosball::round($rdiff2)),
49 rdiff3 => (sprintf "%+d", foosball::round($rdiff3)),
50 rdiff4 => (sprintf "%+d", foosball::round($rdiff4)),
55 open ASSESS, "/srv/foosball.sesse.net/foosrank $rating1_1 $rd1_1 $rating1_2 $rd1_2 $rating2_1 $rd2_1 $rating2_2 $rd2_2 7 |"
56 or die "foosrank: $!";
60 my ($score, $prob, $rdiff1, $rdiff2, $rdiff3, $rdiff4) = split /,/, $_;
63 prob => (sprintf "%.3f", $prob),
64 rdiff1 => (sprintf "%+d", foosball::round($rdiff1)),
65 rdiff2 => (sprintf "%+d", foosball::round($rdiff2)),
66 rdiff3 => (sprintf "%+d", foosball::round($rdiff3)),
67 rdiff4 => (sprintf "%+d", foosball::round($rdiff4)),
71 print CGI->header(-type=>'application/xhtml+xml');
73 my $doc = XML::Template::process_file('assess-double.xml', {
74 'username1' => $username1_1,
75 'username2' => $username1_2,
76 'username3' => $username2_1,
77 'username4' => $username2_2,
78 'rating1' => foosball::round($rating1_1),
79 'rating2' => foosball::round($rating1_2),
80 'rating3' => foosball::round($rating2_1),
81 'rating4' => foosball::round($rating2_2),
82 '#results10' => XML::Template::alternate('tr/class', \@results10, 'odd', 'even'),
83 '#results7' => XML::Template::alternate('tr/class', \@results7, 'odd', 'even'),