summaryrefslogtreecommitdiff
path: root/usernamegenerator.pl
blob: ea0330530e639e0ddd4d428d626767ef9f7a07b7 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/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";
}