use Irssi; use Irssi::Irc; use Irssi qw(command_bind active_server); # use strict; use vars qw($VERSION %IRSSI); $VERSION = "0.1.5"; %IRSSI = ( authors=> 'David "xdroop" Mackintosh', contact=> 'dave@xdroop.com', name=> 'Simple CTCP Handler', description=> 'Simple handler for arbitrary CTCP queries', license=> 'Dont Worry, Be Happy -- Now Go Away', url=> 'http://wiki.xdroop.com/', ); Irssi::print("Loading CTCP handler"); Irssi::command_bind('sctcph','set_ctcp_handler'); Irssi::signal_add('ctcp msg','handle_ctcp'); $CTCP{"ZEEKYBOOGYDOOG"}="You fucker, do you have any idea how long it took me to get irssi to tell you this?"; sub set_ctcp_handler { my $line = shift; my $signal; if (!$line) { foreach $signal (keys(%CTCP)) { Irssi::print("$signal -> $CTCP{$signal}"); } return 0; } ($signal,@array)=split(/ /,$line); $line=~s/^$signal //; $CTCP{$signal}=$line; Irssi::print("Adding reply for $signal"); return 0; } sub handle_ctcp { my ($infos,$signal,$nick,$host,$target)=@_; if ($CTCP{$signal}) { Irssi::print("Responding to $signal"); active_server->ctcp_send_reply("NOTICE $nick :\001$signal $CTCP{$signal}\001"); } return 0; }