]> git.sesse.net Git - ccbs/blobdiff - html/songratings.pl
Add a (hidden) script for showing song ratings.
[ccbs] / html / songratings.pl
diff --git a/html/songratings.pl b/html/songratings.pl
new file mode 100755 (executable)
index 0000000..c8be12d
--- /dev/null
@@ -0,0 +1,34 @@
+#! /usr/bin/perl
+
+use ccbs;
+use strict;
+use warnings;
+
+my $cgi = new CGI;
+my $machine = $cgi->param('machine');
+
+my $dbh = ccbs::db_connect();
+
+my $songs_raw = ccbs::db_fetch_all($dbh, 'SELECT song,title,playmode,difficulty,feetrating FROM songratings NATURAL JOIN songs WHERE machine=? ORDER BY machine,song', $machine);
+
+my @songs = ();
+
+my $last_song = -1;
+my $show_challenge = 0;
+for my $song (@$songs_raw) {
+       if ($song->{'song'} != $last_song) {
+               push @songs, { song => $song->{'song'}, title => $song->{'title'} };
+       }
+
+       my $key = $song->{'playmode'} . '_' . $song->{'difficulty'};
+       $songs[$#songs]->{$key} = $song->{'feetrating'};
+       $last_song = $song->{'song'};
+
+       $show_challenge = 1 if ($song->{'difficulty'} eq 'challenge');
+}
+
+ccbs::print_header();
+ccbs::process_template('songratings.tmpl', 'Sanger', {
+       songs => \@songs,
+});
+$dbh->disconnect;