Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
68 lines (51 sloc) 1.43 KB
use Irssi;
use Irssi::UI;
use Irssi::TextUI;
use vars qw($VERSION %IRSSI);
$VERSION = '0.1';
%IRSSI = (
author => 'meh',
contact => 'meh@schizofreni.co',
name => 'Query connection notification',
description => 'Notify in the query window when the nick connects',
license => 'WTFPL',
);
Irssi::theme_register([
'connect', '{channick_hilight $0} {chanhost_hilight $1} has connected'
]);
my %quit;
Irssi::signal_add 'message join' => sub {
my ($server, $channel, $nick, $address) = @_;
if ($quit{"$server->{tag}:$nick"}) {
delete $quit{"$server->{tag}:$nick"};
foreach $query (Irssi::queries()) {
if ($query->{server_tag} eq $server->{tag} && $query->{name} eq $nick) {
$query->printformat(MSGLEVEL_JOINS, 'connect', $nick, $address);
break;
}
}
}
};
Irssi::signal_add 'message quit' => sub {
my ($server, $nick, $address, $reason) = @_;
$quit{"$server->{tag}:$nick"} = 1;
};
Irssi::signal_add 'query created' => sub {
my ($query, $automatic) = @_;
foreach $channel ($query->{server}->channels) {
foreach $nick ($channel->nicks) {
if ($nick eq $query->{name}) {
return;
}
}
}
$quit{"$query->{server}->{tag}:$query->{name}"} = 1;
};
Irssi::signal_add 'query destroyed' => sub {
my ($query) = @_;
delete $quit{"$query->{server}->{tag}:$query->{name}"};
};
Irssi::signal_add 'message private' => sub {
my ($server, $msg, $nick, $address) = @_;
delete $quit{"$server->{tag}:$nick"};
};