summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2012-09-17 21:08:11 +0100
committerdakkar <dakkar@thenautilus.net>2017-04-22 13:48:17 +0100
commitbc2fb71a6676a6203e122e02f791f35f75a0bb79 (patch)
tree0bed3bda8af560d700e25fabaf0084ecc8201584
downloadtweet-archive-bc2fb71a6676a6203e122e02f791f35f75a0bb79.tar.gz
tweet-archive-bc2fb71a6676a6203e122e02f791f35f75a0bb79.tar.bz2
tweet-archive-bc2fb71a6676a6203e122e02f791f35f75a0bb79.zip
does something
-rw-r--r--.gitignore2
-rw-r--r--tweet-archive.pl52
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;
+}