my %ratings_stddev = ();
my @matches = ();
-sub sanitize {
- return HTML::Entities::encode_entities(shift);
-}
-
sub color {
my $x = shift;
return int(255.0 * ($x ** (1.80)));
while (my $ref = $q->fetchrow_hashref) {
my $id = $ref->{'id'};
- $players{$id} = sanitize(Encode::decode_utf8($ref->{'navn'}));
+ $players{$id} = Encode::decode_utf8($ref->{'navn'});
$ratings{$id} = $ref->{'rating'};
$ratings_stddev{$id} = $ref->{'rating_stddev'};
}
}
sub write_parms_to_file {
- my ($aux_parms, $match_stddev, $used_ratings, $used_cov) = @_;
+ my ($locale, $aux_parms, $match_stddev, $used_ratings, $used_cov) = @_;
- POSIX::setlocale(&POSIX::LC_ALL, 'nb_NO.UTF-8');
+ wloh_common::set_locale($locale);
my @sorted_players = sort { $players{$a} cmp $players{$b} } keys %players;
}
close MCCALC;
- POSIX::setlocale(&POSIX::LC_ALL, 'nb_NO.UTF-8');
+ wloh_common::set_locale($locale);
return $tmpnam;
}
sub make_table {
my ($locale, $aux_parms, $match_stddev, $lowest_division, $used_ratings, $used_cov, $division, $subdivision, $table_id) = @_;
- my $tmpnam = write_parms_to_file($aux_parms, $match_stddev, $used_ratings, $used_cov);
+ my $tmpnam = write_parms_to_file($locale, $aux_parms, $match_stddev, $used_ratings, $used_cov);
my %prob = ();
open MCCALC, "$config::base_dir/mcwordfeud $trials < $tmpnam |"
my $num_games = scalar keys %prob;
- # Make list of ranks.
+ # Make list of ranks. (Relegation is handled specially.)
my @ranks = ();
for my $i (1..$num_games) {
push @ranks, { 'th' => "$i." };
}
- push @ranks, { 'th' => 'NEDRYKK' } unless ($lowest_division);
my @players = ();
};
}
- return {
+ my $parms = {
'ranks' => \@ranks,
'tbody' => \@players,
};
+ $parms->{'relegation'} = '' if ($lowest_division);
+ return $parms;
}
sub make_cov_table {
my $cov = get_covariance_matrix($dbh, keys %players);
if (defined($match_player) && defined($match_position)) {
- my $tmpnam = write_parms_to_file($aux_parms, $match_stddev, \%ratings, $cov);
+ my $tmpnam = write_parms_to_file($locale, $aux_parms, $match_stddev, \%ratings, $cov);
--$match_player;
--$match_position;
if (scalar @scenario == 0) {
print CGI->header(-type=>'text/html; charset=utf-8', -expires=>'+5m');
- wloh_common::process_template('scenario-not-found.xml', {
+ wloh_common::process_template('scenario-not-found', $locale, {
'#nick' => $player_name,
'#rank' => sprintf("%d.", $match_position + 1)
});
} else {
print CGI->header(-type=>'text/html; charset=utf-8', -expires=>'+5m');
- wloh_common::process_template('scenario.xml', {
+ wloh_common::process_template('scenario', $locale, {
'#nick' => $player_name,
'#rank' => sprintf("%d.", $match_position + 1),
'#results' => \@scenario
});
}
} else {
- POSIX::setlocale(&POSIX::LC_ALL, 'nb_NO.UTF-8');
+ wloh_common::set_locale($locale);
my $max_division = $divisions[$#divisions];
my $lowest_division = ($division == $max_division);
my $avg_rating = find_avg_rating(\%ratings);
print CGI->header(-type=>'text/html; charset=utf-8', -expires=>'+5m');
- wloh_common::process_template('index.xml', {
+ wloh_common::process_template('index', $locale, {
'#navbar' => wloh_common::get_navbar($cgi, $dbh, $locale),
'#division-selector/action' => "/$locale/",
'#division' => get_division_selector(\@divisions, $division),