NAME
POE::Component::IRC::Plugin::RSS::Headlines - A POE::Component::IRC plugin that provides RSS headline retrieval.
SYNOPSIS
use strict;
use warnings;
use POE qw(Component::IRC Component::IRC::Plugin::RSS::Headlines);
my $nickname = 'RSSHead' . $$;
my $ircname = 'RSSHead the Sailor Bot';
my $ircserver = 'irc.perl.org';
my $port = 6667;
my $channel = '#IRC.pm';
my $rss_url = 'http://eekeek.org/jerkcity.cgi';
my $irc = POE::Component::IRC->spawn(
nick => $nickname,
server => $ircserver,
port => $port,
ircname => $ircname,
debug => 0,
plugin_debug => 1,
options => { trace => 0 },
) or die "Oh noooo! $!";
POE::Session->create(
package_states => [
'main' => [ qw(_start irc_001 irc_join irc_rssheadlines_items) ],
],
);
$poe_kernel->run();
exit 0;
sub _start {
# Create and load our plugin
$irc->plugin_add( 'RSSHead' =>
POE::Component::IRC::Plugin::RSS::Headlines->new() );
$irc->yield( register => 'all' );
$irc->yield( connect => { } );
undef;
}
sub irc_001 {
$irc->yield( join => $channel );
undef;
}
sub irc_join {
my ($kernel,$sender,$channel) = @_[KERNEL,SENDER,ARG1];
print STDERR "$channel $rss_url\n";
$kernel->yield( 'get_headline', { url => $rss_url, _channel => $channel } );
undef;
}
sub irc_rssheadlines_items {
my ($kernel,$sender,$args) = @_[KERNEL,SENDER,ARG0];
my $channel = delete $args->{_channel};
$kernel->post( $sender, 'privmsg', $channel, join(' ', @_[ARG1..$#_] ) );
undef;
}
DESCRIPTION
POE::Component::IRC::Plugin::RSS::Headlines, is a POE::Component::IRC plugin that provides a mechanism for retrieving RSS headlines from given URLs.
CONSTRUCTOR
new
-
Creates a new plugin object. Takes the following optional arguments:
'http_alias', you may provide the alias of an existing POE::Component::Client::HTTP component that the plugin will use instead of spawning it's own; 'follow_redirects', this argument is passed to PoCoCl::HTTP to inform it how to deal with following redirects, default is 2;
INPUT EVENTS
The plugin registers the following state handler within your session:
get_headline
-
Takes a hashref as an argument with the following keys:
'url', the RSS based url to retrieve items for;
You may pass arbitary key/value pairs, but the keys must be prefixed with an underscore.
OUTPUT
The following irc event is generated with the result of a 'get_headline' command:
irc_rssheadlines_items
-
Has the following parameters:
'ARG0', the original hashref that was passed; 'ARG1' .. $#_, RSS headline item titles;
irc_rssheadlines_error
-
Has the following parameters:
'ARG0', the original hashref that was passed; 'ARG1', the error text;
AUTHOR
Chris 'BinGOs' Williams
LICENSE
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.