Git Product home page Git Product logo

mojolicious-plugin-geolocation's Introduction

NAME

Mojolicious::Plugin::GeoLocation - Geo Location Mojolicious Plugin

SYNOPSIS

plugin 'geo_location', {
        geo_ip    => { db => '/usr/local/share/GeoIP/GeoLiteCity.dat' },
        geo_ip_ru => { db => { dbh => app->db, table => 'ip_geo_base_ru' } },
        
        geo_coder    => { api => [ '..', .. ] }, # list of api key
        geo_coder_ru => { api => [ '..', .. ] }, # list of api key
};

get '/' => sub {
        my $self = shift;
        
        warn Dumper $self->stash('location'); # returns hash { lat => '..', long => '..', ip => '..', title => '..' }
};

get '/coder' => sub {
        my $self = shift;
        
        warn $self->helper->gl_coder('Moscow');
};

DESCRIPTION

Mojolicous::Plugin::GeoLocation is a plugin to detect location, uses geolat and geolong params or IP address.

Detect geo latitude and longitude:

$c->req->param('geolat')
$c->req->param('geolong')

Detect IP address:

$c->req->param('ip') ||
$c->req->headers->header('X-Real-IP') ||
$c->req->headers->header('X-Forwarded-For') ||
$c->tx->{'remote_address'}

METHODS

Mojolicious::Plugin::GeoLocation inherits all methods from Mojolicious::Plugin and implements the following new ones.

register

$plugin->register;

Register plugin hooks in Mojolicious application. Add 2 helpers:

$self->helper('gl_coder', '..');
$self->helper('gl_ip',    '..');

coder

$plugin->coder( [ $lat, $long ] );

Detect location, uses geo lat and long params, based on Geo::Geocoder. First: uses Yandex geocoder (http://api.yandex.ru/maps/geocoder/doc/desc/concepts/reverse_geocode.xml), second: uses Google geocoder (http://code.google.com/apis/maps/documentation/geocoding/).

ip

$plugin->ip( $ip );

Detect location, uses IP, based on Geo::IP::RU::IpGeoBase and Geo::IP. First: uses russian IP base (http://ipgeobase.ru), second: uses MaxMind IP base (http://www.maxmind.com/).

SEE ALSO

Mojolicious, Mojolicious::Guides, http://mojolicious.org.

Geo::IP::RU::IpGeoBase, Geo::IP.

AUTHOR

Anatoly Sharifulin <[email protected]>

BUGS

Please report any bugs or feature requests to bug-mojolicious-plugin-geolocation at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.htMail?Queue=Mojolicious-Plugin-GeoLocation. We will be notified, and then you'll automatically be notified of progress on your bug as we make changes.

COPYRIGHT & LICENSE

Copyright (C) 2010 by Anatoly Sharifulin.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

mojolicious-plugin-geolocation's People

Contributors

sharifulin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

deserted

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.