POE::Component::WWW::Shorten - A non-blocking POE wrapper around WWW::Shorten.
use POE qw(Component::WWW::Shorten); my $poco = POE::Component::WWW::Shorten->spawn( alias => 'shorten', type => 'Metamark' ); POE::Session->create( package_states => [ 'main' => [ qw(_start _shortened) ], ], ); $poe_kernel->run(); exit 0; sub _start { my ($kernel,$heap) = @_[KERNEL,HEAP]; $kernel->post( 'shorten' => 'shorten' => { url => 'http://reallyreallyreallyreally/long/url', event => '_shortened', _arbitary_value => 'whatever', } ); undef; } sub _shortened { my ($kernel,$heap,$returned) = @_[KERNEL,HEAP,ARG0]; if ( $returned->{short} ) { print STDOUT $returned->{short} . "\n"; } print STDOUT $returned->{_arbitary_value} . "\n"; undef; }
POE::Component::WWW::Shorten is a POE component that provides a non-blocking wrapper around WWW::Shorten. It accepts 'shorten' events and will return a shortened url.
If the type of shortening to do is not specified it uses the WWW::Shorten default which is WWW::Shorten::Metamark.
spawn
Takes a number of arguments all are optional. Returns an object.
'alias', specify a POE Kernel alias for the component; 'options', a hashref of POE Session options to pass to the component's session; 'type', the WWW::Shorten sub module to use, default is 'Metamark'; 'params', the parameter for the makeshortenlink call to WWW::Shorten;
These are for the OO interface to the component.
shorten
Requires a hashref as first argument. See 'shorten' event below for details.
session_id
Takes no arguments. Returns the POE Session ID of the component.
shutdown
Takes no arguments, terminates the component.
What POE events our component will accept.
Requires a hashref as first argument. The hashref should contain the following keyed values:
'url', the url that you want shortening. ( Mandatory ). 'event', the name of the event to send the reply to. ( Mandatory ). 'session', optional, an alternative session: alias, ref or ID that the response should be sent to, defaults to sending session;
You may also pass arbitary key/values in the hashref ( as demonstrated in the SYNOPSIS ). Arbitary keys should have an underscore prefix '_'.
Whether the OO or POE API is used the component passes responses back via a POE event. ARG0 will be a hashref with the following key/value pairs:
'url', the url that you wanted shortening. 'short', the shortened version. ( This will be undef if something went wrong ).
The hashref will also contain any arbitary key/values that were passed in the original query.
Chris BinGOs Williams <chris@bingosnet.co.uk>
BinGOs
Copyright © Chris Williams
This module may be used, modified, and distributed under the same terms as Perl itself. Please see the license that came with your Perl distribution for details.
POE
WWW::Shorten
To install POE::Component::WWW::Shorten, copy and paste the appropriate command in to your terminal.
cpanm
cpanm POE::Component::WWW::Shorten
CPAN shell
perl -MCPAN -e shell install POE::Component::WWW::Shorten
For more information on module installation, please visit the detailed CPAN module installation guide.