1# /FIND - display people who are in more than one channel with you 2# (it's ugly code) 3 4use strict; 5use Irssi; 6 7use vars qw($VERSION %IRSSI); 8$VERSION = "0.2"; 9%IRSSI = ( 10 authors => "Erkki Sepp�l�", 11 contact => "flux\@inside.org", 12 name => "Find", 13 description => "Finds a nick by real name, if he's on a channel with you.", 14 license => "Public Domain", 15 url => "http://xulfad.inside.org/~flux/software/irssi/", 16 changed => "Mon Mar 4 23:25:18 EET 2002" 17); 18 19 20sub cmd_find { 21 my ($findName, $server, $channel) = @_; 22 23 if ($findName eq "") { 24 Irssi::print("usage: /find erkki"); 25 return 1; 26 } 27 28 my %channicks, $channel; 29 my %found; 30 31 foreach $channel (Irssi::active_server()->channels()) { 32 foreach my $nick ($channel->nicks()) { 33 $found{$nick->{nick}} = 1 if $nick->{realname} =~ /$findName/i; 34 } 35 } 36 37 if (keys %found) { 38 Irssi::print($findName . " could be found with these nicks: " . join(", ", keys %found)); 39 } else { 40 Irssi::print("Sorry, " . $findName . " could not be found."); 41 } 42 return 1; 43} 44 45Irssi::command_bind('find', 'cmd_find'); 46