package Dakkar::TweetArchive;
use 5.024;
use Moo;
use experimental 'signatures';
use Twitter::API;
use Types::Standard qw(Str InstanceOf);
use namespace::autoclean;
has [qw(consumer_key consumer_secret access_token access_token_secret)] => (
is => 'ro',
required => 1,
isa => Str,
);
has client => (
is => 'lazy',
isa => InstanceOf['Twitter::API'],
);
sub _build_client($self) {
my $nt = Twitter::API->new_with_traits(
traits => [qw{Enchilada RateLimiting}],
consumer_key => $self->consumer_key,
consumer_secret => $self->consumer_secret,
access_token => $self->access_token,
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,
});
}
sub friends($self) {
return $self->client->friends({count=>200});
}
sub followers($self) {
return $self->client->followers({count=>200});
}
1;