diff options
Diffstat (limited to 'scripts/examples/redirect.pl')
-rw-r--r-- | scripts/examples/redirect.pl | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/scripts/examples/redirect.pl b/scripts/examples/redirect.pl new file mode 100644 index 00000000..6a7e94cc --- /dev/null +++ b/scripts/examples/redirect.pl @@ -0,0 +1,40 @@ +# Example how to do redirections, we'll grab the output of /WHOIS: + +# /RN - display real name of nick + +use Irssi; +use Irssi::Irc; +use strict; +use vars qw($VERSION %IRSSI); + +$VERSION = "1.00"; +%IRSSI = ( + authors => 'Timo Sirainen', + name => 'redirect', + description => 'Redirection example', + license => 'Public Domain' +); + +sub cmd_realname { + my ($data, $server, $channel) = @_; + + # ignore all whois replies except "No such nick" or the + # first line of the WHOIS reply + $server->redirect_event('whois', 1, $data, -1, '', { + 'event 402' => 'event 402', + 'event 401' => 'event 401', + 'event 311' => 'redir whois', + '' => 'event empty' }); + + $server->send_raw("WHOIS :$data"); +} + +sub event_rn_whois { + my ($num, $nick, $user, $host, $empty, $realname) = split(/ +/, $_[1], 6); + $realname =~ s/^://; + + Irssi::print("%_$nick%_ is $realname"); +} + +Irssi::command_bind('rn', 'cmd_realname'); +Irssi::signal_add('redir whois', 'event_rn_whois'); |