NAME

WWW::Shorten::ptl - interface to shorten URLs with http://p.tl/

SYNOPSIS

use WWW::Shorten::ptl ();

my $ptl = WWW::Shorten::ptl->new(apikey => $apikey);
my $res = $ptl->shorten($url);
my $shorturl = $res->{short_url} || die "failed to shorten $url";

my $longurl = $ptl->extract($shorturl, direct => 1);

or

use WWW::Shorten::ptl;

my $shorturl = makeashorterlink($url, 'API-Key');
my $url = makealongerlink($shorturl);

DESCRIPTION

WWW::Shorten::ptl provides interface to shorten URLs using http://p.tl/.

API KEY

As p.tl requires API-Key for each access using its APIs, you should apply your API-Key for p.tl to shorten URLs with this module.

you can get API-Key for p.tl at http://p.tl/key_create.php.

API-Key is required only for shortening URLs. URL extraction service doesn't need API-Key

OO INTERFACE

new([apikey => API-Key])

creates an instance of WWW::Shorten::ptl with given API-Key.

$obj->apikey([API-Key])

set or get API-Key for this instance.

$obj->shorten($url)

shorten $url, and returns HASHREF with following keys.

status    -- see 'RESULT STATUS' section
long_url  -- given (original) url
short_url -- shortened url
counter   -- # of requests in a period. (currently, api request is limited to 1000 calls/day)

dies if no API-Key is set.

RESULT STATUS

the 'status' should be one of below.

'ok'							-- url is successfully shortened 
'empty long url'	-- input url is empty (should not occur when using this module)
'empty API key'		-- API key is not specified (ditto.)
'API limit'				-- request limit exceeded.
'invalid API key' -- given API key is invalid
'invalid long url'-- given url cannot be shortened (that url may be already shortened)

$obj->extract($url)

returns extracted $url. or undef when $url is not a form of p.tl.

FUNCTION INTERFACE

As mentioned above, additional parameter API-Key is required for each shorten/expand functions.

makeashorterlink($url, API-Key)

returns shortened url. or undef when failed to shorten url.

makealongerlink($url)

returns expanded url for $url or undef when $url is not a form of p.tl

AUTHOR

turugina <turugina {at} cpan.org>

SEE ALSO

WWW::Shorten http://p.tl/ http://dev.pixiv.net/archives/1156026.html

LICENSE

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