NAME
WWW::Shorten::PunyURL - An interface to SAPO's URL shortening service
VERSION
Version 0.01
SYNOPSIS
PunyURL is a URL shortening service provided by SAPO (http://sapo.pt/). Given a URL, it replies with two versions of the short URL, one using Unicode and RFC3492-compliant (Punycode) and an ASCII-equivalent (lowercase).
You can also provide the shortened URL and get back the original one.
use WWW::Shorten::PunyURL;
my $punyurl = WebService::SAPO::PunyURL->new( url => $long );
$punyurl->shorten;
# or
my $punyurl = WebService::SAPO::PunyURL->new( url => $short );
$punyurl->long;
Optionally, you can give the constructor a timeout value (which defaults to 10 seconds):
my $punyurl = WebService::SAPO::PunyURL->new(
url => $long,
timeout => 5
);
TODO
* Write conditional network tests
* Report/fix bug in Regexp::Common::URI (doesn't handle Unicode) UNTIL THIS IS FIXED, REQUESTING THE URL CORRESPONDING TO A PUNYCODE SHORTENED ONE WILL BREAK HORRIBLY AND PROBABLY DESTROY THE WORLD. USE THE ASCII SHORT VERSION FOR NOW.
CONSTANTS
ENDPOINT
The service endpoint for PunyURL
FUNCTIONS
new
Create a new WWW::Shorten::PunyURL object. Takes a string (containing a URL) as the argument (may also take an optional timeout, see SYNOPSIS):
my $punyurl = WWW::Shorten::PunyURL->new( $url );
shorten
Give it a long url and you will get two shortened URLs, one using Unicode and its equivalent in lowercase ASCII. Returns undef on failure.
my $result = $punyurl->shorten;
if ( $result ) {
print $punyurl->url, "is now:\n";
print "\t", $punyurl->puny, "\n";
print "\t", $punyurl->ascii, "\n";
} else {
print STDERR "Error:\n";
print STDERR $punyurl->errstr, "(", $punyurl->error, "\n";
}
long
Given a short URL (that you previously got through shorten() or any other means), returns the original URL, or undef in case of failure.
$punyurl->long;
AUTHOR
Pedro Figueiredo, <me at pedrofigueiredo.org>
BUGS
Please report any bugs or feature requests to bug-www-shorten-punyurl at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=WWW-Shorten-PunyURL. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc WWW::Shorten::PunyURL
You can also look for information at:
RT: CPAN's request tracker
http://rt.cpan.org/NoAuth/Bugs.html?Dist=WWW-Shorten-PunyURL
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN
ACKNOWLEDGEMENTS
* João Pedro, from SAPO, for pushing PunyURL.
* Léon Brocard, for writing lots of code I can look at. My mistakes are my own, however.
* and of course, SAPO :)
COPYRIGHT & LICENSE
Copyright 2009 Pedro Figueiredo, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 328:
Non-ASCII character seen before =encoding in 'João'. Assuming UTF-8