Acme-Insult-Evil
view release on metacpan or search on metacpan
lib/Acme/Insult/Evil.pm view on Meta::CPAN
package Acme::Insult::Evil 1.1 { # https://www.freepublicapis.com/evil-insult-generator
use v5.38;
use HTTP::Tiny;
use JSON::Tiny qw[decode_json];
use URI;
use parent 'Exporter';
our %EXPORT_TAGS = ( all => [ our @EXPORT_OK = qw[insult] ] );
#
use overload '""' => sub ( $s, $u, $b ) { $s->{insult} // () };
#
sub _http (%params) {
state $http
//= HTTP::Tiny->new( default_headers => { Accept => 'application/json' }, agent => sprintf '%s/%.2f ', __PACKAGE__, our $VERSION );
state $api //= URI->new('https://evilinsult.com/generate_insult.php');
# API accepts languages as a param named 'lang' but returns the language in a field called 'language'... why?
( run in 1.396 second using v1.01-cache-2.11-cpan-4d50c553e7e )