Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

poe::component::irc::plugin::autojoin(3pm) [debian man page]

POE::Component::IRC::Plugin::AutoJoin(3pm)		User Contributed Perl Documentation		POE::Component::IRC::Plugin::AutoJoin(3pm)

NAME
POE::Component::IRC::Plugin::AutoJoin - A PoCo-IRC plugin which keeps you on your favorite channels SYNOPSIS
use POE qw(Component::IRC::State Component::IRC::Plugin::AutoJoin); my $nickname = 'Chatter'; my $server = 'irc.blahblahblah.irc'; my %channels = ( '#Blah' => '', '#Secret' => 'secret_password', '#Foo' => '', ); POE::Session->create( package_states => [ main => [ qw(_start irc_join) ], ], ); $poe_kernel->run(); sub _start { my $irc = POE::Component::IRC::State->spawn( Nick => $nickname, Server => $server, ) or die "Oh noooo! $!"; $irc->plugin_add('AutoJoin', POE::Component::IRC::Plugin::AutoJoin->new( Channels => \%channels )); $irc->yield(register => qw(join); $irc->yield(connect => { } ); } sub irc_join { my $chan = @_[ARG1]; $irc->yield(privmsg => $chan => "hi $channel!"); } DESCRIPTION
POE::Component::IRC::Plugin::AutoJoin is a POE::Component::IRC plugin. If you get disconnected, the plugin will join all the channels you were on the next time it gets connected to the IRC server. It can also rejoin a channel if the IRC component gets kicked from it. It keeps track of channel keys so it will be able to rejoin keyed channels in case of reconnects/kicks. If a POE::Component::IRC::Plugin::NickServID plugin has been added to the IRC component, then AutoJoin will wait for a reply from NickServ before joining channels on connect. This plugin requires the IRC component to be POE::Component::IRC::State or a subclass thereof. METHODS
"new" Takes the following optional arguments: 'Channels', either an array reference of channel names, or a hash reference keyed on channel name, containing the password for each channel. By default it uses the channels the component is already on if you are using POE::Component::IRC::State. 'RejoinOnKick', set this to 1 if you want the plugin to try to rejoin a channel (once) if you get kicked from it. Default is 0. 'Rejoin_delay', the time, in seconds, to wait before rejoining a channel after being kicked (if 'RejoinOnKick' is on). Default is 5. 'Retry_when_banned', if you can't join a channel due to a ban, set this to the number of seconds to wait between retries. Default is 0 (disabled). 'NickServ_delay', how long (in seconds) to wait for a reply from NickServ before joining channels. Default is 5. Returns a plugin object suitable for feeding to POE::Component::IRC's "plugin_add" method. AUTHOR
Hinrik Oern Sigur`sson, hinrik.sig@gmail.com perl v5.14.2 2011-12-07 POE::Component::IRC::Plugin::AutoJoin(3pm)

Check Out this Related Man Page

POE::Component::IRC::Cookbook::Resolver(3pm)		User Contributed Perl Documentation	      POE::Component::IRC::Cookbook::Resolver(3pm)

NAME
POE::Component::IRC::Cookbook::Resolver - A bot that can resolve DNS records SYNOPSIS
This bot uses POE::Component::Client::DNS to DNS records for channel members. DESCRIPTION
#!/usr/bin/env perl use strict; use warnings; use IRC::Utils qw(parse_user); use POE; use POE::Component::Client::DNS; use POE::Component::IRC::State; use POE::Component::IRC::Plugin::AutoJoin; use POE::Component::IRC::Plugin::BotCommand; POE::Session->create( package_states => [ main => [ qw(_start irc_botcmd_resolve dns_response) ] ], ); $poe_kernel->run(); sub _start { my $heap = $_[HEAP]; my $irc = POE::Component::IRC::State->spawn( Nick => 'resolver_bot', Server => 'irc.freenode.net', ); $heap->{irc} = $irc; $irc->plugin_add('AutoJoin', POE::Component::IRC::Plugin::AutoJoin->new( Channels => [ '#test_channel1', '#test_channel2' ] )); $irc->plugin_add('BotCommand', POE::Component::IRC::Plugin::BotCommand->new( Commands => { resolve => 'Usage: resolve <host>' } )); $heap->{dns} = POE::Component::Client::DNS->spawn(); $irc->yield(register => 'botcmd_resolve'); $irc->yield('connect'); return; } sub irc_botcmd_resolve { my $dns = $_[HEAP]->{dns}; my $nick = parse_user( $_[ARG0] ); my ($channel, $host) = @_[ARG1, ARG2]; my $res = $dns->resolve( event => 'dns_response', host => $host, context => { channel => $channel, nick => $nick, }, ); $poe_kernel->yield(dns_response => $res) if $res; return; } sub dns_response { my $irc = $_[HEAP]->{irc}; my $res = $_[ARG0]; my @answers = $res->{response} ? map { $_->rdatastr } $res->{response}->answer() : (); $irc->yield( 'privmsg', $res->{context}->{channel}, $res->{context}->{nick} . (@answers ? ": @answers" : ': no answers for "' . $res->{host} . '"') ); return; } AUTHOR
Hinrik Oern Sigur`sson, hinrik.sig@gmail.com perl v5.14.2 2011-12-07 POE::Component::IRC::Cookbook::Resolver(3pm)
Man Page