The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Acme::Free::API::Stonks - Perl API client for the, top 50 stocks discussed on le'Reddit subeddit - r/Wallstreetbets, https://tradestie.com/apps/reddit/api/.

This module provides the client, "stonks", that is available via PATH after install.

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";
  }

stonks Commandline Client

After installing this module, simply run the command stonks without any arguments, and it will print a 4-column list of the top 50 stocks discussed on Reddit subeddit, r/Wallstreetbets.

The example below is printing out the full list (at the time of this writing), sorting by the 4th column using 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
  DKS   Bearish  -0.444    4
  BABA  Bearish  -0.112    4
  AU    Bullish   0.063    4
  ULTA  Bullish   0.179    3
  PTON  Bullish   0.048    3
  IBM   Bullish   0.393    3
  HPE   Bullish   0.101    3
  CRWD  Bullish   0.503    3
  BBBY  Bearish  -0.060    3
  AMZN  Bearish  -0.045    3
  AFRM  Bearish  -0.144    3
  WOW   Bullish   0.586    2
  VS    Bearish   0.000    2
  UI    Bearish  -0.001    2
  SAVE  Bullish   0.809    2
  PDD   Bullish   0.230    2
  ON    Bearish  -0.379    2
  NOW   Bearish  -0.155    2
  MRVL  Bullish   0.335    2
  GOOG  Bearish  -0.463    2
  EV    Bullish   0.077    2
  UBS   Bearish   0.000    1
  TA    Bearish   0.000    1
  SR    Bearish  -0.359    1
  SIRI  Bearish   0.000    1
  PANW  Bullish   0.660    1
  MDB   Bullish   0.340    1
  FTC   Bearish  -0.758    1
  FAT   Bearish   0.000    1
  ESTC  Bearish   0.000    1
  COOL  Bullish   0.515    1
  CONE  Bearish   0.000    1
  ATEC  Bearish  -0.665    1
  ABC   Bearish  -0.563    1

DESCRIPTION

Contributed as part of the FreePublicPerlAPIs Project described at, https://github.com/oodler577/FreePublicPerlAPIs.

This fun module is to demonstrate how to use Util::H2O::More and Dispatch::Fu to make creating easily make API SaaS modules and clients in a clean and idiomatic way. These kind of APIs tracked at https://www.freepublicapis.com/ are really nice for fun and practice because they don't require dealing with API keys in the vast majority of cases.

METHODS

new

Instantiates object reference. No parameters are accepted.

stonks

Object method that returns an ARRAY reference (based on the JSON returned by this service), that's been give the additional ARRAY vmethods via Util::H2O::More such as ->all (used in the SYNOPSIS above).

Internal Methods

get

Called internally by quote. This method uses HTTP::Tiny to call to the API. Then Util::H2O::More's d2o is used to deal with the resulting respons that has an accessor called quote. This is what's invoked that returns the actual ARRAY refernce of stonks records (HASH refs).

ENVIRONMENT

Nothing special required.

AUTHOR

Brett Estrade <oodler@cpan.org>

BUGS

Please report.

LICENSE AND COPYRIGHT

Same as Perl/perl.