Advertisement
robn

eliza

Aug 5th, 2012
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 0.85 KB | None | 0 0
  1. #!/usr/bin/env perl
  2.  
  3. use 5.016;
  4. use warnings;
  5. use strict;
  6.  
  7. use AnyEvent;
  8. use AnyEvent::IRC::Client;
  9. use Chatbot::Eliza;
  10.  
  11. my $HOST = "localhost";
  12. my $PORT = 6667;
  13. my $NICK = "Jameson";
  14. my $CHANNEL = "#test";
  15.  
  16. my $eliza = Chatbot::Eliza->new;
  17.  
  18. my $c = AnyEvent->condvar;
  19.  
  20. my $timer;
  21. my $con = new AnyEvent::IRC::Client;
  22.  
  23. $con->reg_cb(
  24.     registered => sub {
  25.         $con->send_srv(JOIN => $CHANNEL);
  26.     },
  27.     disconnect => sub {
  28.         $c->broadcast;
  29.     },
  30.     publicmsg => sub {
  31.         my $ircmsg = pop @_;
  32.         my ($channel, $text) = @{$ircmsg->{params}};
  33.         my ($in) = $text =~ m/^$NICK\b.?\s+(.*)/i;
  34.         if ($in) {
  35.             my $out = $eliza->transform($in);
  36.             my (undef, $who) = $con->split_nick_mode($ircmsg->{prefix});
  37.             $con->send_srv(PRIVMSG => $CHANNEL, "$who: $out");
  38.         }
  39.     },
  40. );
  41.  
  42. $con->connect ($HOST, $PORT, { nick => $NICK });
  43. $c->wait;
  44. $con->disconnect;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement