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