X-Git-Url: https://git.sesse.net/?p=ccbs;a=blobdiff_plain;f=parse%2Fparse-ddreurope-tournament.pl;h=9338ad29b418e8975ee80bb0ed52b0b1fce90f4b;hp=ad3fe0776b20f38275146f99b547cbbc90f2718b;hb=905e6c9f072de56b750e1aa2a34f64a528e205e9;hpb=62731f1052d2a3f21c2aac3511a0114bf6973c74 diff --git a/parse/parse-ddreurope-tournament.pl b/parse/parse-ddreurope-tournament.pl index ad3fe07..9338ad2 100644 --- a/parse/parse-ddreurope-tournament.pl +++ b/parse/parse-ddreurope-tournament.pl @@ -6,11 +6,10 @@ use Date::Manip; # Parses tournament results from the DDR Europe result list my $season = shift; -my ($name, $round, $group, $player, @rsongs); +my ($name, $round, $group, $player, $position, @rsongs); die "Missing season (give on command line)." if (!defined($season)); -# commented out -- see player below -# print "begin;\n"; +print "begin;\n"; while (<>) { if (/

\s* (.*?) \s* <\/h2>/x) { @@ -37,6 +36,54 @@ while (<>) { print " (SELECT scoringsystem FROM scoringsystems WHERE name='$system')\n"; print ");\n"; } + + # Player's results (header) + if (/^ .*? class="link"> (.*?) <\/a> $/x) { + $player = $1; + + # Woot, evil + printf "INSERT INTO players SELECT nextval('players_player_seq') AS player, '%s' AS nick WHERE '%s' NOT IN ( SELECT nick FROM players );\n", $player, $player; + + printf "INSERT INTO roundparticipation (tournament, round, parallel, player, position) VALUES (\n"; + print " (SELECT tournament FROM tournaments WHERE name='$name'),\n"; + print " $round, $group,\n"; + print " (SELECT player FROM players WHERE nick='$player'),\n"; + print " $position\n"; + print ");\n"; + ++$position; + } + + # Player's results (score) + if (//x) { + my $i = 0; + + # random songs + while (s/ (\d+) <\/td>//x) { + printf "INSERT INTO scores (tournament, round, parallel, player, song, chosen, score) VALUES (\n"; + print " (SELECT tournament FROM tournaments WHERE name='$name'),\n"; + print " $round, $group,\n"; + print " (SELECT player FROM players WHERE nick='$player'),\n"; + print " (SELECT song FROM songs WHERE lower(title)=lower('$rsongs[$i]')),\n"; + print " 'f',\n"; + print " $1);\n"; + ++$i; + } + + # chosen songs + while (s/ .*? class="link"> (.*?) <\/a> .*? (\d+) <\/td>//x) { + my $song = song_map($1); + my $score = $2; + $song =~ s/'/\\'/g; + + printf "INSERT INTO scores (tournament, round, parallel, player, song, chosen, score) VALUES (\n"; + print " (SELECT tournament FROM tournaments WHERE name='$name'),\n"; + print " $round, $group,\n"; + print " (SELECT player FROM players WHERE nick='$player'),\n"; + print " (SELECT song FROM songs WHERE lower(title)=lower('$song')),\n"; + print " 't',\n"; + print " $score);\n"; + } + } # New round if (/

Round \s* (\d+) \s* <\/h3>/x) { @@ -55,6 +102,8 @@ while (<>) { $group = $2; $group = 0 if ($1 eq 'Players'); + $position = 1; + print "INSERT INTO groups (tournament, round, parallel) VALUES (\n"; print " (SELECT tournament FROM tournaments WHERE name='$name'),\n"; print " $round, $group);\n"; @@ -88,47 +137,6 @@ while (<>) { print " round=$round;\n"; } - # Player's results (header) - if (/^ .*? class="link"> (.*?) <\/a> $/x) { - $player = $1; - printf "INSERT INTO players (nick) VALUES ('%s');\n", $player; - printf "INSERT INTO roundparticipation (tournament, round, parallel, player) VALUES (\n"; - print " (SELECT tournament FROM tournaments WHERE name='$name'),\n"; - print " $round, $group,\n"; - print " (SELECT player FROM players WHERE nick='$player')\n"; - print ");\n"; - } - - # Player's results (score) - if (//x) { - my $i = 0; - - # random songs - while (s/ (\d+) <\/td>//x) { - printf "INSERT INTO scores (tournament, round, parallel, player, song, chosen, score) VALUES (\n"; - print " (SELECT tournament FROM tournaments WHERE name='$name'),\n"; - print " $round, $group,\n"; - print " (SELECT player FROM players WHERE nick='$player'),\n"; - print " (SELECT song FROM songs WHERE lower(title)=lower('$rsongs[$i]')),\n"; - print " 'f',\n"; - print " $1);\n"; - ++$i; - } - - # chosen songs - while (s/ .*? class="link"> (.*?) <\/a> .*? (\d+) <\/td>//x) { - my $song = song_map($1); - $song =~ s/'/\\'/g; - - printf "INSERT INTO scores (tournament, round, parallel, player, song, chosen, score) VALUES (\n"; - print " (SELECT tournament FROM tournaments WHERE name='$name'),\n"; - print " $round, $group,\n"; - print " (SELECT player FROM players WHERE nick='$player'),\n"; - print " (SELECT song FROM songs WHERE lower(title)=lower('$song')),\n"; - print " 't',\n"; - print " $2);\n"; - } - } } printf "commit;\n"; @@ -149,6 +157,22 @@ sub song_map { $song =~ s/Keep On Movin/Keep On Movin'/; $song =~ s/So Deep/So Deep (Perfect Sphere Mix)/; $song =~ s/Aarons Party/Aaron's Party (Come Get It)/; + $song =~ s/Candy \*/Candy/; + $song =~ s/www\.blondie girl/www.blonde girl (MOMO Mix)/; + $song =~ s/DXY/DXY!/; + $song =~ s/Burning the floor/Burnin' the Floor/; + $song =~ s/Never Gonna Make/Never Gonna Make (Factory Team Mix)/; + $song =~ s/Max300/Max 300/; + $song =~ s/Era/era (nostalmix)/; + $song =~ s/Electro Tuned/Electro Tuned (the SubS Mix)/; + $song =~ s/Make a Jam/Make A Jam!/; + $song =~ s/Paranoia KCET -clean mix-/Paranoia KCET (Clean Mix)/; + $song =~ s/Cant Stop -Speed Mix-/Can't Stop Fallin' in Love (SPEED MIX)/; + $song =~ s/Love This Feelin/Love This Feelin'/; + $song =~ s/Trip Machine -Luv mix-/Trip Machine (Luv Mix)/; + $song =~ s/Let The Beat Hit Them/Let the Beat Hit 'em!/; + $song =~ s/Luv To Me/Luv to Me (AMD Mix)/; + $song =~ s/20 November/20th November/; return $song; }