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

SEE ALSO
    POE::Component::IRC

