/usr/share/irssi/scripts/autorejoin.pl is in irssi 0.8.15-5ubuntu3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 41 42 43 44 45 46 47 48 49 50 51 52 | # automatically rejoin to channel after kicked
# /SET autorejoin_channels #channel1 #channel2 ...
# NOTE: I personally don't like this feature, in most channels I'm in it
# will just result as ban. You've probably misunderstood the idea of /KICK
# if you kick/get kicked all the time "just for fun" ...
use Irssi;
use Irssi::Irc;
use strict;
use vars qw($VERSION %IRSSI);
$VERSION = "1.00";
%IRSSI = (
authors => 'Timo Sirainen',
name => 'autorejoin',
description => 'Automatically rejoin to channel after kicked',
license => 'Public Domain',
changed => 'Sun Mar 10 23:18 EET 2002'
);
sub channel_rejoin {
my ($server, $channel) = @_;
# check if channel has password
my $chanrec = $server->channel_find($channel);
my $password = $chanrec->{key} if ($chanrec);
# We have to use send_raw() because the channel record still
# exists and irssi won't even try to join to it with command()
$server->send_raw("JOIN $channel $password");
}
sub event_rejoin_kick {
my ($server, $data) = @_;
my ($channel, $nick) = split(/ +/, $data);
return if ($server->{nick} ne $nick);
# check if we want to autorejoin this channel
my @chans = split(/[ ,]+/, Irssi::settings_get_str('autorejoin_channels'));
foreach my $chan (@chans) {
if (lc($chan) eq lc($channel)) {
channel_rejoin($server, $channel);
last;
}
}
}
Irssi::settings_add_str('misc', 'autorejoin_channels', '');
Irssi::signal_add('event kick', 'event_rejoin_kick');
|