From a86c107fef73d3b8f1378e8a6cd4416481a05199 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Fri, 5 Oct 2007 18:45:11 +0200 Subject: [PATCH] Added an assessment function. --- www/assess-single.pl | 48 ++++++++++++++++++++++++++++++++++++++++++++ www/assess.xml | 37 ++++++++++++++++++++++++++++++++++ www/index.xml | 19 ++++++++++++++++++ 3 files changed, 104 insertions(+) create mode 100644 www/assess-single.pl create mode 100644 www/assess.xml diff --git a/www/assess-single.pl b/www/assess-single.pl new file mode 100644 index 0000000..0d24a58 --- /dev/null +++ b/www/assess-single.pl @@ -0,0 +1,48 @@ +#! /usr/bin/perl +use strict; +use warnings; +use DBI; +use CGI; +use CGI::Carp qw(fatalsToBrowser); +use lib qw(/srv/bzr.sesse.net/www/xml-template/perl/); +use XML::Template; +require '../foosball.pm'; + +my $cgi = CGI->new; + +my $username1 = $cgi->param('username1'); +$username1 =~ /^([a-z][a-z0-9]*)$/ or die "Invalid user name 1"; +$username1 = $1; + +my $username2 = $cgi->param('username2'); +$username2 =~ /^([a-z][a-z0-9]*)$/ or die "Invalid user name 2"; +$username2 = $1; + +my $dbh = foosball::db_connect(); + +# fetch the single ratings +my ($rating1, $rd1) = foosball::find_single_rating($dbh, $username1); +my ($rating2, $rd2) = foosball::find_single_rating($dbh, $username2); + +open ASSESS, "/srv/foosball.sesse.net/foorank $rating1 $rd1 $rating2 $rd2 |" + or die "foorank: $!"; + +my @results = (); +while () { + my ($score, $prob, $rdiff1, $rdiff2) = split /,/, $_; + push @results, { + score => $score, + prob => (sprintf "%.3f", $prob), + rdiff1 => (sprintf "%+d", int($rdiff1+0.5)), + rdiff2 => (sprintf "%+d", int($rdiff2+0.5)), + }; +} + +print CGI->header(-type=>'application/xhtml+xml'); + +my $doc = XML::Template::process_file('assess.xml', { + 'username1' => $username1, + 'username2' => $username2, + '#results' => \@results, +}); +print $doc->toString; diff --git a/www/assess.xml b/www/assess.xml new file mode 100644 index 0000000..44f7ddf --- /dev/null +++ b/www/assess.xml @@ -0,0 +1,37 @@ + + + + + Foosball! + + + + +

Assessment of singles match between and

+ + + + + + + + + + + + + + + + + + +
ScoreProbability
+ +

Don't want to click the back button? Here's a link, you + lazy sod.

+ + + diff --git a/www/index.xml b/www/index.xml index 8c63fb2..dbd5359 100644 --- a/www/index.xml +++ b/www/index.xml @@ -134,6 +134,25 @@ + +

Assess a singles match

+ +
+ + + + + + + + + + + + +
User name 1
User name 2
+
+

About the ratings

-- 2.39.2