NAME

POE::Component::IRC::Plugin::Connector - A PoCo-IRC plugin that deals with the messy business of staying connected to an IRC server.

SYNOPSIS

use POE qw(Component::IRC Component::IRC::Plugin::Connector);

my $irc = POE::Component::IRC->spawn();

POE::Session->create( 
    package_states => [ 
        main => [ qw(_start lag_o_meter) ],
    ],
);

$poe_kernel->run();

sub _start {
    my ($kernel, $heap) = @_[KERNEL ,HEAP];
    $irc->yield( register => 'all' );

    $heap->{connector} = POE::Component::IRC::Plugin::Connector->new();

    $irc->plugin_add( 'Connector' => $heap->{connector} );

    $irc->yield ( connect => { Nick => 'testbot', Server => 'someserver.com' } );

    $kernel->delay( 'lag_o_meter' => 60 );
    return;
}

sub lag_o_meter {
    my ($kernel,$heap) = @_[KERNEL,HEAP];
    print 'Time: ' . time() . ' Lag: ' . $heap->{connector}->lag() . "\n";
    $kernel->delay( 'lag_o_meter' => 60 );
    return;
}

DESCRIPTION

POE::Component::IRC::Plugin::Connector is a POE::Component::IRC plugin that deals with making sure that your IRC bot stays connected to the IRC network of your choice. It implements the general algorithm as demonstrated at http://poe.perl.org/?POE_Cookbook/IRC_Bot_Reconnecting.

METHODS

new

Takes one argument, 'delay', which the frequency that the plugin will ping it's server. Returns a plugin object suitable for use in POE::Component::IRC's 'plugin_add'.

$irc->plugin_add( 'Connector' => POE::Component::IRC::Plugin::Connector->new( delay => 120 ) );
lag

Returns the current 'lag' in seconds between sending PINGs to the IRC server and getting PONG responses. Probably not likely to be wholely accurate.

AUTHOR

Chris "BinGOs" Williams <chris@bingosnet.co.uk>

SEE ALSO

POE::Component::IRC

POE::Component::IRC::Plugin