AnyEvent::Twitter::Chirp を書いた

ChirpUserStreamsを簡単に使えるようにしてみました

INSTALLATION

% git clone git://github.com/punytan/AnyEvent-Twitter-Chirp.git
% cd AnyEvent-Twitter-Chirp/
% perl Makefile.PL
% make
% make test
% sudo make install
ChirpUserStreamsって何?という方はこちらを

Twitterの新しいStreaming API「ChirpUserStreams」がすごすぎる件 - すぎゃーんメモ
これを簡単に使えるようにしたモジュールです

ドキュメント

% perldoc AnyEvent::Twitter::Chirp

使い方

イベントごとにcoderefを登録していく感じ。

#!/usr/bin/perl

use strict;
use warnings;
use utf8;
use Encode;
use Data::Dumper;

use AnyEvent;
use AnyEvent::Twitter::Chirp;

my $user = '';
my $password = '';


my $cv = AE::cv;

my $chirp = AnyEvent::Twitter::Chirp->new(
    username => $user,
    password => $password,
    on_tweet => sub {
        my $tweet = shift;
        print encode_utf8($tweet->{text} . "\n");
    },
    on_friends => sub {
        my @friends = @_;
        print 'friends: ', join(',', @friends), "\n";
    },
    on_follow => sub {
        my $follow = shift;
        print Dumper ['follow', $follow];
    },
    on_retweet => sub {
        my $retweet = shift;
        print Dumper ['retweet', $retweet];
    },
    on_favorite => sub {
        my $favorite = shift;
        print Dumper ['fav', $favorite];
    },
    on_unfavorite => sub {
        my $unfavorite = shift;
        print Dumper ['unfav', $unfavorite];
    },
    on_delete => sub {
        my $delete = shift;
        print Dumper ['delete', $delete];
    },
    on_unknown => sub {
        my $unknown = shift;
        print Dumper ['on_unknonw', $unknown];
    },
#    timeout => 45,
);

$cv->recv;

__END__

ファイルは eg/sample.pl にあります。
AnyEvent-Twitter-Chirp/sample.pl at master · punytan/AnyEvent-Twitter-Chirp · GitHub

このモジュールの今後

miyagawaさんが AE::Twitter::Stream のほうに user stream を追加される予定らしいです。
それまで待てない!という早漏な方向けです。CPANには登録せず、githubどまりにしたいと思います。