diff options
Diffstat (limited to 'scripts/highlite.pl')
| -rw-r--r-- | scripts/highlite.pl | 113 | 
1 files changed, 113 insertions, 0 deletions
| diff --git a/scripts/highlite.pl b/scripts/highlite.pl new file mode 100644 index 0000000..515d0dd --- /dev/null +++ b/scripts/highlite.pl @@ -0,0 +1,113 @@ +use strict; +use Irssi; +use Irssi::Irc; + +use vars qw($VERSION %IRSSI); + +$VERSION = "1.0"; +%IRSSI = ( +	"authors"       => "Mantis", +	"contact"       => "mantis\@inta-link.com", +	"name"          => "highlite", +	"description"   => "shows events happening in all channels you are in that may concern you", +	"url"           => "http://www.inta-link.com/", +	"license"       => "GNU GPL v2", +	"changed"       => "2003-01-03" +); + +sub msg_join +{ +  my ($server, $channame, $nick, $host) = @_; +  $channame =~ s/^://; + +  my $windowname = Irssi::window_find_name('highlite'); +  $windowname->print("%B%0JOIN : " . $nick . " : " . $channame . " : " . $host, MSGLEVEL_CLIENTCRAP) if ($windowname); +} + +sub msg_part +{ +  my ($server, $channame, $nick, $host) = @_; +  $channame =~ s/^://; + +  my $windowname = Irssi::window_find_name('highlite'); +  $windowname->print("%b%0PART : " . $nick . " : " . $channame . " : " . $host, MSGLEVEL_CLIENTCRAP) if ($windowname); +} + +sub msg_quit +{ +  my ($server, $nick, $host, $quitmsg) = @_; + +  if (substr($quitmsg, 0, 14) eq "Read error to ") +  { +    $quitmsg = "[ General Read Error ]"; +  } +  if (substr($quitmsg, 0, 17) eq "Ping timeout for ") +  { +    $quitmsg = "[ General Ping Timeout Error ]"; +  } + +  my $windowname = Irssi::window_find_name('highlite'); +  $windowname->print("%R%0QUIT : " . $nick . " : " . $host . " : " . $quitmsg, MSGLEVEL_CLIENTCRAP) if ($windowname); + +  $quitmsg = ""; +} + +sub msg_topic +{ +  my ($server, $channame, $topicmsg, $nick, $host) = @_; +  $channame =~ s/^://; + +  my $windowname = Irssi::window_find_name('highlite'); +  $windowname->print("%G%0TOPIC : " . $nick . " : " . $channame . " : " . $topicmsg, MSGLEVEL_CLIENTCRAP) if ($windowname); +} + +sub msg_nick +{ +  my ($server, $nick, $old_nick, $host) = @_; + +  my $windowname = Irssi::window_find_name('highlite'); +  $windowname->print("%m%0NICK : " . $old_nick . " : " . $nick . " : " . $host, MSGLEVEL_CLIENTCRAP) if ($windowname); +} + +sub msg_kick +{ +  my ($server, $channame, $kicked, $nick, $host, $reason) = @_; +  $channame =~ s/^://; + +  my $windowname = Irssi::window_find_name('highlite'); +  $windowname->print("%Y%0KICK : " . $kicked . " : " . $channame . " : " . $nick . " : " . $reason, MSGLEVEL_CLIENTCRAP) if ($windowname); +} + +sub sig_printtext { +  my ($dest, $text, $stripped) = @_; + +  if (($dest->{level} & (MSGLEVEL_HILIGHT|MSGLEVEL_MSGS)) && ($dest->{level} & MSGLEVEL_NOHILIGHT) == 0) +  { +    if ($dest->{level} & MSGLEVEL_PUBLIC) +    { +      my $windowname = Irssi::window_find_name('highlite'); + +      $windowname->print("%W%0HIGHLITE : " . $dest->{target} . " : " . $text, MSGLEVEL_CLIENTCRAP) if ($windowname); +    } +  } +} + +my $windowname = Irssi::window_find_name('highlite'); +if (!$windowname) +{ +  Irssi::command("window new hidden"); +  Irssi::command("window name highlite"); +} + +Irssi::signal_add( +{ +  'message join' => \&msg_join, +  'message part' => \&msg_part, +  'message quit' => \&msg_quit, +  'message topic' => \&msg_topic, +  'print text', 'sig_printtext', +  'message nick' => \&msg_nick, +  'message kick' => \&msg_kick +} +); + | 
