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

repository

http://github.com/punytan/AnyEvent-Twitter-Chirp

ChirpUserStreams?

http://d.hatena.ne.jp/sugyan/20100423/1271981903 これを簡単に使えるようにしたモジュールです

使い方

イベントごとに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 にあります。

http://github.com/punytan/AnyEvent-Twitter-Chirp/blob/master/eg/sample.pl

このモジュールの今後

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