Автоматический пост множества статей в MediaWiki

Информация, статьи, патчи, исходные коды и т.д.
Post Reply
sva
Администратор
Posts: 125
Joined: 01 May 2015, 19:56

Автоматический пост множества статей в MediaWiki

Post by sva »

Посмотрел, как постятся статьи на MediaWiki, версия 1.15.1 и забабахал перловый скрипт. Ничего сложного. Работает на русской версии. Читает из файла "2.2" в utf-8 кодировке построчно, в заголовок кидает первую часть строки до символа "," и добавляет к нему содержимое переменной $add

Code: Select all

#!/usr/bin/perl
use LWP::UserAgent;

my $wpSave = "Записать страницу"; # не трогать
my $add = "Человек";
my $category = "[[Категория:MediaWiki]]";
my $pat1 = "строка для замены1";

use utf8;
#use Encode;
#use Text::Iconv;

$ua=LWP::UserAgent->new();
$ua->agent('Mozilla/5.0 (compatible; MSIE 5.12;)');
push @{ $ua->requests_redirectable }, 'POST';

open($file,"2.2") || die "Can't Open Count Data File: $!\n";

#for($i = 0; $i < 5; $i++) { # для теста, если нужно запостить только 5 записей
   while(<$file>){
   $str = $_; # = <$file>;
   ($f, $l) = split(', ',$str,2);

   $str =~ s/$pat1/[[$pat1]]/; # делаем замену. тут - из слова делаем внутреннюю ссылку

    $page=$ua->post("http://wiki1.ru/wiki/index.php", # путь к index.php файлу MediaWiki
    [
    'title' => "$f $add",
    'action' => 'submit',
    'enctype' => 'multipart/form-data',

    'baseRevId' => '',
    'undidRev' => '0',
    'wpSection' => '',

    'wpStarttime' => '20100317160021',
    'wpEdittime' => '20100317160022',
    'wpScrolltop' => '',

    'wpAutoSummary' => 'd41d8cd98f00b204e9800998ecf8427e',
    'wpTextbox1' => "$str\n$category",
    'wpSummary' => '',

    'wpSave' => "$wpSave",
    #'wpPreview' => '',
    #'wpDiff' => '',


    'wpMinoredit' => '1',
    'wpWatchthis' => '1',
    'wpEditToken' => "+\\"
    ]
    );
    }
close($file);
Post Reply