html/quitrand.pl
1 # If quit message isn't given, quit with a random message
2 # read from ~/.irssi/irssi.quit
3
4 use Irssi;
5 use Irssi::Irc;
6 use strict;
7 use vars qw($VERSION %IRSSI);
8
9 $VERSION = "1.00";
10 %IRSSI = (
11 authors => 'Fernando J. Pereda',
12 contact => 'ferdy@ferdyx.org',
13 name => 'quitrand',
14 description => 'Random quit messages - based on quitmsg (Timo Sirainen)',
15 license => 'GPLv2',
16 );
17
18 my $quitfile = glob "~/.irssi/irssi.quit";
19
20 sub cmd_quit {
21 my ($data, $server, $channel) = @_;
22
23 open(f,$quitfile);
24 my @contenido = <f>;
25 close(f);
26
27 my $numlines = 0;
28
29 foreach my $nada (@contenido) {
30 $numlines++;
31 }
32
33 my $line = int(rand($numlines))+1;
34
35 my $quitmsg = "[IRSSI] ".$contenido[$line];
36
37 chop($quitmsg);
38
39 print($quitmsg);
40
41 foreach my $sv (Irssi::servers()) {
42 foreach my $item ($sv->channels()) {
43 $item->command("PART ".$item->{name}." $quitmsg");
44 }
45 }
46
47 foreach my $svr (Irssi::servers()) {
48 $svr->command("DISCONNECT ".$svr->{tag}." $quitmsg");
49 }
50 }
51
52 Irssi::command_bind('quit', 'cmd_quit');