Utilisateur:KelBot/kbwrite

Un article de Wikipédia, l'encyclopédie libre.

#!/usr/bin/perl
 
use KelBot;
use strict;
use Getopt::Long;
 
my $pw;
 
my $page;
my $content;
my $summary;
my $mode="erase";
 
GetOptions('content=s' => \$content, 'page=s' => \$page, 'summary=s' => \$summary, 'mode=s' => \$mode);
 
if (!$content) {
    print "usage: ./kbwrite --content=your_content --page=your_page --summary=your_summary --mode=[slice|insert|erase]\n";
    exit
};
 
if ($page) {
    kbwrite($page, $content, $summary, $mode);
} else {
    unless ($page) {
        while ($page = <STDIN>) {
            $page =~ s/\n//;
            kbwrite($page, $content, $summary, $mode);
        }
    }
}
 
sub kbwrite {
    my $page = shift;
    my $content = shift;
    my $summary = shift;
    my $mode = shift;
 
    return unless ($page);
 
    unless ($pw) {
        $pw = KelBot->new('kbwrite');
        $pw->login();
    }
 
    $page = `php -q ./urlencode.php "$page"`;
 
    if ($mode eq "slice") {
        $content = $content."\n".$pw->get_text($page);
    }
    elsif ($mode eq "insert") {
        $content = $pw->get_text($page)."\n".$content;
    }
 
    $pw->edit($page, $content, $summary); 
}