POE::Component::WWW::Shorten - A non-blocking POE wrapper around WWW::Shorten.
version 1.22
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::TinyURL.
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 'TinyURL'; '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.
POE
WWW::Shorten
Chris Williams <chris@bingosnet.co.uk>
This software is copyright (c) 2015 by Chris Williams.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
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.