X-Git-Url: http://git.hcoop.net/clinton/bobotpp.git/blobdiff_plain/be3612f33d41b674712ab93a6f92e96e535a05ce..2d3af8a42df517d90041e89726e86931a5cf2bd6:/NEWS diff --git a/NEWS b/NEWS index 0d44e29..da4d5c7 100644 --- a/NEWS +++ b/NEWS @@ -1,19 +1,219 @@ -====================================================================== -====== This is a -*- text -*- file and =============================== -====== User Visible Changes In Bobot++ =============================== -====================================================================== - -IMPORTANT NOTE: -+====================================================================+ -| As of version 1.98 unknown_lamer is the new maintainer. | -| Also as of version 1.98, you must have Guile 1.5.6+ or 1.6.x in | -| order to compile scripting support. | -+====================================================================+ +(-*- text -*-) +User Visible Changes In Bobot++ + +IMPORTANT NOTES: + As of version 1.98 unknown_lamer is the new maintainer. Also as of + version 1.98, you must have Guile 1.5.6+ or 1.6.x in order to + compile scripting support. + + As of version 2.2.0 no new updates are promised. I am splitting out + the Parser and a few other well written bits and using them from + Scheme to implement most of the Bobot++ functionality in pure + Scheme. The time spent maintaining this not terribly good C++ (a + good bit of which is my fault due to my inexperience when I began + maintaing Bobot++) is a waste to me now. I would rather be hacking + on a Lisp program instead. + + I will still accept patches, and may fix bugs if I have time (and + people report them). I may finish the manual since the scripting + section is all that remains, and that will apply to the new bot as + well. ===================================================================== ====== The News ===================================================== ===================================================================== +Version 2.3.0: + +Version 2.2.3 (2008-11-12): +- Building with Guile in a non-standard location now works +- Building without Guile now works again +- Building with GCC 4.x now works + + GCC prior to 4.x's libc headers exported the libc symbols from + both :: and std:: leading to a few unqualified libc calls sneaking + into Bobot++'s source +- All uses of the long deprecated GH API have been removed + + Building against libguile 1.8 built with --disable-deprecated now + works + + Building against Guile 1.6 likely no longer works + + However, building against guile-vm libguile does work and Bobot++ + is the first application built this way +- This will be the last of the 2.2.x series; a 2.3.x series /might/ be + started to enhance the scripting interface and finish the manual + +Version 2.2.2 (2006-06-28): +- No longer segfaults when loading bobot-utils.scm +- bot:match-to-me produces a valid regexp again +- scripts/uname now properly uses (ice-9 rdelim) instead of redelim +- bot:load now loads files properly + +Version 2.2.1 (2006-06-28): +- If the log directory does not exist the bot creates it +- If there are lines with only whitespace on them in the config file + and error message is no longer printed to the log + +Version 2.2.0 (2006-05-24): +- Scripting + + Hooks + * hooks/disconnect now takes an additonal argument that specifies + whether the disconnect was intentional or not. + * Added hooks/send/who + * Added hooks/send/whois + + The deprecated scripting procedure and hook names are now in a + `begin-deprecated' block. If your guile is built without + deprecated feature support, they will not be available. + + Renamed Functions + * bot:send-ctcp was renamed to bot:ctcp + * bot:send-ctcp-reply was renamed to bot:ctcp-reply + + New Functions + * bot:who (send WHO request) + * bot:whois (send WHOIS request) + + New Constants + * bot:shit/none, bot:shit/no-op, bot:shit/no-join, + bot:shit/no-deban shit list constants +- Documention + + Reorganized a few sections + + Every hook is now documented + + Using bot section is now much more usable + + Every config file is now documented +- The code was cleaned up a bit + +Version 2.1.8: +- Scripting + + Hooks + * Added bot:protection/[none|ban|kick|deop] and bot:aop/[yes|no] + constants to the Scheme scripting interface + * hooks/timer argument is now zero padded instead of space padded + (e.g. "11:01" instead of "11: 1") + * hooks/disconnect is now called when the bot is disconnected from the + server unintentionally (network connection timeout, server died, + etc.) + * hooks/action is now passed the user's nick instead of the full + address like all other hooks + + Message Sending + * Implemented bot:notice + * bot:msg and bot:say may both send to channels and users (instead + of bot:msg for users and bot:say for channels) + * Renamed bot:send-CTCP to bot:send-ctcp + * Added bot:send-ctcp-reply to send a ctcp-reply + + Misc + * Added (bobotpp bot) module that modules may use to gain access + to the bobot++ functions + + Debugging + * The debugging evaluator is now enabled when --debug is passed to + the bot + * New command line option: --debug-scripts enables the debugging + evaluator while running everything else normally + * Merged error handling patch from Dale Smith. This adds detailed + errors and backtraces when --debug/--debug-scripts is passed to + Bobot++. +- Documentation + + Merged documentation patch from Dale Smith (thanks) +- Misc + + NOTICEs and PRIVMSGs are now sent correctly if they contain an + embedded newline + + Max nick length is now configurable via 'maxnicklength' option in + bot.conf (defaults to 9) +- The bot now builds with --disable-scripting again (this is my fault, + I haven't built without it in a long time) + + +Version 2.1.7: +- Fixed a number of small bugs and corner cases +- Should compile without warnings (GCC 3.4) + +Version 2.1.6: +- The String class implementation has been redone and replaced by one + based on std::string (eventually String will be gone entirely, but + it a lot of work) +- Patches from Jos Hulzink were applied which fix a + few major bugs in the StringTokenizer (thanks) + +Version 2.1.5: Cleanups +- A DCC CHAT with the bot may now only be initiated if the user is a + Friend of the bot +- Implemented bot:ctcp-quote +- The Bot Configuration section of the manual has been completed. +- Fixed a potential (but unlikely) buffer overflow in Utils::strToTime + (if there were more than 512 digits in part of the string form of + the time the buffer would overflow) +- Misc. Bugfixes + +Version 2.1.4: DCC Support Enhancements +- Internal Change: DCCConnection is now an abstract class +- Internal Change: DCCChatConnection provides the functionality of + the old DCCConnection so that DCC FILE support can be added +- New Scheme Procedure: (bot:sent-to-me? message), checks to see if a + message was addressed to the bot. This is better than using + bot:match-to-me because the hook will continue to function if the + bot's nick changes. The only downside to using it is that there may + be an increased overhead of calling more hooks than could be called, + but that shouldn't be much of a problem. +- New Scheme Procedure: (bot:change-command-level command level), + changes the level a user command to allow a user of `level' level or + above to run it. + +Version 2.1.3: Something +- The flood rate can now be set using !setfloodrate INTEGER. The +default is two messages per second before the bot will ignore +you. (thanks to Björn Gustavsson for requesting this) +- The flood rate may also be set from Scheme using (bot:setfloodrate +integer) +- A very large crash bug has been fixed. Previously, if an undefined +command was called, any attempts to call a subsequent command would +cause the bot to crash. Now the bot doesn't crash. + +Version 2.1.2: Llama + +- match-to-me and match-not-channel are now bot:match-to-me and + bot:match-not-channel. Just use perl -pi -e + "s/match-to-me/bot:match-to-me" SCRIPTS (change to match-not-channel + for match-not-channel). +- Each script is now loaded into its own module so namespace clashes + should no longer occur +- New procedure: (bot:load-module INTERFACE-SPEC) will load a "bot + module" with the specified INTERFACE-SPEC (e.g. (foo bar)). A bot + module is the same as a system module except that you don't use + define-module to define it. The %bot:loadpath is searched for + INTERFACE-SPEC (when converted to a string) with an extension in + %bot:load-extensions. E.g. (foo bar) becomes "foo/bar". +- New procedure: (bot:use-module INTERFACE-SPEC) is the same as + bot:load-module except it will make the exported bindings from + INTERFACE-SPEC available in the current-module. +- Updated example bot and new example scripts included with the bot. + +Version 2.1.1: foom + +- Host masks are now case insensitive when matched. At least one other + person thought this was a good idea since IRC is case preserving but + not case sensitive. +- You can now "name" a hook using an extra arg to bot:addhook. This + name can be used to have multiple hooks of the same type with the + same regexp. The default name is "DEFAULT" so don't use that as the + name for your hooks. +- Logging now works again (oops, I didn't realize I broke it until I + started to work on DCC). +- DCC CHAT now "works." You can connect to the bot and talk to to it + and use Scheme hooks to talk to the user. +- New hooks: hooks/dcc/chat-begin and hooks/dcc/chat-message. These + are called when a new DCC Chat begin and when the user sends a + message. +- New Function: bot:dcc-chat-send TO MESSAGE, sends a MESSAGE to the + person at address TO +- New hooks: hooks/send/... where ... is one of action, ctcp, public, + or message. These are triggered when the bot does an + ACTION, sends a CTCP (_not_ a ctcp-reply), sends a PRIVMSG to a + channel, or sends a PRIVMSG to another user, respectively. There + will be more send hooks added later. +- New hooks: hooks/dcc/chat-begin and + hooks/dcc/chat-message. chat-begin is called when the chat starts + and has one argument: the address (in user!nick@host + format). chat-message has two arguments: from (user!nick@host) and + message, which is the raw message (since there is no real protocol + for DCC). chat-start hooks are matched against the address and + chat-message hooks are matched against the text "ADDRESS MESSAGE" + where ADDRESS is the sender's address and MESSAGE is the message. + Version 2.1.0: Zug Zug - Hooks can now be fallthrough or non fallthrough. You can set a hooks priority and whether or not it falls through (i.e. continues hook @@ -24,12 +224,12 @@ Version 2.1.0: Zug Zug before non-fallthrough hooks. - The default config is read from ~/.bobotpp/config/default/ or /etc/bobotpp/default/ if the user config is not found. Put your - default config is either dir. You may also specify a specific config + default config in either dir. You may also specify a specific config under these dirs using the --config or -c arg to bobotpp (see bobotpp --help for the full list of commands you may use and how to use them). - Scripts are now stored in ~/.bobotpp/scripts/ or - PREFIX/bobotpp/scripts/ (where PREFIX is /usr/local unless you + PREFIX/share/bobotpp/scripts/ (where PREFIX is /usr/local unless you changed it with the --prefix arg to configure). The new function bot-load will take a filename and load it from these dirs, returning #t if the file was loaded and #f if it wasn't. You can modify the @@ -37,7 +237,7 @@ Version 2.1.0: Zug Zug - bobot-utils.scm is now autoloaded, so you don't need to load it if you want to use its functions. - Logs are now in ~/.bobotpp/logs/ -- bot-* procedures in Scheme are now bot:*. The onl bot-* functions +- bot-* procedures in Scheme are now bot:*. The old bot-* functions are defined as aliases in bobot-utils.scm - You can now use lambda's for new commands (oops, I wasn't protecting the objects from garbage collection)