X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/15b104f4ff4614aa78c01180b6a9b89dd5a1400f..7196368d6a27f4c3313e60c82ed06c959d60e90b:/script/misc/update-wiki-pages diff --git a/script/misc/update-wiki-pages b/script/misc/update-wiki-pages index 0bef30d03..84205fa35 100755 --- a/script/misc/update-wiki-pages +++ b/script/misc/update-wiki-pages @@ -3,20 +3,11 @@ use 5.010; use strict; use warnings; -use Pod::Usage (); -use Getopt::Long (); - -BEGIN { - eval "require MediaWiki::API; require YAML::XS;" or do { - print "You have to install some modules via CPAN to run this:\n"; - print " sudo cpanp MediaWiki::API YAML::XS\n"; - exit 1; - }; -} - +use Getopt::Long; +use Pod::Usage; use MediaWiki::API; +use Test::More qw(no_plan); use YAML::XS qw(Dump); -use Test::More 'no_plan'; =head1 NAME @@ -50,7 +41,9 @@ help() unless -f $out_file; # Get a API interface my $mw = MediaWiki::API->new(); ok($mw, "Got a MediaWiki API"); -$mw->{config}->{api_url} = 'http://wiki.openstreetmap.org/w/api.php'; +$mw->{config}->{api_url} = 'https://wiki.openstreetmap.org/w/api.php'; +$mw->{config}->{retries} = 5; +$mw->{config}->{retry_delay} = 30; # All our goodies my (%feature, %count); @@ -67,14 +60,26 @@ for my $lang ('', map { "${_}:" } qw[ Pt Fi De It HU Cz Fr RU Pl ]) { ok(1, " Got $cnt key pages"); $count{key} += $cnt; + # Key prefix pages + ok(1, " Getting key prefix pages"); + $cnt = stick_content_in_hash("key", "Template:${lang}KeyPrefixDescription", \%feature); + ok(1, " Got $cnt key prefix pages"); + $count{keyprefix} += $cnt; + # Value pages ok(1, " Getting value pages"); $cnt = stick_content_in_hash("tag", "Template:${lang}ValueDescription", \%feature); ok(1, " Got $cnt value pages"); $count{value} += $cnt; + + # ChangesetKey pages + ok(1, " Getting changeset key pages"); + $cnt = stick_content_in_hash("key", "Template:${lang}ChangesetKeyDescription", \%feature, "ChangesetKey"); + ok(1, " Got $cnt changeset key pages"); + $count{changesetkey} += $cnt; } -ok(1, "Got a total of $count{$_} ${_}s") for qw[ key value ]; +ok(1, "Got a total of $count{$_} ${_}s") for qw[ key keyprefix changesetkey value ]; # Dump to .yml file open my $out, ">", $out_file or die "Can't open file '$out_file' supplied on the command line"; @@ -88,8 +93,9 @@ exit 0; sub stick_content_in_hash { - my ($key, $title, $hash) = @_; + my ($key, $title, $hash, $namespace) = @_; my $ukey = ucfirst $key; + $namespace ||= $ukey; my $space_to_underscore = sub { my $txt = shift; @@ -106,7 +112,7 @@ sub stick_content_in_hash my $title = $link->{title}; my $lang; my $key_name; - if ($title =~ /^$ukey:(?.*?)$/) { + if ($title =~ /^($namespace|$ukey):(?.*?)$/) { # English by default $lang = "en"; $key_name = $space_to_underscore->($+{key_name});