Guest User

Untitled

a guest
Mar 13th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.27 KB | None | 0 0
  1. #!/usr/bin/perl
  2. use strict;
  3. use AnyEvent::Twitter::Stream;
  4. use Continuity;
  5. use Encode;
  6. use utf8;
  7.  
  8. my $user = 'username';
  9. my $password = 'password';
  10. my $done = AnyEvent->condvar;
  11.  
  12. my @tweets;
  13.  
  14. my $streamer = AnyEvent::Twitter::Stream->new(
  15. username => $user,
  16. password => $password,
  17. method => 'filter',
  18. track => 'http',
  19. on_tweet => sub {
  20. my $tweet = shift;
  21. if( $tweet->{text} =~ /[あ-んア-ン]/ ) {
  22. shift @tweets if( $#tweets > 20 );
  23. push( @tweets, encode( 'utf8', "$tweet->{user}{screen_name}: $tweet->{text}\n" ) );
  24. }
  25. },
  26. on_error => sub {
  27. my $error = shift;
  28. warn "ERROR: $error";
  29. $done->send;
  30. },
  31. on_eof => sub {
  32. $done->send;
  33. },
  34. );
  35.  
  36. my $server = Continuity->new(
  37. port => 16001,
  38. path_session => 1,
  39. cookie_session => 'sid',
  40. staticp => sub { $_[0]->url =~ m/\.(jpg|jpeg|gif|png|css|ico|js|html)$/ },
  41. );
  42. $server->loop;
  43. $done->recv;
  44.  
  45. sub main {
  46. my ($req) = @_;
  47. my $path = $req->request->url->path;
  48. print STDERR "Path: '$path'\n";
  49. pushstream($req) if $path =~ /pushstream/;
  50. }
  51.  
  52. sub pushstream {
  53. my ($req) = @_;
  54. while (1) {
  55. my $log = join "<br />", @tweets;
  56. $req->print($log);
  57. $req->next;
  58. }
  59. }
  60.  
  61. __END__
Add Comment
Please, Sign In to add comment