summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2017-04-22 13:34:51 +0100
committerdakkar <dakkar@thenautilus.net>2017-04-22 13:49:18 +0100
commitd7d933d95deb241288ca7e3cd4a93b61b51bd0d1 (patch)
tree100e6c7158f661ba125cf1f6ea2ecad7e4c025b8
parentstore tweets in postgres (diff)
downloadtweet-archive-d7d933d95deb241288ca7e3cd4a93b61b51bd0d1.tar.gz
tweet-archive-d7d933d95deb241288ca7e3cd4a93b61b51bd0d1.tar.bz2
tweet-archive-d7d933d95deb241288ca7e3cd4a93b61b51bd0d1.zip
store friends / followers
-rw-r--r--lib/Dakkar/TweetArchive.pm9
-rw-r--r--lib/Dakkar/TweetArchive/Store.pm31
-rw-r--r--tweet-archive.pl3
3 files changed, 42 insertions, 1 deletions
diff --git a/lib/Dakkar/TweetArchive.pm b/lib/Dakkar/TweetArchive.pm
index 9d914fd..3c0d35e 100644
--- a/lib/Dakkar/TweetArchive.pm
+++ b/lib/Dakkar/TweetArchive.pm
@@ -48,5 +48,12 @@ sub home_timeline($self,$since_id) {
});
}
-1;
+sub friends($self) {
+ return $self->client->friends({count=>200});
+}
+sub followers($self) {
+ return $self->client->followers({count=>200});
+}
+
+1;
diff --git a/lib/Dakkar/TweetArchive/Store.pm b/lib/Dakkar/TweetArchive/Store.pm
index e4a4f3b..b716166 100644
--- a/lib/Dakkar/TweetArchive/Store.pm
+++ b/lib/Dakkar/TweetArchive/Store.pm
@@ -72,6 +72,22 @@ SQL
);
}
+sub store_friends($self,$friends) {
+ my $friends_str = $json_printer->encode($friends);
+
+ $self->dbh->do(<<'SQL', {}, $friends_str);
+INSERT INTO friends(users) VALUES(?)
+SQL
+}
+
+sub store_followers($self,$followers) {
+ my $followers_str = $json_printer->encode($followers);
+
+ $self->dbh->do(<<'SQL', {}, $followers_str);
+INSERT INTO followers(users) VALUES(?)
+SQL
+}
+
sub _schema_deploy($self,$dbh,$next_version) {
my $method_name = "_schema_deploy_${next_version}";
if (my $method = $self->can($method_name)) {
@@ -115,4 +131,19 @@ CREATE TABLE tweets (
SQL
}
+sub _schema_deploy_2($self,$dbh) {
+ $dbh->do(<<'SQL');
+CREATE TABLE followers (
+ taken_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP PRIMARY KEY,
+ users JSONB NOT NULL
+)
+SQL
+ $dbh->do(<<'SQL');
+CREATE TABLE friends (
+ taken_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP PRIMARY KEY,
+ users JSONB NOT NULL
+)
+SQL
+}
+
1;
diff --git a/tweet-archive.pl b/tweet-archive.pl
index 170c6af..2424206 100644
--- a/tweet-archive.pl
+++ b/tweet-archive.pl
@@ -26,3 +26,6 @@ my $latest_id = $store->latest_tweet_id;
for my $tweet ($client->home_timeline($latest_id)->@*) {
$store->store_tweet($tweet);
}
+
+$store->store_friends($client->friends);
+$store->store_followers($client->followers);