git.annexia.org
/
xavierbot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Initial version.
[xavierbot.git]
/
xavierbot.pl
diff --git
a/xavierbot.pl
b/xavierbot.pl
index
ce997a0
..
f79310d
100755
(executable)
--- a/
xavierbot.pl
+++ b/
xavierbot.pl
@@
-1,4
+1,8
@@
#!/usr/bin/perl -wT
#!/usr/bin/perl -wT
+# xavierbot : an OCaml interpreter IRC bot.
+# By Richard W.M. Jones <rich@annexia.org>.
+# This code is in the Public Domain.
+# $Id: xavierbot.pl,v 1.3 2007/06/28 19:47:26 rjones Exp $
use strict;
use strict;
@@
-9,6
+13,7
@@
use POE qw(Component::IRC);
my $nick = "xavierbot";
my $ircname = "Xavierbot"; # Printable name.
my $nick = "xavierbot";
my $ircname = "Xavierbot"; # Printable name.
+#my $server = "chat.freenode.net";
my $server = "devserv.devel.redhat.com";
my $port = 6667;
my $server = "devserv.devel.redhat.com";
my $port = 6667;
@@
-31,19
+36,28
@@
POE::Session->create (
heap => { irc => $irc },
);
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;
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 => { });
my ($kernel, $heap) = @_[KERNEL,HEAP];
my $irc_session = $heap->{irc}->session_id ();
$kernel->post ($irc_session => register => "all");
$kernel->post ($irc_session => connect => { });
+
undef;
}
undef;
}
-sub irc_001 {
+sub irc_001
+{
my ($kernel, $sender) = @_[KERNEL,SENDER];
my $poco_object = $sender->get_heap ();
my ($kernel, $sender) = @_[KERNEL,SENDER];
my $poco_object = $sender->get_heap ();
@@
-53,7
+67,8
@@
sub irc_001 {
undef;
}
undef;
}
-sub irc_public {
+sub irc_public
+{
my ($kernel, $sender, $who, $where, $what) =
@_[KERNEL,SENDER,ARG0,ARG1,ARG2];
my $nick = (split /!/, $who)[0];
my ($kernel, $sender, $who, $where, $what) =
@_[KERNEL,SENDER,ARG0,ARG1,ARG2];
my $nick = (split /!/, $who)[0];
@@
-67,7
+82,8
@@
sub irc_public {
undef;
}
undef;
}
-sub _default {
+sub _default
+{
my ($event, $args) = @_[ARG0 .. $#_];
my @output = ("$event: ");
my ($event, $args) = @_[ARG0 .. $#_];
my @output = ("$event: ");
@@
-81,3
+97,13
@@
sub _default {
print STDOUT join " ", @output, "\n";
return 0;
}
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";
+}