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,
});
}
sub friends($self) {
return $self->client->friends({count=>200});
}
sub followers($self) {
return $self->client->followers({count=>200});
}
1;