#!/usr/bin/perl # Upload a file to a recent MediaWiki using the API. use strict; use IO::File; use MediaWiki::API 0.39; use constant API_URL => 'https://entropia.de/wiki/api.php'; my $wikiuser = $ARGV[0]; my $wikipass = $ARGV[1]; my $file = $ARGV[2]; my $comment = $ARGV[3]; # usage if (!defined($comment)) { print "Usage: $0 \n"; exit; } # log in to the wiki my $mw = MediaWiki::API->new({api_url => API_URL}); $mw->login( { lgname => $wikiuser, lgpassword => $wikipass } ) || die $mw->{error}->{code} . ': ' . $mw->{error}->{details}; # upload file my $fh = IO::File->new($file, 'r'); $fh->binmode(); my ($buffer, $data); while ( read($fh, $buffer, 65536) ) { $data .= $buffer; } close($fh); $mw->upload( { title => $file, summary => $comment, data => $data } ) || die $mw->{error}->{code} . ': ' . $mw->{error}->{details};