[project @ 2005-01-08 06:24:08 by unknown_lamer]
[clinton/bobotpp.git] / ChangeLog
1 2005-01-08 Clinton Ebadi <clinton@unknownlamer.org>
2
3 * configure.ac: Add AC_LANG([C++]) so we can check for C++ libs
4 AC_CHECK_LIB ccgnu2 (CommonC++2)
5
6 * README: Updated README (reformatted, adding info, etc.)
7
8 2005-01-07 Clinton Ebadi <clinton@unknownlamer.org>
9
10 * source/BotConfig.C (set_option_value): call watcher list
11 (run_fun_): Added to support watcher list calling
12
13 2005-01-06 Clinton Ebadi <clinton@unknownlamer.org>
14
15 * source/BotConfig.C (set_option_value): Fuck you STL
16 (push_back_): Reimplemented so that it doesn't need std::bind1st
17 because the STL is being stupid
18
19 2004-12-26 Clinton Ebadi <clinton@unknownlamer.org>
20
21 * source/BotConfig.C (read_config): Implemented properly
22 (get_option_values): Implemented properly
23 (set_config_file): Fixed
24
25 2004-07-10 Clinton Ebadi <clinton@unknownlamer.org>
26
27 * bobot++.texinfo (Built-In Commands): Added empty stubs to the
28 list of commands
29
30 2004-06-22 Clinton Ebadi <clinton@unknownlamer.org>
31
32 * source/BotConfig.C: New file (implementation of configuration database)
33
34 * source/BotConfig.H: New File (semi-generic configuration database)
35
36 2004-06-17 Clinton Ebadi <clinton@unknownlamer.org>
37
38 * bobot++.texinfo (Starting the Bot): New section
39
40 2004-06-14 Clinton Ebadi <clinton@unknownlamer.org>
41
42 * bobot++.texinfo (Protection): Added Section
43 (User Levels): Rewrote section to be useful
44 (bot.users): Added section
45
46 2004-06-12 Clinton Ebadi <clinton@unknownlamer.org>
47
48 * source/DCCChatConnection.C (connect): Checks to make sure the
49 person initiating a DCC CHAT with the bot is at least a FRIEND of
50 the bot.
51
52 * README: Fixed a typo
53
54 * scripts/bobot-utils.scm (ctcp-quote): Implemented ctcp-quote
55 (bot:ctcp-quote): Renamed ctcp-quote to bot:ctcp-quite (whoops)
56
57 2004-05-28 Clinton Ebadi <clinton@unknownlamer.org>
58
59 * bobot++.texinfo (bot.conf): Finished section
60 (server syntax): New section, documents the bot.conf SERVER syntax
61 (channel syntax): New section, documentes the bot.conf CHANNEL syntax
62
63 2004-05-13 Clinton Ebadi <clinton@unknownlamer.org>
64
65 * source/Main.C (real_main): std::exit instead of exit
66
67 2004-05-12 Clinton Ebadi <clinton@unknownlamer.org>
68
69 * source/DCCConnection.C (DCCConnection): Intialized `nuh' in the
70 constructor with `n' This should fix the segfaulting.
71
72 2004-01-28 Clinton Ebadi <clinton@unknownlamer.org>
73
74 * ChangeLog: Updated copyright notice
75
76 2004-01-09 Clinton Ebadi <clinton@unknownlamer.org>
77
78 * source/Interp.C (interp_init_helper): Register
79 bot:change-command-level
80
81 * source/ScriptCommands.C (ChangeCommandLevel): Added
82 ChangeCommandLevel to change the level a user needs to be to run a
83 command
84
85 * source/ScriptCommands.H: Added ChangeCommandLevel
86
87 2003-10-12 Clinton Ebadi <clinton@unknownlamer.org>
88
89 * source/String.H: Changed #define STRING_H to BSTRING_H
90
91 2003-08-04 Clinton Ebadi <clinton@unknownlamer.org>
92
93 * scripts/bobot-utils.scm (bot:sent-to-me?): New procedure, used
94 to see if a message was sent to the bot (this is better than
95 bot:match-to-me because the hook isn't invalidated when the bot's
96 nickname changes)
97
98 * source/DCCConnection.H: Added `nuh' back and added an
99 accessor (get_nuh)
100 Added setter `set_autoRemove(bool)'
101
102 * source/DCCConnection.H: Removed all friends
103 Added accessors (get_bot, get_lastSpoken, get_autoRemove; get_bot
104 reveals the pointer to the bot [PRIVATE POINTER] which probably
105 isn't so nice, but there isn't much to be done about it with the
106 current design of the bot)
107
108 * source/DCCChatConnection.H: Removed all friends
109
110 * source/DCCConnection.H: DCCConnection is now a pure virtual
111 class with the subclass DCCChatConnection
112
113 2003-07-29 Clinton Ebadi <clinton@unknownlamer.org>
114
115 * source/Socket.C (connect): log errors to the bot log instead of
116 printing to stderr
117
118 2003-07-23 Clinton Ebadi <clinton@unknownlamer.org>
119
120 * source/Parser.C (parseMessage): use the find method of std::map
121 to find the command to call instead of [] and then extract the
122 pointer to the userFunction from that if it exists. This appears
123 to fix the crash when one uses an undefined command followed by
124 any defined command.
125
126 2003-04-09 Clinton Ebadi <clinton@unknownlamer.org>
127
128 * source/Interp.C (interp_init_helper): Bind bot:setfloodrate to
129 ScriptCommands::SetFloodRate
130
131 * source/ScriptCommands.C (SetFloodRate): New Method: SetFloodRate
132
133 * source/Bot.C (init_user_functions): Make SETFLOODRATE available
134 to bot master
135
136 * source/Bot.H: Made MAX_MESSAGES writeable
137
138 * source/UserCommands.H: New method: SetFloodRate
139
140 * source/Commands.H: New method: SetFloodRate
141
142 2003-04-03 Clinton Ebadi <clinton@unknownlamer.org>
143
144 * configure.ac: Merged all AC_OUTPUTs at the end
145
146 2003-04-02 Clinton Ebadi <clinton@unknownlamer.org>
147
148 * scripts/bobot-utils.scm: Make exported symbols from
149 the-bot-module available in the guile-user module so that scripts
150 loaded with Interp::Load function.
151
152 2003-03-30 Clinton Ebadi <clinton@unknownlamer.org>
153
154 * scripts/bobot-utils.scm (bot:load-module): Loads a file from the
155 %bot:loadpath into its own module and returns that (unnamed) module
156 (bot:use-module): Calls bot:load-module and then adds the newly
157 loaded module to the (current-module)'s use-list
158
159 * source/Interp.C (interp_init_helper): New procedure to initialize
160 the-bot-module (this is the old Interp::Startup verbatim)
161 (interp_post_startup_helper): New procedure to export
162 the-bot-module from bot_module
163 (Startup): Now calls interp_init_helper and
164 interp_post_startup_helper to initalize the bot module system
165
166 * source/Interp.H: Added private variable bot_module to Interp
167
168 2002-11-04 Clinton Ebadi <clinton@unknownlamer.org>
169
170 * scripts/bobot-utils.scm: Added bot: to regex functions (yes,
171 this breaks existing scripts, this is the unstable tree after all)
172
173 2002-11-03 Clinton Ebadi <clinton@unknownlamer.org>
174
175 * source/Mask.C (match): Made Mask::match case insensitive
176
177 2002-09-23 Clinton Ebadi <clinton@unknownlamer.org>
178
179 * source/Interp.C (scm_apply_wrapper): turned off locking of
180 Interp::mutex to see if this makes the bot work again...and it
181 does!
182
183 2002-09-07 Clinton Ebadi <clinton@unknownlamer.org>
184
185 * configure.ac: Removed arguments to AM_INIT_AUTOMAKE and updated
186 everything to use aclocal/automake 1.6
187
188 2002-08-27 Clinton Ebadi <clinton@unknownlamer.org>
189
190 * source/DCCPerson.H (class DCCPerson): Added
191 UserCommands::DCCList as a friend (friends are better than the old
192 DCC() function at least).
193
194 * source/DCCManager.H (class DCCManager): Added
195 UserCommands::DCCList as a friend
196
197 * source/Interp.H (class Interp): Made function scm_apply_wrapper
198 a friend so it can lock Interp::mutex
199
200 * source/Interp.C (scm_apply_wrapper): Lock Interp::mutex if
201 MULTITHREAD is defined (it is always defined when scripting is
202 enabled) so that Sockets can be made multithreaded using
203 CommonC++.
204
205 * source/DCCPerson.H: Removed DCC method and made Bot a friend
206 Made DCCManager a friend
207
208 * source/DCCManager.H (class DCCManager): Removed MAP() method
209 and made Bot a friend of DCCManager
210
211 2002-08-18 Clinton Ebadi <clinton@unknownlamer.org>
212
213 * source/Interp.C (Startup): Renamed bot:DCC-chat-send to
214 bot:dcc-chat-send.
215
216 * bobot++.texinfo (Hook Types): Fixed a typo (I wrote
217 user!nick@host instead of the correct nick!user@host).
218
219 * source/Interp.C (Startup): Register bot:DCC-chat-send
220
221 * source/ScriptCommands.C (sendDCCChatMessage): Added method again
222
223 2002-08-08 Clinton Ebadi <clinton@unknownlamer.org>
224
225 * source/String.C (String): The std::string copy constructor now
226 extracts the c_str of the std::string and then takes the strlen of
227 that before copying it. This fixes a bug with DCC where if you did
228 e.g. "!help" the bot would reply with "No TOPIC PRIVMSG FOUND" or
229 something like that, depending on what the last message was
230 because Socket will insert a \0 into its semi-static buffer, so
231 the len of the String will not equal the strlen of its char*.
232
233 2002-08-07 Clinton Ebadi <clinton@unknownlamer.org>
234
235 * source/DCCPerson.H: Removed destructor (I = idiot)
236
237 * source/DCCConnection.H: DCCManager is now a friend of
238 DCCConnection (ugh, the bot has way too many friends).
239
240 * source/DCCPerson.H: Added DCC member that returns a const
241 DCCConnection* (the dcc connection). This isn't saved anywhere
242 because when a DCCPerson is destroyed, its connection is also
243 destroyed.
244
245 * source/Bot.H: dccConnections is now a DCCManager
246
247 * source/DCCPerson.H: Added destructor
248 Added handleInput method
249
250 * source/DCCManager.C: New file
251 (addConnection): Wrote method, add a DCCConection to the manager
252
253 * source/DCCManager.H: New file
254
255 * source/Interp.C (Startup): Register bot:DCC-chat-send
256 (Startup): Removed sendDCCChatMessage stuff
257
258 * source/ScriptCommands.C (sendDCCChatMessage): New method:
259 sendDCCChatMessage (to, message) sends message to to.
260
261 * source/DCCConnection.C (connect): Run DCC_CHAT_BEGIN hook with
262 one arg: from (user!nick@host).
263
264 * source/DCCParser.C (parseLine): Runs DCC_CHAT_MESSAGE hook with
265 two args: from (user!nick@host) and line
266
267 2002-08-06 Clinton Ebadi <clinton@unknownlamer.org>
268
269 * source/Interp.C (Startup): Two new Scheme values:
270 hooks/dcc/chat-begin and hooks/dcc/chat-message for the
271 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE hooks.
272
273 * source/BotInterp.H: Added two new enum values to Hook:
274 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE for the DCC chat start and DCC
275 chat message hooks
276
277 2002-08-05 Clinton Ebadi <clinton@unknownlamer.org>
278
279 * source/Parser.C (parseCTCP): Removed call to htonl and fixed
280 DCC! Ack, sockets take their arguments in network byte order so
281 there is no need to convert to host...now DCC _sort of_ works.
282
283 2002-08-04 Clinton Ebadi <clinton@unknownlamer.org>
284
285 * source/UserList.C (save): Increment iterator twice to get around
286 bug (see BUGS #2)
287
288 * source/ServerQueue.C: Now sends SEND_* hooks instead of
289 triggered general hooks.
290
291 * source/Interp.C (Startup): New scheme side defines: hooks/send/*
292 (* = the new SEND_ hooks, but lowercase).
293
294 * source/BotInterp.H: New hook types (SEND_..., ... = ACTION,
295 CTCP, PUBLIC, MESSAGE). These are triggered on send messages.
296
297 2002-08-01 Clinton Ebadi <clinton@unknownlamer.org>
298
299 * source/Bot.C (set_log_file): Oops! Fixed logging. Now the bot
300 logs again.
301
302 * source/Socket.C (readLine): Now uses a static std::string that
303 starts out with 512 chars. This will never need to be resized for
304 usualy IRC messages, but might be for DCC messages
305
306 2002-07-31 Clinton Ebadi <clinton@unknownlamer.org>
307
308 * scripts/bobot-utils.scm (not-from-me): New syntax.
309
310 * source/ScriptCommands.C (AddHook): Now takes another optional
311 arg--name that will name the hook (see the hooks section in the
312 manual for what this does).
313
314 * source/BotInterp.H: Added name field to Hook
315
316 2002-07-29 Clinton Ebadi <clinton@unknownlamer.org>
317
318 * source/ServerQueue.C (sendPrivmsg): Now calls hooks on own
319 PRIVMSGes because the IRC server doesn't echo them back to the
320 bot. This could be useful for something (e.g. log script).
321
322 2002-07-27 Clinton Ebadi <clinton@unknownlamer.org>
323
324 * source/Interp.C (Shutdown): Runs bot:exit-hook hooks
325 (Startup): New var for Scheme: bot:exit-hook. Calls the thunks
326 associated with the hook when Interp::Shutdown is called (bot exit).
327
328 2002-07-23 Clinton Ebadi <clinton@unknownlamer.org>
329
330 * source/BotInterp.H (Hook<): Changed behavior of Hook's <. If a
331 hook is greater than or less than the other hook, only the
332 priority is considered. However, if both hooks have the same
333 priority, then the fallthru-ness is considered, with fallthru
334 hooks being greater than non-fallthru hooks.
335
336 * source/BotInterp.C (hptr_lt): Added this static function to be
337 used to sort the hooks list (now hooks should be sorted using
338 Hook's operator < instead of using pointer comparision, meaning
339 the new hook system will work correctly)
340
341 * scripts/bobot-utils.scm: Make bot:log use for-each instead of
342 map because we don't need the result of the displays (this would
343 just be a list of #<undefined> values and is a waste of memory).
344
345 2002-07-13 Clinton Ebadi <clinton@unknownlamer.org>
346
347 * source/Bot.C (Bot): userFunctions is now a map for efficiency
348 (worst case search is now NlogN instead of N). This improvement is
349 not as drastic as the one gained by making the Parser functions
350 list a map (because we don't scan this map for every message), but
351 it helps to clean up the code
352
353 2002-07-12 Clinton Ebadi <clinton@unknownlamer.org>
354
355 * source/Parser.H: Removed userFunctionsStruct
356
357 * source/Interp.C (Startup): ScriptCommands::sendCTCP registered
358 as bot:send-CTCP for Scheme
359
360 * source/ScriptCommands.C (sendCTCP): Wrote sendCTCP
361
362 2002-07-11 Clinton Ebadi <clinton@unknownlamer.org>
363
364 * source/ServerQueue.C (sendUser): Changed . . in USER command to
365 0 * (which is the Right Way to because <mode> must be a number...)
366
367 * source/Parser.C (init): New method of Parse. This initalizes the
368 functions map. functions replaces the old functions array, and
369 should yield better performance (since the functions array had to
370 be scanned for every incoming message)
371
372 * source/Parser.H: New member, functions (private)
373
374 2002-07-10 Clinton Ebadi <clinton@unknownlamer.org>
375
376 * source/Interp.C (Startup): New symbols: bot:user-*
377 [none|user|trusted|friend|master] are defined in Scheme as the
378 different levels of the users.
379 (Startup): All bot-* variables are now bot:*
380
381 2002-07-09 Clinton Ebadi <clinton@unknownlamer.org>
382
383 * source/Bot.H: Made some variables private because they shouldn't
384 be changed at runtime
385
386 * source/Parser.C (parseCTCP): Reneabled DCC CHAT (I want to test
387 this out to see if it works and make it work)
388
389 * source/Bot.C (Bot::Bot): New var: logs_dir. Set to the log file
390 dir.
391
392 * scripts/bobot-utils.scm: Fixed a typo (I forgot the / after
393 scripts in the user scripts dir) that made bobot++ not able to
394 load scripts from the user scripts dir
395
396 2002-07-08 Clinton Ebadi <clinton@unknownlamer.org>
397
398 * source/BotInterp.C (RunHooks): Changed iterators to
399 reverse_iterators because the hooks list is sorted in ascending
400 order--higher priority and fallthrough hooks appear _after_ the
401 lower priority and non-fallthrough hooks.
402
403 * source/Main.C (print_long_help): Added function
404 (print_short_help): Renamed from printUsage
405 (namespace): Most stuff in here is now defined in an anonymouse
406 namespace so it doesn't have external linkage
407 (real_main): Uses getopt_long instead of getopt. Added several
408 command line arguments (bobotpp --help for a full list).
409
410 * scripts/bobot-utils.scm (bot-load): Function moved from
411 bobot-scheme.scm
412
413 * source/Interp.C (Startup): Autoloads
414 PREFIX/bobotpp/scripts/bobot-utils.scm now
415 (Startup): New Scheme variable: bot-sys-scripts-dir (system
416 scripts dir)
417
418 * source/bobot-scheme.scm.in: Removed
419
420 * source/Makefile.am: Removed bobot-scheme.scm compiliation
421
422 * configure.ac (PREFIX): configure.ac defined prefix now
423
424 * source/Main.C (real_main): Default configuration is now read
425 from /etc/bobotpp/default
426 * source/bobot-scheme.scm.in: Added file. This defines the
427 'bot-load' procedure which will load a file from
428 $HOME/.bobotpp/scripts/ or @datadir@/bobotpp/scripts/ if the
429 script doesn't exist in the user script dir.
430
431 2002-07-01 Clinton Ebadi <clinton@unknownlamer.org>
432
433 * bobot++.texinfo: Started docs (just a skeleton right now)
434
435 * source/ScriptCommands.C (AddHook): Now takes pri and fall opt
436 args to set a hooks priority and whether or not it will
437 fallthrough. These args are optional.
438
439 * source/Interp.C (Startup): addhook now takes 3 req and 2 opt args
440
441 * source/BotInterp.C (AddHook): Now uses priority and fallthrough
442 (RunHooks): exec fallthrough hooks first.
443
444 * source/BotInterp.H: Changed Hooks to have priority
445 Added fhooksMap to BotInterp (fallthrough)
446
447 * source/UserCommands.C (AddShit): Converted to use Commands
448
449 2002-06-21 Clinton Ebadi <clinton@unknownlamer.org>
450
451 * source/Commands.C (AddUser): Fixed a one-off (function call was
452 before a brace instead of after one) that caused a segfault when
453 the user mask was a wildcard
454
455 2002-06-20 Clinton Ebadi <clinton@unknownlamer.org>
456
457 * all files: Updated address of the FSF
458
459 * source/UserCommands.C (AddUser): Uses Commands now instead of
460 manipulating the bot directly
461
462 2002-06-18 Clinton Ebadi <clinton@unknownlamer.org>
463
464 * source/ScriptCommands.C (AddShit): Filled in function.
465
466 * source/Interp.C (Startup): Bind bot-adduser to
467 ScriptCommands::AddUser instead of Action
468 (Startup): Bind bot-addshit to ScriptCommands::AddShit
469
470 * source/ScriptCommands.C (AddUser): Filled in function
471
472 * source/ServerList.C (delServer): Changed (n - 1) to n...n-1
473 would have caused problems if you used more than one server
474
475 * source/Parser.H: Changed const char* to String in userFunctionStruct
476
477 * source/String.H: Added std::string compatibility members
478
479 * configure.ac: You can now disable Crypt and scripting
480
481 * source/*: Added #include "config.h" where needed
482
483 * configure.ac: Added AM_CONFIG_HEADER
484
485 * config.h.in: added file
486
487 * source/Queue.C: Didn't notice iostream.h here! Fixed
488
489
490 Copyright 2002,2003,2004 Clinton Ebadi
491 Copying and distribution of this file, with or without modification, are
492 permitted provided the copyright notice and this notice are preserved.