MediaWiki-Bot-Plugin-Admin
view release on metacpan or search on metacpan
lib/MediaWiki/Bot/Plugin/Admin.pm view on Meta::CPAN
sub delete {
my $self = shift;
my $page = shift;
my $summary = shift || 'BOT: deleted page by command';
my $res = $self->{api}->api({
action => 'query',
titles => $page,
prop => 'info|revisions',
intoken => 'delete'
});
my $data = [ %{ $res->{query}->{pages} } ]->[1];
my $edittoken = $data->{deletetoken};
$res = $self->{api}->api({
action => 'delete',
title => $page,
token => $edittoken,
reason => $summary
});
return $self->_handle_api_error() unless $res;
return $res;
}
sub undelete {
my $self = shift;
my $page = shift;
my $summary = shift || 'BOT: undeleting page by command';
# http://meta.wikimedia.org/w/api.php?action=query&list=deletedrevs&titles=User:Mike.lifeguard/sandbox&drprop=token&drlimit=1
my $token_results = $self->{api}->api({
action => 'query',
list => 'deletedrevs',
titles => $page,
drlimit => 1,
drprop => 'token',
});
my $token = $token_results->{query}->{deletedrevs}->[0]->{token};
my $res = $self->{api}->api({
action => 'undelete',
title => $page,
reason => $summary,
token => $token,
});
return $self->_handle_api_error() unless $res;
return $res;
}
sub delete_archived_image {
my $self = shift;
my $archive = shift;
my $summary = shift || 'BOT: deleting old version of image by command';
my $file = [ split m/!/, $archive ]->[1];
my ($token) = $self->_get_edittoken($file);
my $res = $self->{api}->api({
action => 'delete',
title => "File:$file",
token => $token,
reason => $summary,
oldimage => $archive,
});
return $self->_handle_api_error() unless $res;
return $res;
}
sub block {
my $self = shift;
my $user;
my $length;
my $summary;
my $anononly;
my $autoblock;
my $blockac;
my $blockemail;
my $blocktalk;
if (ref $_[0] eq 'HASH') {
$user = $_[0]->{user};
$length = $_[0]->{length};
$summary = $_[0]->{summary};
$anononly = $_[0]->{anononly};
$autoblock = $_[0]->{autoblock};
$blockac = $_[0]->{blockac};
$blockemail = $_[0]->{blockemail};
$blocktalk = $_[0]->{blocktalk};
}
else {
$user = shift;
$length = shift;
$summary = shift;
$anononly = shift;
$autoblock = shift;
$blockac = shift;
$blockemail = shift;
$blocktalk = shift;
}
my $res;
my $edittoken;
if ($self->{blocktoken}) {
$edittoken = $self->{blocktoken};
}
else {
$res = $self->{api}->api({
action => 'query',
titles => 'Main_Page',
prop => 'info|revisions',
intoken => 'block'
( run in 0.787 second using v1.01-cache-2.11-cpan-71847e10f99 )