--- /dev/null
+#! /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;