#!/usr/bin/perl ####################################################### # Username generator using username-generator.com API # ####################################################### use IO::Socket; use IO::Socket::SSL; use HTTP::Tiny; use JSON::PP; if ( defined($ARGV[0]) and scalar(@ARGV) > 0 ){ if ( $ARGV[0] eq "" or length($ARGV[0]) <= 0 or int($ARGV[0]) <= 0 ){ die "Error: non-valid amount of usernames given"; } print( "Getting usernames..\n" ); my $hc = HTTP::Tiny->new( "agent" => "UsernameGenerator" ) or die "Error: failed to initialize https"; my $hreq = $hc->request( "GET", "https://www.username-generator.com/usernames_json?num_results=".$ARGV[0], { "headers" => { "Accept" => "*/*" } } ) or die "Error: https request failed"; if ( $hreq->{"success"} ){ my $res_parsed = JSON::PP->new->utf8->pretty->decode($hreq->{"content"}) or die "Error: failed to parse response"; my $names = int(scalar(@{$res_parsed->{"usernames"}})); for ( my $ucount = 0; $ucount < $names; $ucount++ ){ print( $res_parsed->{"usernames"}->[$ucount] . "\n" ); } if ( defined($ucount) ){ undef $ucount; } undef $names; undef $res_parsed; } else { print( "Error: HTTPS request failed (" . $hreq->{"status"} . ": " . $hreq->{"reason"} . ")\n" ); } undef $hreq; undef $hc; } else { die "Error: number of usernames not given"; }