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 )