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