diff options
author | dakkar <dakkar@thenautilus.net> | 2012-09-17 21:08:11 +0100 |
---|---|---|
committer | dakkar <dakkar@thenautilus.net> | 2017-04-22 13:48:17 +0100 |
commit | bc2fb71a6676a6203e122e02f791f35f75a0bb79 (patch) | |
tree | 0bed3bda8af560d700e25fabaf0084ecc8201584 | |
download | tweet-archive-bc2fb71a6676a6203e122e02f791f35f75a0bb79.tar.gz tweet-archive-bc2fb71a6676a6203e122e02f791f35f75a0bb79.tar.bz2 tweet-archive-bc2fb71a6676a6203e122e02f791f35f75a0bb79.zip |
does something
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | tweet-archive.pl | 52 |
2 files changed, 54 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..61a96e4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/tweet-archive.conf +/elasticsearch-*/ diff --git a/tweet-archive.pl b/tweet-archive.pl new file mode 100644 index 0000000..9fd947f --- /dev/null +++ b/tweet-archive.pl @@ -0,0 +1,52 @@ +#!/usr/bin/env perl +use 5.016; +use strict; +use warnings; +use Path::Class; +use JSON; +use Net::Twitter; +use ElasticSearch; +use DateTime::Format::Strptime; +use Data::Visitor::Callback; +use Data::Printer; + +my $conf = JSON->new->utf8->decode( + file(__FILE__)->parent->file('tweet-archive.conf') + ->slurp(iomode=>'<:raw') + // '{}' + ); + +my $cb = Data::Visitor::Callback->new( + 'JSON::Boolean' => sub { say "converting a boolean"; return 0+$_ }, +); +my $dt = DateTime::Format::Strptime->new(pattern => '%a %b %d %T %z %Y'); + +my $nt = Net::Twitter->new( + traits => [qw/API::REST OAuth/], + consumer_key => $conf->{consumer_key}, + consumer_secret => $conf->{consumer_secret}, +); + +$nt->access_token($conf->{access_token}); +$nt->access_token_secret($conf->{access_token_secret}); + +my $es = ElasticSearch->new(); + +my $tl = $nt->home_timeline({ + include_entities => 1, + trim_user => 1, + exclude_replies => 0, +}); + +for my $tweet (@$tl) { + $cb->visit($tweet); + say p $tweet; + my $result = $es->index( + index => 'tweet-archive', + type => 'tweet', + id => $tweet->{id_str}, + timestamp => $dt->parse_datetime($tweet->{created_at})->iso8601, + data => $tweet, + ); + say p $result; +} |