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

Changes for version 0.6 - 2009-03-04

  • It's been.. uh.. 4 years. There are tickets in RT that simply don't apply to the current codebase. Personally, I never work on this module, use it for one small thing that never changes, and have started to really dislike programming in perl recently. Thus I'm just going to release trunk as-is. It's got a lot of changes. Things might break. Sorry. I dislike other people doing this, and I dislike _me_ doing this, but I see very few other options at this point.
  • I'm putting all the code in a github repository at
  • http://github.com/jerakeen/bot-basicbot-pluggable
  • if people want to actually track what goes on. Anyone want to take B::B::P over?
  • This is the "Morbus release". Why the "Morbus release"? Quite simply because he did everything you see below. You can chastise him for his ego at http://disobey.com/.
    • Revised documentation for Pluggable.pm and Module.pm.
    • Auth: Revised documentation, switched to admin() not said().
    • DNS: Revised documentation, switched to told() not said().
    • Google:
      • Revised documentation, switched to told() not said().
      • Removed deprecated Net::Google ie() and oe() methods.
      • Default language restriction set to just 'en'; removed 'fr'.
      • Removed explicit starts_at of 0, which is the default.
      • New option added: num_results (default: 3).
      • New option added: languages (default: en).
      • New option added: require_addressing (default: 1).
    • Join: Revised documentation, switched to told() not said().
    • Karma:
      • Revised documentation, switched to told() and seen().
      • Replaced fisher_yates with newer version from Perl 5.8.
      • Fixed a bunch of little nigglies here and there.
      • New option added: num_comments (default: 3).
      • New option added: show_givers (default: 1).
      • New option added: ignore_selfkarma (default: 1).
      • If only "karma", we assume $mess->{who} now.
      • Now understands "<botname>++" and "<botname>--";
    • Loader: Revised documentation, switched to told() not said().
    • Seen:
      • Revised documentation, switched to seen() and told().
      • Echoed $who is now what the user typed, not lc'd version.
      • New option added: allow_hiding (default: 1).
    • Title: Revised documentation, switched to admin() not said().
    • Vars:
      • Revised documentation, switched to told() not said().
      • Removed the check for the existence of $value on a !set. This check would fail whenever anyone tried to set the $value to 0, which makes perfect sense when you're trying to turn off a boolean'd feature. !unset doesn't work because that entirely deletes the $variable, which means it'll be reset to the default the next time the module is reloaded or the bot is restarted.
    • Revised documentation for Store.pm and Store/* modules.
    • Infobot:
      • Revised all the documentation, added more examples.
      • Removed the 'ask' option; it was never actually used.
      • Renamed option 'passive_ask' to 'passive_answer'. More sense.
      • Added a small but decent list of common stopwords.
      • New option: num_results (for "search for <term>"; default 20).
      • New option: require_question ("water?" or "water"; default 1).
      • Entirely removed the "literal $object" feature.
      • New option: min_length (minimum $object length; default 3).
      • New option: max_length (maximum $object length; default 25).
      • New option: unknown_responses (random list of "No clue." responses).
      • You can now replace facts with "no, $bot, $object is..." too.
      • $who in a factoid is now replaced by $mess->{who}.
      • Stopwords were NOT being stopped on word boundaries. Fixed.
      • "no, $bot, $object is also $fact" now works for appending.
      • Added handling of "my" as in "my cat is named chloe".

Documentation

A standard Bot::BasicBot::Pluggable script

Modules

extended simple IRC bot for pluggable modules
base module for all BasicBot plugins
authentication for Bot::BasicBot::Pluggable modules
DNS lookups for hostnames or IP addresses
searches Google for terms and spellings
infobot clone redone in B::B::P.
join and leave channels; remembers state
tracks karma for various concepts
loads and unloads bot modules; remembers state
track when and where people were seen
speaks the title of URLs mentioned
change internal module variables
base class for the back-end pluggable store
use DBI to provide a storage backend
use DBM::Deep to provide a storage backend
use Storable to provide a storage backend

Provides

in lib/Bot/BasicBot/Pluggable/Module/Base.pm