Delete.pl

Материал из Викиреальностя
Перейти к: навигация, поиск

Бот на Perl для автоматизированного массового удаления страниц.

[править] Исходный код

#!/usr/bin/perl
 
binmode STDOUT, ':utf8';
 
use utf8;
use MediaWiki::API;
my $mw = MediaWiki::API->new({ api_url => 'http://wikireality.ru/w/api.php' });
$mw->login({ lgname => 'Имя бота', lgpassword => 'Пароль бота' }) || die;
 
# Получение delete token
my $res = $mw->api({
        action => 'query',
        prop => 'info',
        intoken => 'delete',
        titles => 'Labuda'
}) || die "Не могу получить delete token";
my $deletetoken = (values %{$res->{query}->{pages}})[0]->{deletetoken};
 
# Чтение файла и удаление страниц
open F, "delete.txt";
while(my $line = <F>)
{
        chomp $line;
        my $title = $line;
 
        print "\t" . $title, "\n";
 
        $mw->api({
                action => 'delete',
                token => $deletetoken,
                title => $title,
                reason => 'Робот: массовое удаление страниц'
        });
}
close F;

[править] Комментарии

Бот читает файл «delete.txt» со списком страниц (в формате одной страницы на строчку) и удаляет их.

В случае проблем с кириллицей (вместо названий с кириллицей на консоль выводится лабуда, и ничего не удаляется), может потребоваться добавить после «my $title = $line» такой код:

        $title = decode("utf8", $title);
        utf8::decode $title;

А в начало:

use URI::Encode qw(uri_encode uri_decode);
use Encode;

[править] См. также

Delete.pl относится к теме «Техники и викиботы»   ±