#!/usr/bin/perl # fetch content of mediawiki page use warnings; use strict; use feature qw(say); use Path::Tiny; use MediaWiki::API; use DateTime::Format::ISO8601; my $base_uri = shift; my $page_title = shift; my $outfile = shift; my $mw = MediaWiki::API->new( { api_url => $base_uri . 'w/api.php' } ); my $page = $mw->get_page( { title => $page_title } ) || die $mw->{error}->{code} . ': ' . $mw->{error}->{details}; my $dt = DateTime::Format::ISO8601->parse_datetime( $page->{'timestamp'} ); path($outfile)->spew_utf8( $page->{'*'} ); path($outfile)->touch( $dt->epoch ); say STDERR sprintf( 'Succesfully fetched %s (rev. %s)', $page_title, $page->{'revid'}); 1;