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 относится к теме «Техники и викиботы» |