@ARGV = qw[-search time];
#~ @ARGV = qw[-json];
#~ @ARGV = qw[-search time -json];
#~ @ARGV = qw[-id 5 -json];
#~ @ARGV = qw[-json -id 333];
#~ @ARGV = qw[-json -id 2];
#~ @ARGV = qw[-help];
#
my $raw
= 0;
my ( $id, $query );
sub _echo ($slip) { # JSON::Tiny is loaded in Acme::Free::Advice::* anyway
$raw ?
JSON::Tiny::encode_json(
builtin::blessed $slip ? {%$slip} : [
{
{%$_}
} @$slip
]
) :
$slip;
}
GetOptions( 'json' => \$raw, 'help' => sub { pod2usage( -exitval => 1 ) }, 'id=i' => \$id, 'search=s' => \$query );
:Slip 1.1 { # https://api.adviceslip.com/
use v5.38;
use HTTP::Tiny;
use JSON::Tiny qw[decode_json];
use parent 'Exporter';
our %EXPORT_TAGS = ( all => [ our @EXPORT_OK = qw[adv
state $http
//= HTTP::Tiny->new( default_headers => { Accept => 'application/json' }, agent => sprintf '%s/%.2f ', __PACKAGE__, our $VERSION );
my $res = $http->get($uri);
ice is not found but we'll at least know when we have valid JSON
$res->{success} ? decode_json( $res->{content} ) : ();
}
#
sub advice ( $slip_id //= () ) {
my $res = _http