use warnings;
use CGI qw(:standard);
use DBI;
+use POSIX qw(strftime mktime);
$ENV{TZ} = 'America/Los_Angeles';
+sub get_unix_timestamp {
+ my ($year, $month, $day) = @_;
+ return mktime(0, 0, 0, $day, $month - 1, $year - 1900);
+}
+
+my ($sec, $min, $hour, $mday, $mon, $year, $wday) = localtime();
+
+my $today_pst = get_unix_timestamp($year + 1900, $mon + 1, $mday);
+my $week_start_pst = get_unix_timestamp($year + 1900, $mon + 1, $mday - $wday);
+my $month_start_pst = get_unix_timestamp($year + 1900, $mon + 1, 1);
+
print header(-type => 'text/html', -charset => 'utf-8');
print start_html(-title => "GPU Leaderboard",
-style => {-src => 'index.css'});
SELECT u.name, SUM(g.util * (1.0/60.0)) AS gpu_hours
FROM usage g
JOIN users u ON g.uid = u.uid
- WHERE g.time >= datetime('now', 'start of day')
+ WHERE g.time >= ?
GROUP BY u.uid
ORDER BY gpu_hours DESC;
};
SELECT u.name, SUM(g.util * (1.0/60.0)) AS gpu_hours
FROM usage g
JOIN users u ON g.uid = u.uid
- WHERE g.time >= datetime('now', 'start of day', '-' || strftime('%w', 'now') || ' days')
+ WHERE g.time >= ?
GROUP BY u.uid
ORDER BY gpu_hours DESC;
};
SELECT u.name, SUM(g.util * (1.0/60.0)) AS gpu_hours
FROM usage g
JOIN users u ON g.uid = u.uid
- WHERE g.time >= datetime('now', 'start of month')
+ WHERE g.time >= ?
GROUP BY u.uid
ORDER BY gpu_hours DESC;
};
};
my $sth_today = $dbh->prepare($query_today);
-$sth_today->execute();
+$sth_today->execute($today_pst);
my $sth_week = $dbh->prepare($query_week);
-$sth_week->execute();
+$sth_week->execute($week_start_pst);
my $sth_month = $dbh->prepare($query_month);
-$sth_month->execute();
+$sth_month->execute($month_start_pst);
my $sth_alltime = $dbh->prepare($query_alltime);
$sth_alltime->execute();
print "<tr><th>Name</th><th>GPU Hours</th></tr>";
while (my $row = $sth_today->fetchrow_hashref) {
print "<tr>";
- print "<td>$row->{name}</td>";
+ print "<td><a href=\"//ais-ucla.org/~$row->{name}\">$row->{name}</a></td>";
print "<td>" . sprintf("%.2f", $row->{gpu_hours} || 0) . "</td>";
print "</tr>";
}
print "<tr><th>Name</th><th>GPU Hours</th></tr>";
while (my $row = $sth_week->fetchrow_hashref) {
print "<tr>";
- print "<td>$row->{name}</td>";
+ print "<td><a href=\"//ais-ucla.org/~$row->{name}\">$row->{name}</a></td>";
print "<td>" . sprintf("%.2f", $row->{gpu_hours} || 0) . "</td>";
print "</tr>";
}
print "<tr><th>Name</th><th>GPU Hours</th></tr>";
while (my $row = $sth_month->fetchrow_hashref) {
print "<tr>";
- print "<td>$row->{name}</td>";
+ print "<td><a href=\"//ais-ucla.org/~$row->{name}\">$row->{name}</a></td>";
print "<td>" . sprintf("%.2f", $row->{gpu_hours} || 0) . "</td>";
print "</tr>";
}
print "<tr><th>Name</th><th>GPU Hours</th></tr>";
while (my $row = $sth_alltime->fetchrow_hashref) {
print "<tr>";
- print "<td>$row->{name}</td>";
+ print "<td><a href=\"//ais-ucla.org/~$row->{name}\">$row->{name}</a></td>";
print "<td>" . sprintf("%.2f", $row->{gpu_hours} || 0) . "</td>";
print "</tr>";
}