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