Guest User

Untitled

a guest
May 21st, 2018
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.96 KB | None | 0 0
  1. #!/usr/bin/perl
  2. # TWITTER_USERNAME=xxx TWITTER_PASSWORD=xxx plackup -s Twiggy twitter_displayer.pl
  3. use AnyEvent::Twitter::Stream;
  4. use Markapl;
  5. use autobox::Core;
  6. use autobox::Encode;
  7. use feature qw(state);
  8.  
  9. my $buf = [];
  10.  
  11. # NOTE: $stream should live outside this PSGI file scope
  12. # Change state to our if you're using perl 5.8
  13. state $stream = AnyEvent::Twitter::Stream->new(
  14. username => $ENV{TWITTER_USERNAME},
  15. password => $ENV{TWITTER_PASSWORD},
  16. method => 'sample',
  17. on_tweet => sub {
  18. my $tweet = shift;
  19. return unless $tweet->{user};
  20. $buf->unshift($tweet);
  21. $buf = $buf->slice(0..9) if $buf->size >= 10;
  22. },
  23. );
  24.  
  25. sub {
  26. my $mp = html {
  27. body {
  28. ul { $buf->map(sub {
  29. li {
  30. b{ $_->{user}->{screen_name} };
  31. ': ' . $_->{text};
  32. }
  33. })}
  34. }
  35. };
  36. return [
  37. 200,
  38. [ 'Content-Type', 'text/html; charset=utf-8' ],
  39. [ $mp->()->encode('utf8') ],
  40. ];
  41. };
Add Comment
Please, Sign In to add comment