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