Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use strict;
- use AnyEvent::Twitter::Stream;
- use Continuity;
- use Encode;
- use utf8;
- my $user = 'username';
- my $password = 'password';
- my $done = AnyEvent->condvar;
- my @tweets;
- my $streamer = AnyEvent::Twitter::Stream->new(
- username => $user,
- password => $password,
- method => 'filter',
- track => 'http',
- on_tweet => sub {
- my $tweet = shift;
- if( $tweet->{text} =~ /[あ-んア-ン]/ ) {
- shift @tweets if( $#tweets > 20 );
- push( @tweets, encode( 'utf8', "$tweet->{user}{screen_name}: $tweet->{text}\n" ) );
- }
- },
- on_error => sub {
- my $error = shift;
- warn "ERROR: $error";
- $done->send;
- },
- on_eof => sub {
- $done->send;
- },
- );
- my $server = Continuity->new(
- port => 16001,
- path_session => 1,
- cookie_session => 'sid',
- staticp => sub { $_[0]->url =~ m/\.(jpg|jpeg|gif|png|css|ico|js|html)$/ },
- );
- $server->loop;
- $done->recv;
- sub main {
- my ($req) = @_;
- my $path = $req->request->url->path;
- print STDERR "Path: '$path'\n";
- pushstream($req) if $path =~ /pushstream/;
- }
- sub pushstream {
- my ($req) = @_;
- while (1) {
- my $log = join "<br />", @tweets;
- $req->print($log);
- $req->next;
- }
- }
- __END__
Add Comment
Please, Sign In to add comment