WWW::Shorten::PunyURL - An interface to SAPO's URL shortening service
Version 0.03
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 = WWW::Shorten::PunyURL->new( url => $long ); $punyurl->shorten; # or my $punyurl = WWW::Shorten::PunyURL->new( url => $short ); $punyurl->long;
Optionally, you can give the constructor a timeout value (which defaults to 10 seconds):
my $punyurl = WWW::Shorten::PunyURL->new( url => $long, timeout => 5 );
* 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.
The service endpoint for PunyURL
This function will return the PunyURL corresponding to the original URL.
This function does the reverse, finding the long URL corresponding to a PunyURL.
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 );
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"; print "\t", $punyurl->preview, "\n"; } else { print STDERR "Error:\n"; print STDERR $punyurl->errstr, "(", $punyurl->error, "\n"; }
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;
Pedro Figueiredo, <me at pedrofigueiredo.org>
<me at pedrofigueiredo.org>
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.
bug-www-shorten-punyurl at rt.cpan.org
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
http://annocpan.org/dist/WWW-Shorten-PunyURL
CPAN Ratings
http://cpanratings.perl.org/d/WWW-Shorten-PunyURL
Search CPAN
http://search.cpan.org/dist/WWW-Shorten-PunyURL/
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 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:
Non-ASCII character seen before =encoding in 'João'. Assuming UTF-8
To install WWW::Shorten::PunyURL, copy and paste the appropriate command in to your terminal.
cpanm
cpanm WWW::Shorten::PunyURL
CPAN shell
perl -MCPAN -e shell install WWW::Shorten::PunyURL
For more information on module installation, please visit the detailed CPAN module installation guide.