AnyEvent-Twitter-Stream
    
    
  
  
  
view release on metacpan or search on metacpan
MANIFEST
META.json
META.yml
README
cpanfile
dist.ini
eg/track.pl
lib/AnyEvent/Twitter/Stream.pm
t/00_compile.t
t/author-pod-syntax.t
t/streaming.t
t/timeout.t
xt/perlcritic.t
xt/pod.t
xt/podspell.t
xt/synopsis.t
{
   "abstract" : "Receive Twitter streaming API in an event loop",
   "author" : [
      "Tatsuhiko Miyagawa <miyagawa@bulknews.net>"
   ],
   "dynamic_config" : 0,
   "generated_by" : "Dist::Milla version v1.0.16, Dist::Zilla version 6.006, CPAN::Meta::Converter version 2.150005",
   "license" : [
      "perl_5"
   ],
   "meta-spec" : {
      "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
---
abstract: 'Receive Twitter streaming API in an event loop'
author:
  - 'Tatsuhiko Miyagawa <miyagawa@bulknews.net>'
build_requires:
  Test::More: '0'
  Test::Requires: '0'
  Test::TCP: '0'
configure_requires:
  Module::Build::Tiny: '0.034'
dynamic_config: 0
generated_by: 'Dist::Milla version v1.0.16, Dist::Zilla version 6.006, CPAN::Meta::Converter version 2.150005'
NAME
    AnyEvent::Twitter::Stream - Receive Twitter streaming API in an event
    loop
SYNOPSIS
      use AnyEvent::Twitter::Stream;
      
      my $done = AE::cv;
    
      # receive updates from @following_ids
      my $listener = AnyEvent::Twitter::Stream->new(
          method          => "filter",
          track           => "...",
          on_tweet        => sub { ... },
      );
      
      $done->recv;
DESCRIPTION
    AnyEvent::Twitter::Stream is an AnyEvent user to receive Twitter
    streaming API, available at http://dev.twitter.com/pages/streaming_api
    and http://dev.twitter.com/pages/user_streams.
    See "track.pl" in eg for more client code example.
METHODS
 my $streamer = AnyEvent::Twitter::Stream->new(%args);
    username password
lib/AnyEvent/Twitter/Stream.pm view on Meta::CPAN
=encoding utf-8
=for stopwords
API AnyEvent
=for test_synopsis
my($user, $password, @following_ids, $consumer_key, $consumer_secret, $token, $token_secret);
=head1 NAME
AnyEvent::Twitter::Stream - Receive Twitter streaming API in an event loop
=head1 SYNOPSIS
  use AnyEvent::Twitter::Stream;
  
  my $done = AE::cv;
  # receive updates from @following_ids
  my $listener = AnyEvent::Twitter::Stream->new(
      username => $user,
lib/AnyEvent/Twitter/Stream.pm view on Meta::CPAN
      token_secret    => $token_secret,
      method          => "filter",
      track           => "...",
      on_tweet        => sub { ... },
  );
  
  $done->recv;
=head1 DESCRIPTION
AnyEvent::Twitter::Stream is an AnyEvent user to receive Twitter streaming
API, available at L<http://dev.twitter.com/pages/streaming_api> and
L<http://dev.twitter.com/pages/user_streams>.
See L<eg/track.pl> for more client code example.
=head1 METHODS
=head2 my $streamer = AnyEvent::Twitter::Stream->new(%args);
=over 4
t/streaming.t view on Meta::CPAN
                    is $event, 0, 'got no event';
                    is($received, $count_max + 1, "received");
                }
                is $destroyed, 1, 'destroyed';
            }
        },
        server => sub {
            my $port = shift;
            run_streaming_server($port, $enable_chunked);
        },
    );
}
done_testing();
sub run_streaming_server {
    my ($port, $enable_chunked) = @_;
    my $streaming = sub {
        my $env = shift;
        my $req = Plack::Request->new($env);
        return sub {
            my $respond = shift;
            my $writer = $respond->([200, [
                'Content-Type' => 'application/json',
                'Server' => 'Jetty(6.1.17)',
            ]]);
t/streaming.t view on Meta::CPAN
    };
    my $app = builder {
        enable 'Auth::Basic', realm => 'Firehose', authenticator => sub {
            my ($user, $pass) = @_;
            return $user eq 'test' && $pass eq 's3cr3t';
        };
        enable 'Chunked' if $enable_chunked;
        mount '/1.1/statuses/' => $streaming;
        mount '/'              => $user_stream;
    };
    my $server = Plack::Handler::Twiggy->new(
        host => '127.0.0.1',
        port => $port,
    )->run($app);
}
t/timeout.t view on Meta::CPAN
                $done->recv;
            }
            is($destroyed, 1, "$w: destroyed");
            is($received, $pattern{$w}, "received");
        }
    },
    server => sub {
        my $port = shift;
        run_streaming_server($port);
    },
);
done_testing();
sub run_streaming_server {
    my $port = shift;
    my $streaming = sub {
        my $env = shift;
        my $req = Plack::Request->new($env);
        my $track = $req->param('track');
        my (undef, $wait_a, $wait_b, $wait_c) = split(/_/, $track);
        return sub {
            my $respond = shift;
            my $count = 0;
t/timeout.t view on Meta::CPAN
        };
    };
    my $app = builder {
        enable 'Auth::Basic', realm => 'Firehose', authenticator => sub {
            my ($user, $pass) = @_;
            return $user eq 'test' && $pass eq 's3cr3t';
        };
        mount '/1.1/' => $streaming;
    };
    my $server = Plack::Handler::Twiggy->new(
        host => '127.0.0.1',
        port => $port,
    )->run($app);
}
( run in 0.503 second using v1.01-cache-2.11-cpan-5dc5da66d9d )