added irssi script wrapping Butts.pm

This commit is contained in:
ben.herr 2008-11-03 01:39:38 +00:00
parent 9cdbc65a76
commit 5d97496a57
1 changed files with 51 additions and 0 deletions

51
irssibutt.pl Normal file
View File

@ -0,0 +1,51 @@
use strict;
use warnings;
use Irssi;
use Butts;
use vars qw($VERSION %IRSSI);
$VERSION = '1.0';
%IRSSI = (
authors => 'Benjamin Herr',
contact => 'ben@0x539.de',
name => 'irssibutt',
description => 'This script randomly repeats lines replacing ' .
'syllables with "butt".'
);
sub on_privmsg {
my ($server, $data, $nick, $address) = @_;
my ($target, $text) = split(/ :/, $data, 2);
return unless ($target =~ Irssi::settings_get_str("butt_target_pattern"));
return 0 unless (rand(50) < 1);
return 0 if ($text =~ /^!|^http:\/\/\S+$|butt|^\W+$/i);
my @words = split(/\s+/, $text);
my @replaced_words = Butts::buttify(@words);
my $replaced_text = join(" ", @replaced_words);
unless ($text eq $replaced_text) {
Irssi::timeout_add_once(rand(8000) + 1000,
sub { $server->command("msg $target " . $replaced_text); },
0);
}
}
sub on_kick {
my ($server, $channel, $nick, $kicker, $address, $reason) = @_;
return unless ($channel =~ Irssi::settings_get_str("butt_target_pattern"));
Irssi::timeout_add_once(rand(20000) + 10000,
sub { $server->command("join $channel"); }, 0);
}
Irssi::settings_add_str("irssibutt", "butt_target_pattern", "^#cobol\$");
Irssi::signal_add("event privmsg", \&on_privmsg);
Irssi::signal_add("message kick", \&on_kick);
return 1;