|
|
@ -14,6 +14,10 @@ use Data::Dumper; |
|
|
|
use feature "signatures"; |
|
|
|
use feature "signatures"; |
|
|
|
no warnings "experimental::signatures"; |
|
|
|
no warnings "experimental::signatures"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# The below regex is a whitespace forgiving version of /^(-?\d+),(-?\d+)/, an int pair |
|
|
|
|
|
|
|
my $coords_regex = qr/^\s*(-?\s*\d+)\s*,\s*(-?\s*\d+)\s*$/; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
my $api_url = "https://wiki.tensor.green/w/api.php"; |
|
|
|
my $api_url = "https://wiki.tensor.green/w/api.php"; |
|
|
|
my $region_template_name = "MapRegion"; |
|
|
|
my $region_template_name = "MapRegion"; |
|
|
|
my $subregion_template_name = "MapSubregion"; |
|
|
|
my $subregion_template_name = "MapSubregion"; |
|
|
@ -160,9 +164,8 @@ foreach my $page (values %{$tile_query_results->{query}{pages}}) |
|
|
|
my $region = $grid->{regions}{$region_name}; |
|
|
|
my $region = $grid->{regions}{$region_name}; |
|
|
|
foreach my $coords (split /;/, $content) |
|
|
|
foreach my $coords (split /;/, $content) |
|
|
|
{ |
|
|
|
{ |
|
|
|
# The below regex is a whitespace forgiving version of /^(-?\d+),(-?\d+)/, an int pair |
|
|
|
|
|
|
|
do { carp "Skipping bad spec: $coords"; next; } |
|
|
|
do { carp "Skipping bad spec: $coords"; next; } |
|
|
|
unless $coords =~ /^\s*(-?\s*\d+)\s*,\s*(-?\s*\d+)\s*$/; |
|
|
|
unless $coords =~ $coords_regex; |
|
|
|
$region->make_tile_at($1,$2); |
|
|
|
$region->make_tile_at($1,$2); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -207,7 +210,7 @@ foreach my $page (values %{$location_query_results->{query}{pages}}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
# The below regex is a whitespace forgiving version of /^(-?\d+),(-?\d+)/, an int pair |
|
|
|
# The below regex is a whitespace forgiving version of /^(-?\d+),(-?\d+)/, an int pair |
|
|
|
if($parsed_template->{positional_params}[0] =~ /^\s*(-?\s*\d+)\s*,\s*(-?\s*\d+)\s*$/) |
|
|
|
if($parsed_template->{positional_params}[0] =~ $coords_regex) |
|
|
|
{ |
|
|
|
{ |
|
|
|
$location->make_tile_at($1,$2); |
|
|
|
$location->make_tile_at($1,$2); |
|
|
|
if($regiondir) |
|
|
|
if($regiondir) |
|
|
@ -215,9 +218,8 @@ foreach my $page (values %{$location_query_results->{query}{pages}}) |
|
|
|
$location_with_context->make_tile_at($1,$2); |
|
|
|
$location_with_context->make_tile_at($1,$2); |
|
|
|
foreach my $coords (split /;/, $parsed_template->{named_params}{context_tiles}) |
|
|
|
foreach my $coords (split /;/, $parsed_template->{named_params}{context_tiles}) |
|
|
|
{ |
|
|
|
{ |
|
|
|
# The below regex is a whitespace forgiving version of /^(-?\d+),(-?\d+)/, an int pair |
|
|
|
|
|
|
|
do { carp "Skipping bad spec: $coords"; next; } |
|
|
|
do { carp "Skipping bad spec: $coords"; next; } |
|
|
|
unless $coords =~ /^\s*(-?\s*\d+)\s*,\s*(-?\s*\d+)\s*$/; |
|
|
|
unless $coords =~ $coords_regex; |
|
|
|
$location_with_context->add_tile($grid->get_tile_at($1, $2)); |
|
|
|
$location_with_context->add_tile($grid->get_tile_at($1, $2)); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|