1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#!/usr/bin/perl
use strict;
use Net::Presque;
use AnyEvent::Twitter::Stream;
my $done = AE::cv;
my($user, $password, $method, %args) = @ARGV;
my $presque = Net::Presque->new(api_base_url => 'http://localhost:5000');
my $streamer = AnyEvent::Twitter::Stream->new(
username => $user,
password => $password,
method => $method || "sample",
%args,
on_tweet => sub {
my $tweet = shift;
$presque->create_job(queue_name => 'twitter_stream', user => $tweet->{user}{screen_name}, text => $tweet->{text});
},
on_error => sub {
my $error = shift;
warn "ERROR: $error";
$done->send;
},
on_eof => sub {
$done->send;
},
);
# uncomment to test undef $streamer
# my $t = AE::timer 1, 0, sub { undef $streamer };
$done->recv;
|