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');