Acme-Free-API-Geodata-GeoIP

 view release on metacpan or  search on metacpan

MANIFEST  view on Meta::CPAN

bin/geoip
Changes
lib/Acme/Free/API/Geodata/GeoIP.pm
Makefile.PL
MANIFEST			This list of files
MANIFEST.SKIP
README
t/Acme-Free-API-Geodata-GeoIP.t
META.yml                                 Module YAML meta-data (added by MakeMaker)
META.json                                Module JSON meta-data (added by MakeMaker)

META.json  view on Meta::CPAN

         }
      },
      "configure" : {
         "requires" : {
            "ExtUtils::MakeMaker" : "0"
         }
      },
      "runtime" : {
         "requires" : {
            "Data::Dumper" : "0",
            "JSON::XS" : "4",
            "WWW::Mechanize" : "2"
         }
      }
   },
   "release_status" : "stable",
   "version" : "1.0",
   "x_serialization_backend" : "JSON::PP version 4.16"
}

META.yml  view on Meta::CPAN

meta-spec:
  url: http://module-build.sourceforge.net/META-spec-v1.4.html
  version: '1.4'
name: Acme-Free-API-Geodata-GeoIP
no_index:
  directory:
    - t
    - inc
requires:
  Data::Dumper: '0'
  JSON::XS: '4'
  WWW::Mechanize: '2'
version: '1.0'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'

Makefile.PL  view on Meta::CPAN

use 5.038002;
use ExtUtils::MakeMaker;
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
WriteMakefile(
    NAME              => 'Acme::Free::API::Geodata::GeoIP',
    VERSION_FROM      => 'lib/Acme/Free/API/Geodata/GeoIP.pm', # finds $VERSION, requires EU::MM from perl >= 5.5
    PREREQ_PM         => {
        "WWW::Mechanize" => 2.0,
        "JSON::XS" => 4.0,
        "Data::Dumper" => 0,
    },
        "EXE_FILES" => [
        "bin/geoip"
    ],

    ABSTRACT_FROM     => 'lib/Acme/Free/API/Geodata/GeoIP.pm', # retrieve abstract from module
    AUTHOR            => 'Rene Schickbauer <cavac@cpan.org>',
    LICENSE           => 'perl',
);

lib/Acme/Free/API/Geodata/GeoIP.pm  view on Meta::CPAN


use v5.38;
use strict;
use warnings;
use utf8;

our $VERSION = '1.0';

use Data::Dumper;
use WWW::Mechanize;
use JSON::XS qw(decode_json);

sub new($proto, %config) {
    my $class = ref($proto) || $proto;

    my $self = bless \%config, $class;

    my $agent = WWW::Mechanize->new(cookie_jar => {});
    $agent->agent('PerlMonks contest/1 (https://perlmonks.org/?node_id=11161472)');
    $agent->stack_depth(1);
    $self->{agent} = $agent;

lib/Acme/Free/API/Geodata/GeoIP.pm  view on Meta::CPAN

    my $content = $self->_fetchURL($url);

    my $ok = 0;
    my $decoded;
    eval {
        $decoded = decode_json($content);
        $ok = 1;
    };

    if(!$ok || !defined($decoded)) {
        $self->_debuglog("Failed to decode response. Not a JSON document?");
        $self->_debuglog(Dumper($decoded));
        return;
    }

    #$self->_debuglog(Dumper($decoded));

    return $decoded;
}




( run in 1.004 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )