[project @ 2005-07-07 23:51:52 by unknown_lamer]
[clinton/bobotpp.git] / NEWS
CommitLineData
91dddabd 1(-*- text -*-)
2User Visible Changes In Bobot++
be3612f3 3
91dddabd 4IMPORTANT NOTES:
5 As of version 1.98 unknown_lamer is the new maintainer. Also as of
6 version 1.98, you must have Guile 1.5.6+ or 1.6.x in order to
7 compile scripting support.
be3612f3 8
9=====================================================================
10====== The News =====================================================
11=====================================================================
2e20c3e1 12
81e08cc0 13Version 2.1.9:
ae97d6ec 14- Scripting
528799bd 15 + Hooks
16 * hooks/disconnect now takes an additonal argument that specifies
17 whether the disconnect was intentional or not.
18 * Added hooks/send/who
19 * Added hooks/send/whois
ae97d6ec 20 + The deprecated scripting procedure and hook names are now in a
21 `begin-deprecated' block. If your guile is built without
22 deprecated feature support, they will not be available.
528799bd 23 + Renamed Functions
24 * bot:send-ctcp was renamed to bot:ctcp
25 * bot:send-ctcp-reply was renamed to bot:ctcp-reply
26 + New Functions
27 * bot:who (send WHO request)
28 * bot:whois (send WHOIS request)
29 + New Constants
30 * bot:shit/none, bot:shit/no-op, bot:shit/no-join,
31 bot:shit/no-deban shit list constants
ae97d6ec 32- Documention
33 + Reorganized a few sections
34 + Every hook is now documented
e45daca1 35 + Using bot section is now much more usable
9b2fe824 36 + Every config file is now documented
ae97d6ec 37- The code was cleaned up a bit
81e08cc0 38
af8c61fe 39Version 2.1.8:
5aec4622 40- Scripting
41 + Hooks
42 * Added bot:protection/[none|ban|kick|deop] and bot:aop/[yes|no]
43 constants to the Scheme scripting interface
44 * hooks/timer argument is now zero padded instead of space padded
45 (e.g. "11:01" instead of "11: 1")
46 * hooks/disconnect is now called when the bot is disconnected from the
47 server unintentionally (network connection timeout, server died,
48 etc.)
c7d8cfb9 49 * hooks/action is now passed the user's nick instead of the full
50 address like all other hooks
5aec4622 51 + Message Sending
52 * Implemented bot:notice
4cc479d8 53 * bot:msg and bot:say may both send to channels and users (instead
54 of bot:msg for users and bot:say for channels)
672b7d4e 55 * Renamed bot:send-CTCP to bot:send-ctcp
56 * Added bot:send-ctcp-reply to send a ctcp-reply
d56bdd22 57 + Misc
58 * Added (bobotpp bot) module that modules may use to gain access
59 to the bobot++ functions
606a8eec 60 + Debugging
d56bdd22 61 * The debugging evaluator is now enabled when --debug is passed to
62 the bot
528799bd 63 * New command line option: --debug-scripts enables the debugging
4da877a5 64 evaluator while running everything else normally
d56bdd22 65 * Merged error handling patch from Dale Smith. This adds detailed
ac18ad3d 66 errors and backtraces when --debug/--debug-scripts is passed to
67 Bobot++.
5c73c60a 68- Documentation
69 + Merged documentation patch from Dale Smith (thanks)
6b7614a8 70- Misc
71 + NOTICEs and PRIVMSGs are now sent correctly if they contain an
72 embedded newline
73 + Max nick length is now configurable via 'maxnicklength' option in
74 bot.conf (defaults to 9)
4679dc8b 75- The bot now builds with --disable-scripting again (this is my fault,
76 I haven't built without it in a long time)
5aec4622 77
af8c61fe 78
980ce0f4 79Version 2.1.7:
cf8ea873 80- Fixed a number of small bugs and corner cases
81- Should compile without warnings (GCC 3.4)
980ce0f4 82
2e18045a 83Version 2.1.6:
8db6cd17 84- The String class implementation has been redone and replaced by one
85 based on std::string (eventually String will be gone entirely, but
86 it a lot of work)
2e18045a 87- Patches from Jos Hulzink <josh@stack.nl> were applied which fix a
980ce0f4 88 few major bugs in the StringTokenizer (thanks)
2e18045a 89
c8f13c06 90Version 2.1.5: Cleanups
91- A DCC CHAT with the bot may now only be initiated if the user is a
92 Friend of the bot
93- Implemented bot:ctcp-quote
c7d9fb19 94- The Bot Configuration section of the manual has been completed.
a6339323 95- Fixed a potential (but unlikely) buffer overflow in Utils::strToTime
96 (if there were more than 512 digits in part of the string form of
97 the time the buffer would overflow)
6b59e728 98- Misc. Bugfixes
c7d9fb19 99
4edefeb6 100Version 2.1.4: DCC Support Enhancements
101- Internal Change: DCCConnection is now an abstract class
102- Internal Change: DCCChatConnection provides the functionality of
103 the old DCCConnection so that DCC FILE support can be added
104- New Scheme Procedure: (bot:sent-to-me? message), checks to see if a
105 message was addressed to the bot. This is better than using
106 bot:match-to-me because the hook will continue to function if the
107 bot's nick changes. The only downside to using it is that there may
108 be an increased overhead of calling more hooks than could be called,
109 but that shouldn't be much of a problem.
110- New Scheme Procedure: (bot:change-command-level command level),
111 changes the level a user command to allow a user of `level' level or
112 above to run it.
113
e171dcce 114Version 2.1.3: Something
115- The flood rate can now be set using !setfloodrate INTEGER. The
116default is two messages per second before the bot will ignore
5c73c60a 117you. (thanks to Björn Gustavsson for requesting this)
4edefeb6 118- The flood rate may also be set from Scheme using (bot:setfloodrate
119integer)
120- A very large crash bug has been fixed. Previously, if an undefined
121command was called, any attempts to call a subsequent command would
122cause the bot to crash. Now the bot doesn't crash.
e171dcce 123
feb33b96 124Version 2.1.2: Llama
125
126- match-to-me and match-not-channel are now bot:match-to-me and
127 bot:match-not-channel. Just use perl -pi -e
128 "s/match-to-me/bot:match-to-me" SCRIPTS (change to match-not-channel
129 for match-not-channel).
ce02032f 130- Each script is now loaded into its own module so namespace clashes
131 should no longer occur
132- New procedure: (bot:load-module INTERFACE-SPEC) will load a "bot
133 module" with the specified INTERFACE-SPEC (e.g. (foo bar)). A bot
134 module is the same as a system module except that you don't use
135 define-module to define it. The %bot:loadpath is searched for
136 INTERFACE-SPEC (when converted to a string) with an extension in
137 %bot:load-extensions. E.g. (foo bar) becomes "foo/bar".
138- New procedure: (bot:use-module INTERFACE-SPEC) is the same as
139 bot:load-module except it will make the exported bindings from
140 INTERFACE-SPEC available in the current-module.
8be9b70e 141- Updated example bot and new example scripts included with the bot.
feb33b96 142
fd7440f1 143Version 2.1.1: foom
feb33b96 144
145- Host masks are now case insensitive when matched. At least one other
146 person thought this was a good idea since IRC is case preserving but
147 not case sensitive.
fd7440f1 148- You can now "name" a hook using an extra arg to bot:addhook. This
149 name can be used to have multiple hooks of the same type with the
150 same regexp. The default name is "DEFAULT" so don't use that as the
151 name for your hooks.
fd7440f1 152- Logging now works again (oops, I didn't realize I broke it until I
153 started to work on DCC).
0b7a49e2 154- DCC CHAT now "works." You can connect to the bot and talk to to it
155 and use Scheme hooks to talk to the user.
156- New hooks: hooks/dcc/chat-begin and hooks/dcc/chat-message. These
157 are called when a new DCC Chat begin and when the user sends a
158 message.
159- New Function: bot:dcc-chat-send TO MESSAGE, sends a MESSAGE to the
160 person at address TO
fed59248 161- New hooks: hooks/send/... where ... is one of action, ctcp, public,
162 or message. These are triggered when the bot does an
163 ACTION, sends a CTCP (_not_ a ctcp-reply), sends a PRIVMSG to a
164 channel, or sends a PRIVMSG to another user, respectively. There
165 will be more send hooks added later.
6530edbf 166- New hooks: hooks/dcc/chat-begin and
167 hooks/dcc/chat-message. chat-begin is called when the chat starts
168 and has one argument: the address (in user!nick@host
169 format). chat-message has two arguments: from (user!nick@host) and
170 message, which is the raw message (since there is no real protocol
171 for DCC). chat-start hooks are matched against the address and
172 chat-message hooks are matched against the text "ADDRESS MESSAGE"
173 where ADDRESS is the sender's address and MESSAGE is the message.
fd7440f1 174
e07b6b46 175Version 2.1.0: Zug Zug
ad529fde 176- Hooks can now be fallthrough or non fallthrough. You can set a hooks
177 priority and whether or not it falls through (i.e. continues hook
178 matching after it has been executed) using two optional args to
179 (bot-addhook). The new args are pri (integer priority) and fallthru
180 (#t or #f) and are at the end. Higher priority hooks are executed
181 before lower priority hooks, and fallthrough hooks are executed
182 before non-fallthrough hooks.
183- The default config is read from ~/.bobotpp/config/default/ or
184 /etc/bobotpp/default/ if the user config is not found. Put your
c7d9fb19 185 default config in either dir. You may also specify a specific config
ad529fde 186 under these dirs using the --config or -c arg to bobotpp (see
187 bobotpp --help for the full list of commands you may use and how to
188 use them).
189- Scripts are now stored in ~/.bobotpp/scripts/ or
ce02032f 190 PREFIX/share/bobotpp/scripts/ (where PREFIX is /usr/local unless you
ad529fde 191 changed it with the --prefix arg to configure). The new function
192 bot-load will take a filename and load it from these dirs, returning
193 #t if the file was loaded and #f if it wasn't. You can modify the
194 search list by appending to %bot-loadpath.
195- bobot-utils.scm is now autoloaded, so you don't need to
196 load it if you want to use its functions.
439869bf 197- Logs are now in ~/.bobotpp/logs/
91dddabd 198- bot-* procedures in Scheme are now bot:*. The old bot-* functions
439869bf 199 are defined as aliases in bobot-utils.scm
e07b6b46 200- You can now use lambda's for new commands (oops, I wasn't protecting
201 the objects from garbage collection)
ad529fde 202
203
2e20c3e1 204Version 2.0: Stable release / CVS merges
205- Merged stuff from Etienne Bernard's dev tree that he was working on
206 before I took over (not much)
207- bot-adduser and bot-addshit now work from Scheme
208
209Version 1.99: Configure joy
210- You can now disable scripting using --disable-scripting or
211 --enable-scripting=no
212- Crypt can also be disabled with --disable-crypt or --enable-crypt=no
213- Old hooks behavior has been restored (new hooks are added to the end
214 of the hooks list and processing does not stop at the first matched
215 hook). The hook behavior will change radically in 2.1.
216
217Version 1.98: Unknown_lamer made a large number of changes
218- Code is now ISO C++ and compiles with GCC 3.1
219- Converted makefile system to use automake
220- configure.ac now requires autoconf 2.50 (this is only a problem if
221 you modify it, but I should be the only one doing that)
222- Transition to new Guile 1.6 API has begun
223- Scripting must always be enabled for now (known "bug")
224- first hook of a given type to match is the only hook executed, all
225 others are ignored. Note that the last hook to be registered is the
226 first in the list!
227
228
229Version 1.97: lots of changes, especially guile's scripting support, which
230 is not yet documented. See in the scripts/ directory for
231 examples, and in Interp.C (the Startup() function) for the
232 list of all available commands.
233
234Version 1.30: Syntax change for "channel =" in bot.conf. See examples/bot.conf.
235 Rewrite of ident/password system. Should be more secure and
236 flexible.