The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.112400 - 2011-08-27

  • API Change: The send_message method expects a hash ref rather than plain named parameters.
  • API Change: The send_reply method no longer allows a string to be passed, but requires a hash ref of named parameters.
  • API Change: The reply method of Bot::Backbone::Message now takes two arguments rather than just one. The first argument should be the service or bot object sending the message so that the send policies of that sender may be applied to the outgoing message. This may be something else entirely or undef, but a warning will be issued in that case.
  • There's a new extensible send policy framework for helping authors build bots that are prevented from doing really annoying things like being too chatty, repeating themselves too often, etc.
  • Send policies will be applied in all cases to chats, chat consumers, and dispatched responders automatically.
  • A new send_policy sugar method is available via Bot::Backbone to configure send policies.
  • Two send policy models are provided: (1) MinimumInterval to prevent general flooding and (2) MinimumRepeatInterval to prevent the bot from repeating itself.
  • Added a Responder service role to help in the process of building dispatched responders (i.e., most services a bot author is going to write up), which provides reasonable defaults for send_message/send_reply that will be subject to a send policy, if set.
  • ConsoleChat now has get_line and put_line methods to allow easier interaction with the terminal.
  • Bugfix: The respond sugar subroutine was completely unusable.
  • Bugfix: Previously, JabberChat would fail if a message was sent through it before the session was completely ready. Now a warning is issued instead.
  • Bugfix: JabberChat is no longer XMPP spewing debug output to STDOUT.
  • Bugfix: Group chats that start with the bots nick were being incorrectly picked up by the DirectChat service.
  • Bugfix: Sometimes Jabber servers send messages with no message. AnyEvent::XMPP passes these on for some reason. We ignore them now because they were causing the Bot::Backbone::Message constructor to craok.
  • Bugfix: A few documentation tweaks and other small fixes.

Modules

Extensible framework for building bots
Provides backbone services to your bot
Provides some group related help tools
Shared sugar methods for dispatch
Simple dispatching tool
Defines the predicate packages responsible for aiding dispatch
Describes an account sending or receiving a message
Describes a message or response
Metaclass attached to backbone bots
Metaclass role providing dispatcher setup helps
Metaclass attached to backbone bot services
Define policies to prevent flooding and other bot no-nos
Pull several send policies together
Prevent any message from being delivered too soon
Prevent any message from being repeated too often
Useful features for services
Chat with an interactive command line
A helper for doing direct chats
A helper chat for performing group chats
Connect and chat with a Jabber server
A chat service that is bolted on to bare metal
Chat services must implement this role
Role for services that listen for chat messages
Role for services that can perform dispatch
Chat services that can join a chat group
A role for services that respond to messages
Provides send policy framework to a service
Marks a service as one that may send messages
Role implemented by all bot services
The type library for Bot::Backbone

Provides

in lib/Bot/Backbone/Dispatcher/Predicate.pm
in lib/Bot/Backbone/Dispatcher/Predicate.pm
in lib/Bot/Backbone/Dispatcher/Predicate.pm
in lib/Bot/Backbone/Dispatcher/Predicate.pm
in lib/Bot/Backbone/Dispatcher/Predicate.pm
in lib/Bot/Backbone/Dispatcher/Predicate.pm
in lib/Bot/Backbone/Dispatcher/Predicate.pm
in lib/Bot/Backbone/Dispatcher/Predicate.pm
in lib/Bot/Backbone/Dispatcher/Predicate.pm
in lib/Bot/Backbone/Message.pm