chiark / gitweb /
compatibility with obsidian
[ypp-sc-tools.db-live.git] / yarrg / CommodsScrape.pm
index 2b1d4a9add9ed0bf0d1cc49d63e55a6996348e97..2cd1148f9a3f1c60a97e22cf3b0d1f60d5a84e47 100644 (file)
@@ -46,7 +46,7 @@ sub yppedia_chart_parse ($$ $$$$ $) {
        $conv_nxy, $on_archlabel, $on_island, $on_league,
        $on_incomprehensible) = @_;
 
-    my ($x,$y, $arch,$island,$solid,$dirn);
+    my ($x,$y, $arch,$island,$sizecol,$solid,$dirn);
     my $nn= sub { return $conv_nxy->($x,$y) };
     
     # We don't even bother with tag soup; instead we do line-oriented parsing.
@@ -55,25 +55,26 @@ sub yppedia_chart_parse ($$ $$$$ $) {
        s/^\s*//; chomp; s/\s+$//; s/\s+/ /g;
        s/\<\/?(?:b|em)\>//g;
        s/\{\{(?:chart\ style|Chart league difficulty)\|[^{}]*\}\}//gi;
+       s/^\{\{(?:testing|current)\}\}//;
        next unless m/\{\{/; # only interested in chart template stuff
 
        if (($x,$y,$arch) =
            m/^\{\{ chart\ label \|(\d+)\|(\d+)\| .*
                    (?: \<(?: big|center )\>)* \'+
                    (?: \[\[ | \{\{ )
-                   [^][\']* \| ([^][\'|]+)\ archipelago
+                   [^][]* \| ([^][|]+)\ archipelago
                    (?: \]\] | \}\} )
                    \'+ (?: \<\/(?: big|center )\>)* \}\}$/xi) {
            printf $debugfh "%2d,%-2d arch %s\n", $x,$y,$arch;
            $on_archlabel->($x,$y,$arch);
        } elsif (m/^\{\{ chart\ label \|\d+\|\d+\|
                 \<big\> \'+ \[\[ .* \b ocean \]\]/xi) {
-       } elsif (($x,$y,$island) =
+       } elsif (($x,$y,$island,$sizecol) =
            m/^\{\{ chart\ island\ icon \|(\d+)\|(\d+)\|
-                   ([^| ][^|]*[^| ]) \| .*\}\}$/xi) {
+                   ([^| ][^|]*[^| ]) \| [^|]* \| (\w+) \| .*\}\}$/xi) {
            my $n= $nn->();
            printf $debugfh "%2d,%-2d island %s\n", $x,$y,$island;
-           $on_island->($n, $island);
+           $on_island->($n, $island, $sizecol);
        } elsif (($solid,$x,$y,$dirn) =
            m/^\{\{ chart\ league((?:\ solid)?) \|(\d+)\|(\d+)\|
                    \.?([-\/\\o])\.? \| .*\}\}$/xi) {