use strict; use Irssi; use vars qw($VERSION %IRSSI); $VERSION = "1.0"; %IRSSI = ( authors => 'Jilles Tjoelker', contact => 'jilles@stack.nl', name => 'etrace', description => 'Reformats ratbox/charybdis ETRACE/MASKTRACE/CHANTRACE', license => 'BSD (revised)' ); Irssi::signal_add('event 709', 'rpl_etrace'); sub rpl_etrace { my ($server, $data) = @_; $data =~ s/[^ ]* //; # remove our nick $data =~ /([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) :(.*)/; my ($oper, $class, $nick, $user, $host, $ip, $gecos) = ($1, $2, $3, $4, $5, $6, $7); $server->printformat('', MSGLEVEL_CLIENTCRAP, 'etrace', $oper, $class, $nick, $user.'@'.$host, $ip, $gecos); Irssi::signal_stop(); } Irssi::signal_add('event 708', 'rpl_etracefull'); sub rpl_etracefull { my ($server, $data) = @_; $data =~ s/[^ ]* //; # remove our nick $data =~ /([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) :(.*)/; my ($oper, $class, $nick, $user, $host, $ip, $user1, $user2, $gecos) = ($1, $2, $3, $4, $5, $6, $7, $8, $9); $server->printformat('', MSGLEVEL_CLIENTCRAP, 'etracefull', $oper, $class, $nick, $user.'@'.$host, $ip, $user1, $user2, $gecos); Irssi::signal_stop(); } Irssi::theme_register ( [ 'etrace', '$0 $1 {nick $2} {nickhost $3} ($4) {comment $5}', 'etracefull', '$0 $1 {nick $2} {nickhost $3} ($4) ($5 $6) {comment $7}', ] );