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