Browse Source

remote-mediawiki: skip virtual namespaces

Virtual namespaces do not correspond to pages in the database and are
automatically generated by MediaWiki. It makes little sense,
therefore, to fetch pages from those namespaces and the MW API doesn't
support listing those pages.

According to the documentation, those virtual namespaces are currently
"Special" (-1) and "Media" (-2) but we treat all negative namespaces
as "virtual" as a future-proofing mechanism.

Signed-off-by: Antoine Beaupré <anarcat@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Antoine Beaupré 7 years ago committed by Junio C Hamano
parent
commit
db3364352d
  1. 5
      contrib/mw-to-git/git-remote-mediawiki.perl

5
contrib/mw-to-git/git-remote-mediawiki.perl

@ -264,10 +264,13 @@ sub get_mw_tracked_categories { @@ -264,10 +264,13 @@ sub get_mw_tracked_categories {
sub get_mw_tracked_namespaces {
my $pages = shift;
foreach my $local_namespace (@tracked_namespaces) {
my $namespace_id = get_mw_namespace_id($local_namespace);
# virtual namespaces don't support allpages
next if !defined($namespace_id) || $namespace_id < 0;
my $mw_pages = $mediawiki->list( {
action => 'query',
list => 'allpages',
apnamespace => get_mw_namespace_id($local_namespace),
apnamespace => $namespace_id,
aplimit => 'max' } )
|| die $mediawiki->{error}->{code} . ': '
. $mediawiki->{error}->{details} . "\n";

Loading…
Cancel
Save