Utilisateur:KelBot/kbsed
<syntaxhighlight lang="perl">
- !/usr/bin/perl
use KelBot; use strict; use Getopt::Long;
my $pw;
my $page; my @find; my $replacement; my $summary;
GetOptions('find=s' => \@find, 'page=s' => \$page, 'replacement=s' => \$replacement, 'summary=s'=> \$summary );
if (!scalar(@find) || !defined($replacement) || !defined($summary) ) {
print "usage: ./kbsed.pl --page=page --find=your_regexp --replacement=replacement --summary=your_summary\n"; exit
};
if ($page) {
kbsed($page);
} else {
unless ($page) {
while ($page = <STDIN>) { $page =~ s/\n//; kbsed($page); }
}
}
sub kbsed {
my $page = shift;
return unless ($page);
unless ($pw) {
$pw = KelBot->new('kbsed'); $pw->login();
}
$page = `php -q ./urlencode.php "$page"`;
my $content = $pw->get_text($page)."\n"; my $old_content = $content;
foreach my $f (@find) {
$content =~ s/$f/$1$replacement$3/g;
}
unless ($content eq $old_content) {
$pw->edit($page, $content, $summary);
}
}