+2007-01-30 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+ * New IRC Framework: Server methods to retrieve a Channel or User are
+ now more robust to empty or nil nicks and channel names passed as
+ parameters.
+
+2007-01-29 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+ * Timer rescheduling: it is now possible to reschedule the period
+ any particular Action is taken by issuing the command
+ @bot.timer.reschedule(handle, new_period)
+ where +handle+ is a timer handle returned by the @bot.timer.add() that
+ created the action, and new_period is the new period for the Action.
+
+2007-01-23 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+ * Reduced saving: the salut, lart, and quotes plugin now only save
+ their datafiles if anything changed since last time. This speeds up
+ operations such as saving and rescanning; it also allow hand-editing
+ of the data files while the bot is running, since a rescan will load
+ the changed data files without overwriting them with a useless save
+ before. Of course this only works if there are no pending changes in
+ the running bot.
+
+2007-01-12 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+ * Server timeout: rework the server timeout code. Instead of PINGing
+ the server unconditionally every server.ping_timeout seconds, we only
+ PING it if we don't receive anything in the user-chosen timeout (lazy
+ PING). The code rewrite also seems to have fixed the "bot stalling
+ doing nothing" problem, which seemed to have been a consequence of
+ @socket.select not having a timeout.
+
+2006-11-01 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+ * SSL support: patch from Robin H. Johnson <robbat2@gentoo.org>
+
+2006-10-28 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+ * A-Z game: try to guess the word the bot is thinking of: every miss
+ helps by reducing the range of allowed words, until it's so small
+ around the correct one that you can't miss it.
+
+2006-10-27 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+ * Flood protection: first attempt at penalty-based flood protection.
+ This should make rbot much less prone to Excess Floods *and* still
+ serve normally without excessive delays.
+
+2006-10-25 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+ * HttpUtil: Strings returned by get_cached now have a cached? method
+ which returns true or false depending on whether the result was taken
+ from the cache or not; this can be exploited by plugins that parse the
+ result in some particular way, since they can now skip the parsing
+ stage if they cache the parse result.
+
+2006-10-24 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+ * HttpUtil: initial implementation of proper caching based on
+ last-modified and etag HTTP headers
+
+2006-10-17 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+ * Salut plugin: handles (multilingual) salutations (hello/goodbye)
+
+2006-10-15 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+ * Language stuff: plugins can now handle language changes in a natural
+ fashion. lart is the first plugin to make use of this. NOTE: this
+ is not (yet) backwards compatible: the old larts/praises files from
+ previous rbot setups have to be renamed manually
+ * Language stuff: italian translations
+ * Utils.safe_save(filename): allows 'safe' saving of a file: it needs a
+ block, to which it will yield a temporary file on which operations can
+ be carried out. When the block returns, the tempfile will be renamed to
+ the given filename
+
+2006-09-21 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+ * New Auth Framework: restore backwards compatibility: 'auth
+ <masterpassword>' and 'login owner <masterpassword>' both work.
+ * Topic plugin: cleanups. Implement 'topic undo'. 'topic undo' after a
+ 'topic undo' undoes the last undo.
+
+2006-09-09 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+ * New Auth Framework: rbot was opping anyone who asked for it (opme
+ plugin). Fixed, and cleaned up.
+
+2006-09-01 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+ * New Auth Framework: document and fine tune permissions view the auth
+ core botmodule.
+ * Version: when run from a svn checkout, the bot now tries to report
+ which svn revision it's at, and if there are local changes
+
+2006-08-31 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+ * Nickserv plugin: bot will now try to inform nickserv when password
+ is changed. Moreover it's not necessary to specify the nick anymore if
+ you want to change the password for the current bot nick. Also do some
+ internal cleanups while we're at it.
+
+2006-08-29 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+ * Script plugin: new (UNSAFE!) echo functions. Just like eval, but
+ m.replies the result of the evaluation.
+ * New Auth Framework: config keys now have their own permissions. So
+ you can allow people to view or edit only some of the config values.
+ auth.password defaults to false. Still needs some work.
+
+2006-08-26 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+ * Plugin message mapper: new implementation. Multi-word parameters now
+ need not be the last, and it is possible to retrieve the entire
+ substring with preserved whitespace by using to_s. Also, parts of the
+ map string can be bracketed to make them optional. Examples:
+ remind :user [about] *stuff
+ will respond to
+ remind me about washing my teeth
+ and also to
+ remind me washing my teeth
+ It is possible to have parameters in brackets, in which case they will
+ be optional too, and default to nil or [] (resp. single- and
+ multi-word parameters) unless an alternative is provided in the
+ :defaults hash for the message map options.
+ * Script plugin: new (UNSAFE!) eval function. Not documented in help.
+ Not permitted by default.
+
+2006-08-25 Mark Kretschmann <markey@web.de>
+
+ * Added quiz plugin, a multiplayer trivia quiz game.
+
+2006-08-20 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+ * Topic plugin: fix a bug that prevented it from loading
+ correctly.
+ * New IRC Framework: make sure that NOTICEs and PRIVMSGs do not
+ raise an exception when the target is in one of the special forms
+ #<mask> or $<mask>. Needs some work, though, since this case should be
+ handled specifically.
+
+2006-08-17 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+ * Fix help: It got broken while rearranging the plugin stuff, now it's
+ properly fixed.
+ * New Auth Framework: forgot to create the InvalidPassword exception.
+ It's a RuntimeError now.
+ * Fix help: this time for real (or so I hope).
+ * New IRC Framework: topic plugin now works correctly.
+ * New Auth Framework: nickserv plugin now defaults to false for its
+ auth, so that only owner can do stuff with it
+ * New Auth Framework: fix horrible typo, assignment instead of
+ equality test when checking for the username during login.
+ * Keywords plugin: tell and forget work again without 'keyword' before
+ them.
+
+2006-08-12 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+ * Subregistry: force prefix to be a String with to_s
+
+2006-08-11 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+ * AutoOp plugin: adapted to the new IRC framework.
+ * AutoOp plugin: trigger autoop on nick change too.
+ * New Auth Framework: allow? method now informs a user when they don't
+ have permission to do what they asked for.
+ * New nickreply and nickokay methods: they act like the old reply
+ method, but include the nick of the user the bot is replying to when
+ talking in public. The usual reply method can be configured to act
+ like this as default.
+
2006-08-10 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
* Fix a bug in new IRC Framework: the list of channels a quitting user was
on was not built correctly, causing an exception when the user was not
in the first channel in the list of channels.
* Fix a bug in new Auth Framework: BotUser's name is changed via
- username=, not name=
+ username=, not name=.
+ * New HalfLife 2 plugin from ocr: queries online servers for online
+ status and number of users.
2006-08-07 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>