sharifulin / mojolicious-plugin-geolocation

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 <sharifulin@gmail.com>

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.

About

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


Languages

Language:Perl 100.0%