Skip to content

geira/mojo-yr

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NAME

Mojo::YR - Get weather information from met.no (not Yr)

DESCRIPTION

Mojo::YR is an (a)synchronous weather data fetcher for the Mojolicious framework. The backend for weather data is https://api.met.no; the YR name is a misnomer and the module has nothing to do with yr.no.

Look at the resources below for mere information about the API:

SYNOPSIS

use Mojo::YR;
use open qw/:std :utf8/;
my $yr = Mojo::YR->new;

# Fetch location_forecast ==========================================
my $now = $yr->location_forecast([59, 10])->find('product.pointData > time')->first;
my $temp = $now->at('temperature');

warn "$temp->{value} $temp->{unit}";

# Fetch text_forecast ==============================================
my $today = $yr->text_forecast->children('time')->first;
my $hordaland = $today->at('area[name="Hordaland"]');

warn $hordaland->at('header')->text;
warn $hordaland->at('in')->text; # "in" holds the forecast text

ATTRIBUTES

url_map

$hash_ref = $self->url_map;

Returns the URL used to fetch data.

Note: These will always be what you expect. If the resources get changed in the future, a version() attribute will be added to this class to ensure you always get the same URL map.

Default:

{
  location_forecast => 'http://api.met.no/weatherapi/locationforecast/1.8/',
  text_forecast => 'http://api.met.no/weatherapi/textforecast/1.6/',
};

METHODS

location_forecast

$self = $self->location_forecast([$latitude, $longitude], sub { my($self, $err, $dom) = @_; ... });
$self = $self->location_forecast(\%args, sub { my($self, $err, $dom) = @_; ... });
$dom = $self->location_forecast([$latitude, $longitude]);
$dom = $self->location_forecast(\%args);

Used to fetch weather forecast for a specified place.

%args is required (unless [$latitude,$longitude] is given):

{
  latitude => $num,
  longitude => $num,
}

$dom is a Mojo::DOM object you can use to query the result. See "SYNOPSIS" for example.

text_location_forecast

$self = $self->text_location_forecast([$latitude, $longitude], sub { my($self, $err, $dom) = @_; ... });
$self = $self->text_location_forecast(\%args, sub { my($self, $err, $dom) = @_; ... });
$dom = $self->text_location_forecast([$latitude, $longitude]);
$dom = $self->text_location_forecast(\%args);

Used to fetch textual weather forecast for a specified place.

%args is required (unless [$latitude,$longitude] is given):

{
  latitude => $num,
  longitude => $num,
  language => 'nb', # default
}

$dom is a Mojo::DOM object you can use to query the result. See "SYNOPSIS" for example.

text_forecast

$dom = $self->text_forecast(\%args);
$self = $self->text_forecast(\%args, sub { my($self, $err, $dom) = @_; ... });

Used to fetch textual weather forecast for all parts of the country.

%args is optional and has these default values:

{
  forecast => 'land',
  language => 'nb',
}

$dom is a Mojo::DOM object you can use to query the result. See "SYNOPSIS" for example.

sunrise

$dom = $self->sunrise(\%args);
$self = $self->sunrise(\%args, sub { my($self, $err, $dom) = @_; ... });

Used to fetch When does the sun rise and set for a given place

%args is required

{
  lat => $num,
  lon => $num,
  date => 'YYYY-MM-DD', # OR
  from => 'YYYY-MM-DD',
  to   => 'YYYY-MM-DD',
}

$dom is a Mojo::DOM object you can use to query the result. See "SYNOPSIS" for example.

COPYRIGHT AND LICENSE

Copyright (C) 2014 Jan Henning Thorsen

This program is free software, you can redistribute it and/or modify it under the terms of the Artistic License version 2.0.

AUTHOR

Jan Henning Thorsen - jhthorsen@cpan.org Marcus Ramberg - mramberg@cpan.org

About

Get weather information from yr.no

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Perl 77.5%
  • Other 22.5%