]> git.sesse.net Git - wloh/blob - common.pm
Move get_auxillary_parameters into wloh_common.
[wloh] / common.pm
1 use strict;
2 use warnings;
3 use POSIX;
4
5 package wloh_common;
6
7 sub get_max_season {
8         my ($dbh, $locale) = @_;
9         my $ref = $dbh->selectrow_hashref('SELECT MAX(sesong) AS max_sesong FROM fotballserier se JOIN fotballspraak sp ON se.spraak=sp.id WHERE kultur=?',
10                 undef, $locale);
11         return $ref->{'max_sesong'};
12 }
13
14 sub output_last_sync {
15         my $dbh = shift;
16         my $ref = $dbh->selectrow_hashref('SELECT EXTRACT(EPOCH FROM last_sync) AS last_sync FROM last_sync');
17         if (!defined($ref)) {
18                 print "    <p class=\"lastsync\">Databasen ble sist synkronisert (ukjent).</p>\n";
19         } else {
20                 my $ts = POSIX::strftime("%Y-%m-%d %H:%M %Z", localtime($ref->{'last_sync'}));
21                 print "    <p class=\"lastsync\">Databasen ble sist synkronisert $ts.</p>\n";
22         }
23 }
24
25 sub get_locale {
26         my $cgi = shift;
27         my $url = $cgi->url(-absolute => 1);
28         $url =~ m#^/([a-z][a-z]-[A-Z][A-Z])/# or die "Invalid locale!";
29         return $1;
30 }
31
32 sub get_auxillary_parameters {
33         my ($dbh) = @_;
34
35         my %aux_parm_names = {
36                 -1 => num_iterations,
37                 -2 => score_stddev,
38                 -3 => rating_prior_stddev,
39                 -4 => total_log_likelihood,
40         };
41
42         my $q = $dbh->prepare('SELECT * FROM ratings WHERE id < 0');
43         $q->execute;
44
45         my $aux_parms = {};
46         while (my $ref = $q->fetchrow_hashref) {
47                 my $id = $ref->{'id'};
48                 $aux_parms->{$aux_parm_names{$id}} = $ref->{'rating'};
49         }
50         return $aux_parms;
51 }
52
53 1;