X-Git-Url: https://git.sesse.net/?p=ccbs;a=blobdiff_plain;f=parse%2Fparse-wiki-songlist.pl;h=4303c2d39bdf31a504e2e7f33f1935d4a7ee0d8c;hp=bfd4ccfb6a44e6f7a15a06c956912615bea0f4aa;hb=12f6f1727b74581d318163d769318a5794076935;hpb=5c5d48e56dcc7014a265bc61cd54378fad401c40 diff --git a/parse/parse-wiki-songlist.pl b/parse/parse-wiki-songlist.pl index bfd4ccf..4303c2d 100644 --- a/parse/parse-wiki-songlist.pl +++ b/parse/parse-wiki-songlist.pl @@ -2,13 +2,18 @@ use strict; use warnings; +my $machine = shift; +die "Missing machine (first argument on the command line)" if (!defined($machine)); + # Parses songlist from the DDRNO wiki +print "begin;\n"; + while (<>) { m/ \| \s* \[\[ (.*?) \]\] \s* # song name \|\| \s* \[\[ (.*?) \]\] \s* # artist - \|\| \s* (\d+(-\d+)?) \s* # bpm + \|\| \s* (\d+(?:-(\d+))?) \s* # bpm \|\| \s* (\d+) \s* # single beginner \|\| \s* (\d+) \s* # single standard \|\| \s* (\d+) \s* # single difficult @@ -27,8 +32,8 @@ while (<>) { $artist =~ s/\[\[//g; # minimal SQL escaping - $songname =~ s/'/\'/g; - $artist =~ s/'/\'/g; + $songname =~ s/'/\\'/g; + $artist =~ s/'/\\'/g; $maxbpm = $minbpm if (!defined($maxbpm)); ($maxbpm,$minbpm) = ($minbpm,$maxbpm) if ($maxbpm < $minbpm); @@ -38,13 +43,14 @@ while (<>) { for my $t (['single', 'beginner', $sb], ['single', 'standard', $ss], - ['single', 'difficulty', $sd], + ['single', 'difficult', $sd], ['single', 'expert', $se], ['double', 'standard', $ds], - ['double', 'difficulty', $dd], + ['double', 'difficult', $dd], ['double', 'expert', $de]) { - printf "INSERT INTO songratings (song,playmode,difficulty,feetrating) VALUES ((SELECT song FROM songs WHERE title='%s'),'%s','%s',%u);\n", - $songname, $t->[0], $t->[1], $t->[2]; + printf "INSERT INTO songratings (song,machine,playmode,difficulty,feetrating) VALUES ((SELECT song FROM songs WHERE title='%s'),(SELECT machine FROM machines WHERE machinename='%s'),'%s','%s',%u);\n", + $songname, $machine, $t->[0], $t->[1], $t->[2]; } - } + +printf "commit;\n";