1use strict; 2use Irssi 20021028; 3use vars qw($VERSION %IRSSI); 4 5# Usage: 6# To add the host by a kick, for example, use: 7# /format kick {channick $0} {chanhost $host{$0}} was kicked from {channel $1} by {nick $2} {reason $3} 8# 9# Result: 10# 19:23:42 -!- Nick [user@leet.hostname.org] was kicked from #channel by MyNick [leet reason] 11 12 13 14$VERSION = "0.2"; 15%IRSSI = ( 16 authors => "Michiel v Vaardegem", 17 contact => "michielv\@zeelandnet.nl", 18 name => "showhost", 19 description => "show host kicks", 20 license => "GPL", 21 changed => "Mon Dec 8 19:23:51 CET 2003" 22); 23 24my $lasthost; 25 26sub setlast 27{ 28 my ($server, $channelname, $nickname) = @_; 29 my @channels; 30 $lasthost = {}; 31 if (defined($channelname)) 32 { 33 $channels[0] = $server->channel_find($channelname); 34 if (!defined($channels[0])) 35 { 36 return; 37 } 38 } 39 else 40 { 41 @channels = $server->channels(); 42 } 43 44 foreach my $channel (@channels) 45 { 46 my $nick = $channel->nick_find($nickname); 47 if (defined($nick)) 48 { 49 $lasthost->{$channel->{'name'}} = $nick->{host}; 50 } 51 } 52} 53 54sub expando_mode 55{ 56 my ($server,$item,$mode2) = @_; 57 if (!defined($item) || $item->{'type'} ne 'CHANNEL' ) 58 { 59 return ''; 60 } 61 return $lasthost->{$item->{'name'}}; 62} 63 64 65Irssi::signal_add_first('message kick', sub {setlast($_[0],$_[1],$_[2]); }); 66 67Irssi::expando_create('host', sub {expando_mode($_[0],$_[1],0)},{ 'message part' => 'None'}); 68 69