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