Re: [PATCH 4/7] remote-mediawiki: skip virtual namespaces

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Oct 29, 2017 at 10:51 PM, Antoine Beaupré <anarcat@xxxxxxxxxx> wrote:
> 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.

This patch makes more sense now with the additional commentary.
Thanks. More below.

> Signed-off-by: Antoine Beaupré <anarcat@xxxxxxxxxx>
> ---
> diff --git a/contrib/mw-to-git/git-remote-mediawiki.perl b/contrib/mw-to-git/git-remote-mediawiki.perl
> index e7616e1a2..5c85e64b6 100755
> --- a/contrib/mw-to-git/git-remote-mediawiki.perl
> +++ b/contrib/mw-to-git/git-remote-mediawiki.perl
> @@ -264,10 +264,12 @@ 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);
> +        next if $namespace_id < 0; # virtual namespaces don't support allpages

Since (it appears) that get_mw_namespace_id() can return undef, you
probably still need to take that into account before performing a
numeric comparison:

    next if !$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";




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux