poe::component::irc::cookbook::basicbot(3pm) debian man page | unix.com

Man Page: poe::component::irc::cookbook::basicbot

Operating Environment: debian

Section: 3pm

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

NAME
POE::Component::IRC::Cookbook::BasicBot - A basic IRC bot
SYNOPSIS
This a very basic bot that connects to IRC, joins a few channels, and announces its arrival.
DESCRIPTION
We start off quite simply: #!/usr/bin/env perl use strict; use warnings; Then we "use" the stuff we're going to...well, use. "::State" is a subclass which keeps track of state information related to channels and nicknames. It is needed by the "AutoJoin" plugin which takes care of keeping us on our channels. use POE; use POE::Component::IRC::State; use POE::Component::IRC::Plugin::AutoJoin; Next up is our POE session. We create it and list our event handlers. We then start the POE kernel. POE::Session->create( package_states => [ main => [ qw(_start irc_join) ] ] ); $poe_kernel->run(); Now all we have to do is write the handlers for "_start" and "irc_join". In "_start", we create our IRC component, add an "AutoJoin" plugin, register for the "irc_join" event, and connect to the IRC server. sub _start { my $irc = POE::Component::IRC::State->spawn( Nick => 'basic_bot', Server => 'irc.freenode.net', ); $irc->plugin_add('AutoJoin', POE::Component::IRC::Plugin::AutoJoin->new( Channels => [ '#test_channel1', '#test_channel2' ] )); $irc->yield(register => 'join'); $irc->yield('connect'); } Now comes our "irc_join" event handler. We send a message to the channel once we've joined it. sub irc_join { my $nick = (split /!/, $_[ARG0])[0]; my $channel = $_[ARG1]; my $irc = $_[SENDER]->get_heap(); # only send the message if we were the one joining if ($nick eq $irc->nick_name()) { $irc->yield(privmsg => $channel, 'Hi everybody!'); } } That's it!
AUTHOR
Hinrik Oern Sigur`sson, hinrik.sig@gmail.com perl v5.14.2 2011-12-07 POE::Component::IRC::Cookbook::BasicBot(3pm)
Related Man Pages
poe::component::irc::cookbook(3pm) - debian
poe::component::irc::plugin::autojoin(3pm) - debian
poe::component::irc::plugin::console(3pm) - debian
poe::component::irc::plugin::cycleempty(3pm) - debian
poe::component::irc::plugin::proxy(3pm) - debian
Similar Topics in the Unix Linux Community
Where is Mozilla IRC Client on SuSE?
Epona 1.5rc3 (Default branch)
eggdrop 1.6.19 (Stable branch)
JerkLib 0.7r811 (Default branch)
ctrlproxy 3.0.7 (Default branch)