1# If quit message isn't given, quit with a random message
2# read from ~/.irssi/irssi.quit
3
4use Irssi;
5use Irssi::Irc;
6use strict;
7use vars qw($VERSION %IRSSI);
8
9$VERSION = "1.00";
10%IRSSI = (
11    authors     => 'Timo Sirainen',
12    name        => 'quitmsg',
13    description => 'Random quit messages',
14    license     => 'Public Domain',
15    changed	=> 'Sun Mar 10 23:18 EET 2002'
16);
17
18my $quitfile = glob "~/.irssi/irssi.quit";
19
20sub cmd_quit {
21	my ($data, $server, $channel) = @_;
22	return if ($data ne "");
23
24	open (f, "<", $quitfile) || return;
25	my $lines = 0; while(<f>) { $lines++; };
26
27	my $line = int(rand($lines))+1;
28
29	my $quitmsg;
30	seek(f, 0, 0); $. = 0;
31	while(<f>) {
32		next if ($. != $line);
33
34		chomp;
35		$quitmsg = $_;
36		last;
37	}
38	close(f);
39
40	foreach my $server (Irssi::servers) {
41		$server->command("/disconnect ".$server->{tag}." $quitmsg");
42	}
43}
44
45Irssi::command_bind('quit', 'cmd_quit');
46