]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blobdiff - ChangeLog
More Regexp madness. Fixes, optimizations, and a new method to parse channel lists
[user/henk/code/ruby/rbot.git] / ChangeLog
index 941bb6e3db6a42a6318d1c1ce201ef0096e8584e..5680f0dfa39ce5e7e32623888535f471f8b6d5ba 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,177 @@
+2007-02-15  Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+       * Plugin: new unreplied() method to handle PRIVMSGs which have not
+       been replied to.
+       * Regexp: more regexp madness. BasicUserMessage and derivate classes
+       now have a new method parse_channel_list() to parse list of channel
+       names.
+
+2007-02-12  Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+       * Remote Service Provider: from an idea by halorgium <rbot@spork.in>,
+       initial steps towards a DRb-based remote service provider for rbot.
+       When complete, it will give plugins the ability to listen to
+       'messages' from remote clients connected to the bot, allowing for such
+       things as svn notification without RSS polling, remote control of
+       the bot, or even (why not?) botnets.
+       * Remote Service Provider: BotModules can now include the
+       RemoteBotModule interface that provides them with the remote_map()
+       method that works just like the map() method, but for remote commands
+       * Remote Service Provider: Remote clients can now login remotely
+       before executing commands. This in fact integrates the remote access
+       auth security with the User/BotUser used on IRC itself.
+
+2007-02-08  Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+       * Languages: Japanese support with language files, salutations, larts
+       and praises, thanks to hagabaka (Yaohan Chen <yaohan.chen@gmail.com>)
+
+2007-02-05  Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+       * sendmsg improvements: the bot sendmsg() method and all the methods
+       that rely on it (say(), notice(), and message methods such as reply())
+       now accept an option hash to customize its behaviour.
+               * :newlines, which can be set to either :split or :join,
+               depending on whether newlines in messages should be used as
+               split-points, or should be be replaced by some string (defined
+               in the :join_with option)
+               * :max_lines, which determines the maximum number of lines to be
+               sent by each messages. Last line is truncated (see next
+               options). Set to nil to have no limits.
+               * :overlong, which determines the behaviour when overlong lines
+               are to be sent; possible values are :split or :truncate.
+               * If :overlong is set to :split, :split_at determines the
+               string/regexp to split at; default is /\s+/, other usual
+               choice could be /\s+\|\s+/.
+               * If :overlong is set to :split, the :purge_split option
+               determines whether the :split_at expression should be removed
+               from the next lines (defaults to true).
+               * If :overlong is set to :truncate, the value of the option
+               :truncate_text is replaced at the end of the truncated line
+       * LinkBot plugin: initial commit of a plugin to handle messages from
+       eggdrops and other bots that act as cross-network channel links.
+       Suggested by hagabaka (Yaohan Chen <yaohan.chen@gmail.com>)
+
+
+2007-02-03  Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+       * Plugin message mapper: Enhancements to the :requirements option.
+       When the requirement of a parameter is a regular expression with
+       capturing groups /(...)/, the corresponding map parameters will be
+       assigned (by default) the first non-nil capture instead of the whole
+       regular expression. If a specific capture group is desired instead,
+       the requirement should be in the form
+               [/some regexp/, integer_index_of_the_desired_group]
+       or in the form
+               {
+               :regexp => /some regexp/,
+               :index => integer_index_of_the_desired_group
+               }
+       and a nil index will still give the default behavior.
+       If you want the whole regular expression to be the matched parameter
+       value, there are three options: use an index of 0, wrap the whole
+       regular expression in a capturing group, or use non-capturing groups
+       /(?:...)/. The latter is preferred because it's much faster.
+       When exploiting the capturing groups feature, please try to remember
+       to use /\s+/ instead of plain spaces / /, unless it's absolutely
+       necessary to have single spaces.
+
+2007-02-02  Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+       * Plugin message mapper: Requirements (as set by the :requirements
+       hash) are now embedded in the regular expression matcher rather than
+       being cheked separately afterwards.
+
+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