Acme-Free-API-Stonks
view release on metacpan or search on metacpan
lib/Acme/Free/API/Stonks.pm view on Meta::CPAN
package Acme::Free::API::Stonks;
use strict;
use warnings;
our $VERSION = '1.0.2';
use HTTP::Tiny;
use JSON qw/decode_json/;
use Util::H2O::More qw/baptise d2o/;
use constant {
BASEURL => "https://tradestie.com/api/v1/apps/reddit",
};
sub new {
my $pkg = shift;
my $self = baptise { ua => HTTP::Tiny->new }, $pkg;
return $self;
}
sub get {
my $self = shift;
my $resp = d2o $self->ua->get(BASEURL);
return d2o -autoundef, decode_json $resp->content;
}
sub stonks {
my $self = shift;
return $self->get;
}
1;
__END__
=head1 NAME
Acme::Free::API::Stonks - Perl API client for the, I<top 50 stocks discussed on le'Reddit
subeddit - r/Wallstreetbets>, L<https://tradestie.com/apps/reddit/api/>.
This module provides the client, "stonks", that is available via C<PATH> after install.
=head1 SYNOPSIS
#!/usr/bin/env perl
use strict;
use warnings;
use Acme::Free::API::Stonks qw//;
my $stonk = Acme::Free::API::Stonks->new;
printf STDERR "%-5s %-8s %-4s %4s\n", "tick", "sentiment", "score", "comments";
foreach my $s (sort {$a->ticker cmp $b->ticker} $stonk->stonks->all) {
printf "%-5s %-8s % 4.3f % 4d\n", $s->ticker // "na", $s->sentiment // "na", $s->sentiment_score // "nan", $s->no_of_comments // "nan";
}
=head2 C<stonks> Commandline Client
After installing this module, simply run the command C<stonks> without any arguments, and it
will print a 4-column list of the top 50 stocks discussed on Reddit subeddit, C<r/Wallstreetbets>.
The example below is printing out the full list (at the time of this writing), sorting by the
4th column using C<sort> (this is the proper way to do it on the cli).
shell> stonks | sort -nr -k 4
tick sentiment score comments
NVDA Bearish -0.033 138
INTC Bullish 0.206 34
AI Bullish 0.245 26
DG Bearish -0.049 19
SMCI Bullish 0.129 18
QQQ Bullish 0.294 9
DLTR Bullish 0.015 9
AMD Bullish 0.226 8
TSLA Bullish 0.168 7
DELL Bullish 0.120 6
MU Bullish 0.074 5
LULU Bearish -0.050 5
EOD Bearish -0.013 5
AVGO Bullish 0.116 5
AAPL Bullish 0.385 5
OPEN Bearish -0.062 4
( run in 2.075 seconds using v1.01-cache-2.11-cpan-d80b1682f3f )