X-Git-Url: http://git.annexia.org/?p=xavierbot.git;a=blobdiff_plain;f=xavierbot.pl;h=f79310d9e551377687d9279a6482ecd72b4ddf5e;hp=6b058e00d45bb38ab7841b3d6bc9930b6c8dc285;hb=d165f93ed79c62a1fa76f391d87ffc4d215b9efe;hpb=317ecc32edbd2757c6d9bf0311bd1391ec44cfc8 diff --git a/xavierbot.pl b/xavierbot.pl index 6b058e0..f79310d 100755 --- a/xavierbot.pl +++ b/xavierbot.pl @@ -2,7 +2,7 @@ # xavierbot : an OCaml interpreter IRC bot. # By Richard W.M. Jones . # This code is in the Public Domain. -# $Id: xavierbot.pl,v 1.2 2007/06/28 16:22:33 rjones Exp $ +# $Id: xavierbot.pl,v 1.3 2007/06/28 19:47:26 rjones Exp $ use strict; @@ -13,6 +13,7 @@ use POE qw(Component::IRC); my $nick = "xavierbot"; my $ircname = "Xavierbot"; # Printable name. +#my $server = "chat.freenode.net"; my $server = "devserv.devel.redhat.com"; my $port = 6667; @@ -35,19 +36,28 @@ POE::Session->create ( heap => { irc => $irc }, ); -$poe_kernel->run (); +POE::Wheel::Run->new ( + Program => [ "/usr/local/sbin/ocamlbotwrapper" ], + StdoutEvent => 'stdout_event', + StderrEvent => 'stdout_event', +); + +POE::Kernel->run (); exit 0; -sub _start { +sub _start +{ my ($kernel, $heap) = @_[KERNEL,HEAP]; my $irc_session = $heap->{irc}->session_id (); $kernel->post ($irc_session => register => "all"); $kernel->post ($irc_session => connect => { }); + undef; } -sub irc_001 { +sub irc_001 +{ my ($kernel, $sender) = @_[KERNEL,SENDER]; my $poco_object = $sender->get_heap (); @@ -57,7 +67,8 @@ sub irc_001 { undef; } -sub irc_public { +sub irc_public +{ my ($kernel, $sender, $who, $where, $what) = @_[KERNEL,SENDER,ARG0,ARG1,ARG2]; my $nick = (split /!/, $who)[0]; @@ -71,7 +82,8 @@ sub irc_public { undef; } -sub _default { +sub _default +{ my ($event, $args) = @_[ARG0 .. $#_]; my @output = ("$event: "); @@ -85,3 +97,13 @@ sub _default { print STDOUT join " ", @output, "\n"; return 0; } + +#---------------------------------------------------------------------- + +# Start the bot. + +sub stdout_event +{ + my ($heap, $input, $wheel_id) = @_[HEAP,ARG0,ARG1]; + print "Child said: $input\n"; +}