#! /usr/bin/perl use strict; use warnings; use LWP::UserAgent; use HTTP::Cookies; use Term::ReadKey; use Digest::MD5 qw(md5_hex); # Define page to insert my $dummy = "Vu l'affluence de bénévoles pour développer ce script, ben je l'ai fait moi-même..."; my $title = "TestCreationPage"; my $body = <<"END_BODY"; {{{Ceci est une jolie page}}} Cela marche {très} bien. Et on peut même faire des listes: - comme ça - et voilà {{$dummy}} END_BODY # Get user authentification information print "Enter login:\n"; my $user = ; chomp $user; print "Enter password:\n"; ReadMode 'noecho'; my $passwd = ReadLine 0; chomp $passwd; ReadMode 'normal'; # Create a user agent object my $ua = LWP::UserAgent->new(env_proxy => 1); $ua->agent("$0 (gibus perl script to execute insert a page into wiki.ffii.fr from ffii.fr server)"); $ua->cookie_jar({}); # Authentification stored in cookie my $auth = HTTP::Request->new(POST => "http://wiki.ffii.fr/spip_cookie.php3"); $auth->content_type('application/x-www-form-urlencoded'); $auth->content("session_login_hidden=$user&session_password=$passwd&essai_login=oui&url=/spikini/$title"); my $res_auth = $ua->request($auth); unless ($res_auth->is_success or $res_auth->is_redirect) { die "Wrong user login/password !".$res_auth->message."!.\n"; } # First request to display form in order to fetch $previous parameter. my $url = "http://wiki.ffii.fr/spikini/$title:edit"; my $req = HTTP::Request->new(POST => $url); $req->content_type('application/x-www-form-urlencoded'); my $res_first = $ua->request($req); unless ($res_first->is_success or $res_first->is_redirect) { die "Error !".$res_first->message."! code=!".$res_first->code."!\n"; } (my $previous) = $res_first->content =~ /name="previous" value="(\d*)"/o; # Second request to insert the new page $req->content("body=$body&submit=Sauver&previous=$previous"); my $res = $ua->request($req); unless ($res->is_success or $res->is_redirect) { die "Error !".$res->message."! code=!".$res->code."!\n"; } print "OK page $title inserted.\n";