Guest User

Untitled

a guest
May 19th, 2018
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. use Net::Twitter;
  2. use Encode;
  3. use File::Slurp;
  4. use YAML;
  5. use utf8;
  6.  
  7. my $username = 'yourname';
  8. my $password = 'yourpassword';
  9. my $max_id = undef;
  10.  
  11. my $nt = Net::Twitter->new(
  12. traits => [qw/API::REST/],
  13. username => $username,
  14. password => $password
  15. );
  16.  
  17. foreach my $method (qw(user_timeline retweeted_by_me favorites)) {
  18. my $current_max_id = $max_id;
  19. while (1) {
  20. my $statuses;
  21. my $args = { count => 100 };
  22. $args->{'max_id'} = $current_max_id if (defined($current_max_id));
  23. printf("Fetching %s (max_id: %s, count: %s)\n", $method, $args->{'max_id'}, $args->{'count'});
  24.  
  25. eval { $statuses = $nt->$method($args); };
  26. if ( my $err = $@ ) {
  27. die $@ unless blessed $err && $err->isa('Net::Twitter::Error');
  28. warn "HTTP Response Code: ", $err->code, "\n",
  29. "HTTP Message......: ", $err->message, "\n",
  30. "Twitter error.....: ", $err->error, "\n";
  31. }
  32. if (not scalar @$statuses) {
  33. print "No entry exists.\n";
  34. last;
  35. }
  36. $current_max_id = $statuses->[-1]->{'id'} - 1;
  37.  
  38. my $result = encode('utf8', YAML::Dump($statuses));
  39. my $file = sprintf('%s_%010s-%010s.yml', $method, $statuses->[-1]->{'id'}, $statuses->[0]->{'id'});
  40. print "Writing '$file'\n";
  41. write_file($file, $result);
  42. }
  43. }
Add Comment
Please, Sign In to add comment