brengo has asked for the wisdom of the Perl Monks concerning the following question:
My irc bot shall have the possibility to do things at a certain time. Users need to be able to set (show and delete) alarms and get spoken to at the desired time.
Working with Bot::BasicBot::Pluggable I had the idea of using alarms of a POE::Kernel session. Should I go with that idea or is there a simpler/better way to achieve my goal?
When calling run() on the BasicBot object, I don't get the POE object back in any way, to start another session (at least, I didn't see a way). Could you point me into the right direction? How can I start two POE sessions, where one of them is the BasicBot which handles the irc conversations and the other session just takes care about alarms?
Thanks for your help!
This is how the bot is started:#!/usr/bin/perl use Modern::Perl; use Bot::BasicBot::Pluggable; my $bot = Bot::BasicBot::Pluggable->new( channels => ["#bottest"], server => "irc.test.test", port => "6667", nick => "bot", ); $bot->load('MyModule'); $bot->run();
...and the module where the bot reacts to things said/done in irc looks like this (excerpt):
package Bot::BasicBot::Pluggable::Module::MyModule; use warnings; use strict; use base qw(Bot::BasicBot::Pluggable::Module); sub init { my $self = shift; $self->config( { sc => 2 } ); } sub help { return "Does wild things"; } sub admin { my ($self, $msg) = @_; my $who = $msg->{who}; my $body = $msg->{body}; my $channel = $msg->{channel}; my $address = $msg->{address}; # if($address) { # return "you talk to me"; # } # ... } 1;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: schedule alarms with POE and Bot::BasicBot::Pluggable ?
by Hinrik (Novice) on Jul 05, 2011 at 03:35 UTC | |
by brengo (Acolyte) on Jul 20, 2011 at 22:27 UTC |