AnyEvent-IRC-Server
view release on metacpan or search on metacpan
examples/twitter.pl view on Meta::CPAN
use Encode;
use AE;
use AnyEvent::Twitter::Stream;
use AnyEvent::IRC::Server;
use Config::Pit;
use opts;
my $conf = pit_get('twitter.com', require => {
"username" => "your username on twitter",
"password" => "your password on twitter",
});
opts my $port => 'Int';
my $ircd = AnyEvent::IRC::Server->new(
port => $port,
servername => 'localhost'
);
$ircd->run();
my $streamer = AnyEvent::Twitter::Stream->new(
username => $conf->{username},
password => $conf->{password},
method => 'filter',
track => 'http',
on_tweet => sub {
my $tweet = shift;
$ircd->daemon_cmd_privmsg(
$tweet->{user}{screen_name} => '#twitter',
encode( 'utf-8', $tweet->{text} )
);
print $tweet->{text} . "\n";
},
t/01-simple.t view on Meta::CPAN
$cv_join->send();
},
);
$irc->connect(
'127.0.0.1',
$port,
{
nick => 'testbot',
user => 'testbot',
real => 'test bot',
password => 'kogaidan'
}
);
$cv->recv();
$cv_join->recv();
done_testing;
},
server => sub {
my $port = shift;
t/04-privmsg.t view on Meta::CPAN
}
},
);
$irc->connect(
'127.0.0.1',
$port,
{
nick => 'testbot',
user => 'testbot',
real => 'test bot',
password => 'kogaidan'
}
);
my $john = AnyEvent::IRC::Client->new();
$john->reg_cb(
registered => sub {
ok 1, 'registered';
my ($irc) = @_;
$irc->send_srv(JOIN => '#foo');
$cv_john->recv();
t/05-list.t view on Meta::CPAN
$cv->send();
},
);
$irc->connect(
'127.0.0.1',
$port,
{
nick => 'testbot',
user => 'testbot',
real => 'test bot',
password => 'kogaidan'
}
);
$cv->recv();
is_deeply [ sort @responses ],
[ 'testbot #bar 1 :fuga', 'testbot #baz 1 :', 'testbot #foo 1 :hoge' ], 'RPL_LIST';
( run in 0.506 second using v1.01-cache-2.11-cpan-49f99fa48dc )