summaryrefslogtreecommitdiff
path: root/lib/Dakkar/TweetArchive.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Dakkar/TweetArchive.pm')
-rw-r--r--lib/Dakkar/TweetArchive.pm52
1 files changed, 52 insertions, 0 deletions
diff --git a/lib/Dakkar/TweetArchive.pm b/lib/Dakkar/TweetArchive.pm
new file mode 100644
index 0000000..9d914fd
--- /dev/null
+++ b/lib/Dakkar/TweetArchive.pm
@@ -0,0 +1,52 @@
+package Dakkar::TweetArchive;
+use 5.024;
+use Moo;
+use experimental 'signatures';
+use Net::Twitter;
+use Types::Standard qw(Str InstanceOf);
+use namespace::clean;
+
+has [qw(consumer_key consumer_secret access_token access_token_secret)] => (
+ is => 'ro',
+ required => 1,
+ isa => Str,
+);
+
+has client => (
+ is => 'lazy',
+ isa => InstanceOf['Net::Twitter'],
+);
+
+sub _build_client($self) {
+ my $nt = Net::Twitter->new(
+ traits => [
+ qw/API::RESTv1_1 OAuth RetryOnError/,
+ AutoCursor => {
+ max_calls => 16,
+ force_cursor => 1,
+ array_accessor => 'users',
+ methods => [qw/friends followers/],
+ },
+ ],
+ consumer_key => $self->consumer_key,
+ consumer_secret => $self->consumer_secret,
+ );
+
+ $nt->access_token($self->access_token);
+ $nt->access_token_secret($self->access_token_secret);
+
+ return $nt;
+}
+
+sub home_timeline($self,$since_id) {
+ return $self->client->home_timeline({
+ include_entities => 1,
+ trim_user => 0,
+ exclude_replies => 0,
+ ( $since_id ? ( since_id => $since_id ) : () ),
+ count => 200,
+ });
+}
+
+1;
+