html/colorswap.pl


   1 # Swap between green and white format for public messages. I think this
   2 # helps readability. Assumes you haven't changed message formats.
   3 # for irssi 0.7.98 by Timo Sirainen
   4 
   5 use Irssi;
   6 use strict;
   7 use vars qw($VERSION %IRSSI); 
   8 $VERSION = "0.1";
   9 %IRSSI = (
  10     authors	=> "Timo \'cras\' Sirainen",
  11     contact	=> "tss\@iki.fi",
  12     name	=> "colorswap",
  13     description	=> "Swap between green and white format for public messages. I think this helps readability. Assumes you haven't changed message formats.",
  14     license	=> "Public Domain",
  15     url		=> "http://irssi.org/",
  16     changed	=> "2002-03-04T22:47+0100"
  17 );
  18 
  19 my %setnext = {};
  20 
  21 sub change_formats {
  22 	my $target = lc shift;
  23 
  24 	if ($setnext{$target}) {
  25 		Irssi::command('^format own_msg {ownmsgnick %G$2 {ownnick %G$0}}%g$1');
  26 		Irssi::command('^format pubmsg {pubmsgnick %g$2 {pubnick %g$0}}%g$1');
  27 	} else {
  28 		Irssi::command('^format -reset own_msg');
  29 		Irssi::command('^format -reset pubmsg');
  30 	}
  31 	$setnext{$target} = !$setnext{$target};
  32 }
  33 
  34 sub sig_public {
  35 	my ($server, $msg, $nick, $address, $target) = @_;
  36 
  37 	change_formats($server->{tag}."/".$target);
  38 }
  39 
  40 sub sig_own_public {
  41 	my ($server, $msg, $target) = @_;
  42 
  43 	change_formats($server->{tag}."/".$target);
  44 }
  45 
  46 Irssi::signal_add('message public', 'sig_public');
  47 Irssi::signal_add('message own_public', 'sig_own_public');