X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=ChangeLog;h=069742397c5366c084317b51b775aaf66f5fd7b6;hb=420969ad2211b136140871203185ae8aeba945d1;hp=ababc59d6ac1fe9a1c0c35eae418dcfebd4a0e06;hpb=3fb12ca2c704d18d434b417d549122325e78225d;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/ChangeLog b/ChangeLog index ababc59d..06974239 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,141 @@ +2007-04-12 Giuseppe Bilotta + + * Basic class extensions: Module#define_structure() method. Syntax: + define_structure :SomeName, :attr_a, :attr_b + is equivalent to + SomeName = Struct.new("SomeName", :attr_a, :attr_b) + except that the new Struct is not created if it already exists and the + attributes list is the same. + +2007-03-31 Dmitry Kim + + * HttpUtil: major rework. get_response() method now respects + caching (can be turned off via options) and supports different HTTP + methods (GET (default), HEAD and POST) and ranged requests. get() and + head() methods are now just a thin wrappers around get_request(). + Semantics for user-supplied &block has been made consistent across + these methods. + * HttpUtil: get_cached() method has been removed (obsoleted by new + get()). post() method has been added. get_partial() method for ranged + requests has been added. Net::HTTPResponse partial_body() method has + been removed (mostly because it won't play well with future HTTP + encodings support), please use get_partial() or get_request() instead. + * Utils: http_get() method has been removed (long obsoleted by + HttpUtil) + * different plugins: modified to accomodate for HttpUtil changes. + +2007-03-24 Giuseppe Bilotta + + * HttpUtil: new get_response method to follow redirects and get an + Net::HTTPResponse object with an open connection, allowing partial + body retrieval. + * HttpUtil: extend Net::HTTPResponse with a #partial_body() method. The + method take an argument (max bytes to download) and an optional block; + the method yields all the partial content that it's being downloaded, + instead of the single chunks yield by #read_body(). + * url plugin: use the new HttpUtil methods. + * url plugin: do not block while trying to get link info. + +2007-03-14 Giuseppe Bilotta + + * Socket filtering: socket data, both input and output, can now be + filtered. This is used for example to transcode all input and output + so that messages are internally managed as UTF-8. By default, the bot + will try cp1252 (Windows Western European) encoding for non-UTF-8 + strings. Thanks to jsn (Dmitry Kim ). + +2007-03-10 Giuseppe Bilotta + + * IRC settings: ability to change the IRC name for the bot. Thanks to + jsn (Dmitry Kim ). + * Plugin: allow customization of the plugin load path. Thanks to + jsn (Dmitry Kim ). + +2007-02-20 Giuseppe Bilotta + + * Timers: failing timer actions don't prevent the global timer ticker + from functioning properly. + * Shiritori plugin: new word game, contributed by Yaohan Chen + . People take turns to continue a chain of + words by saying words that begin with the final letter(s) of the + previous word. + * IRC messages are not UTF-8: Most of the string processing across + rbot is done against IRC messages, which do not have a well-defined + encoding. Although many clients are now using UTF-8, there is no + guarantee that an arbitrary string received from IRC will be UTF-8 + encoded. We have to force ASCII (byte-wise/charset agnostic) matching + because otherwise some strings can give problems: in particular, for + example, the bytesequence "\340\350\354\362\371" (that is the aeiou + vowels, each with a grave accent) will cause the string to be + considered up to the "\354" (i with grave accent) only: so either the + rest of the message is ignored, or the matching fails. + +2007-02-18 Giuseppe Bilotta + + * Plugin: Provide a plugin.header file with boilerplate plugin + title/author/copyright/license information. Authors of new plugins are + encouraged to use it. Many existing plugins have been changed to + follow the same spec. + * NickServ plugin: delegate #identified() to other plugins after + successfull identification. Also provide #identified?() method to test + if the bot has successfully identified. Not perfect yet (gets reset + after a rescan.) + +2007-02-15 Giuseppe Bilotta + + * 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 + + * Remote Service Provider: from an idea by halorgium , + 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 + + * Languages: Japanese support with language files, salutations, larts + and praises, thanks to hagabaka (Yaohan Chen ) + +2007-02-05 Giuseppe Bilotta + + * 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 ) + + 2007-02-03 Giuseppe Bilotta * Plugin message mapper: Enhancements to the :requirements option.