File: redirect.pl

package info (click to toggle)
irssi 0.8.15-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 7,852 kB
  • ctags: 5,831
  • sloc: ansic: 52,878; sh: 10,180; perl: 2,572; makefile: 1,003
file content (40 lines) | stat: -rw-r--r-- 982 bytes parent folder | download | duplicates (21)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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');