[project @ 2005-07-07 23:24:24 by unknown_lamer]
[clinton/bobotpp.git] / ChangeLog
1 2005-07-07 Clinton Ebadi <clinton@unknownlamer.org>
2
3 * bobot++.texinfo (Shit Levels): Added section
4 (Scheme User Levels): Removed Section
5 (Adding New Commands): Updated ref to Scheme User Levels to refer
6 to the User Levels section, and changed a @code{} into a @{var}
7 (Sending Messages): Rewrote section
8 (High Level Message Functions): Merged bot:say and bot:msg
9 sections
10 (bot.users): Expanded section
11 (bot.shit): Added section
12 (bot.conf): Document initfile option
13 (bot.shit): More detail
14 (bot.users): More detail
15 (bot.init): Added section
16 (bot.conf): Documented autoexecfile option
17 (bot.autoexec): Added section
18 (Using the Bot): Added some intro text
19 (Concepts): New section, all of the level sections are now
20 subsections of this
21 Merged small doc patch from dsmith
22
23 * source/Interp.C (interp_init_helper): Added bot:shit/none
24 /no-ban, /no-kick, and /no-deop constants to Scheme
25
26 * scripts/bobot-utils.scm (bot:sent-to-me?): Redefined as a
27 closure (this should create the regexp once instead of each time
28 the function is called)
29
30 * examples/bot.autoexec: Updated sample bot.autoexec
31
32 * examples/bot.users: Updated sample bot.users
33
34 * examples/bot.conf: Updated sample config
35
36 2005-07-06 Clinton Ebadi <clinton@unknownlamer.org>
37
38 * bobot++.texinfo (Sent Message Hooks): Documented hooks/send/who
39 and hooks/send/whois
40
41 * source/ServerQueue.C (sendWho): Call hooks/send/who
42 (sendWhois): Call hooks/send/whois
43
44 * source/Interp.C (interp_init_helper): Added hooks/send/who and
45 hooks/send/whois constants to Scheme
46
47 * source/BotInterp.H: Added SEND_WHO and SEND_WHOIS hook constants
48
49 * bobot++.texinfo (Misc Scripting Stuff): Documented bot:who and
50 bot:whois
51 (bot.conf): Document MAXNICKLENGTH
52
53 * source/Interp.C (interp_init_helper): Add bot:who and bot:whois
54 bindings to Scheme
55
56 * source/ScriptCommands.C (Who): Implemented Who method
57 Removed IQUEUE macro (no longer needed)
58 (Whois): Implemented Whois method
59
60 * source/ScriptCommands.H: Added Who and Whois methods
61
62 * source/Commands.C (Who): Implemented Who
63 (Whois): Implemented Whois
64
65 * source/Commands.H: Add Who and Whois tethods
66
67 * source/Interp.C: Updated copyright notice
68 (interp_init_helper): Remove send from CTCP/CTCPReply method names
69
70 * source/Interp.H: Updated copyright notice
71
72 * source/ScriptCommands.C (CTCP): Renamed from sendCTCP
73 (CTCPReply): Renamed from sendCTCPReply
74
75 2005-07-05 Clinton Ebadi <clinton@unknownlamer.org>
76
77 * bobot++.texinfo (Low Level Message Functions): Updated docs to
78 reflect new names for ctcp functions
79
80 * source/Interp.C (interp_init_helper): Register
81 ScriptCommands::Notice instead of sendNotice
82 (interp_init_helper): Renamed bot:send-ctcp to bot:ctcp
83 (interp_init_helper): Renamed bot:send-ctcp-reply to bot:ctcp-reply
84
85 * source/ScriptCommands.C (Notice): Renamed from sentNotice
86
87 * source/ScriptCommands.H: Renamed sendNotice to Notice
88
89 * bobot++.texinfo (Hook Types): Spelling fix
90
91 2005-07-04 Clinton Ebadi <clinton@unknownlamer.org>
92
93 * scripts/bobot-utils.scm (_deprecated-fun): Set
94 current-error-port to bot:logport while calling
95 issue-deprecation-warning
96
97 * bobot++.texinfo: Grammar fixes on the title page
98 (Configuration): Added more info on config files.
99 (bot.conf): Added xrefs for server syntax and channel syntax
100 (server syntax): Added more detail and moved a paragraph
101 (channel syntax): Added more details, revised the examples, and
102 moved some text around
103 (User Levels): Clarified
104 (Protection): Cleaned up
105 (Automatic Op): Improved substantially
106
107 * source/DCCManager.C (checkInput): Call hooks/dcc/chat-end if the
108 DCC CHAT has died
109
110 * scripts/bobot-utils.scm (bot:log): Updated to use bot:logport
111 instead of bot-logport
112
113 * source/Interp.C (interp_init_helper): Add hooks/dcc/chat-end
114 constant to Scheme
115
116 * bobot++.texinfo (DCC CHAT Hooks): Document hooks/dcc/chat-end
117
118 * source/BotInterp.H: Add DCC_CHAT_END to enum
119
120 * source/DCCManager.C (checkStale): Run hooks/dcc/chat-end when
121 deleting a stale connection.
122
123 2005-07-03 Clinton Ebadi <clinton@unknownlamer.org>
124
125 * bobot++.texinfo (Hook Types): Documented all hooks
126
127 * source/ServerQueue.C (sendPrivmsg): Changed SEND_MESSAGE hook to
128 match dest and pass dest to send hook
129
130 * bobot++.texinfo (Hook Types): Changed language of
131 hooks/dcc/chat-* hook documention
132 (Received Message Hooks): Added subsub section of Hook Types
133 (Sent Message Hooks): Added subsub section of Hook Types
134 (DCC CHAT Hooks): Added subsub section of Hook Types
135 (Miscellaneous Hooks): Added subsub section of Hook Types
136
137 * source/Parser.C (parseScriptFunction): Changed
138 lazy_apply_wrapper to Interp::LazyApplyWrapper
139 (parseScriptFunction): Changed empty_handler to Interp::EmptyHandler
140 (parsePart): Grammar fix in log (Leaved => Left)
141
142 * source/Interp.H (Interp): Added LazyHandler method
143
144 * source/BotInterp.C (RunHooks): changed lazy_apply_wrapper to
145 Interp::LazyApplyWrapper
146 (RunTimers): Changed empty_handler to Interp::EmptyHandler
147 (RunHooks): Changed empty_handler to Interp::EmptyHandler
148 (RunTimers): Changed lazy_apply_wrapper to Interp::LazyApplyWrapper
149
150 * source/Interp.C (LazyHandler): Renamed from lazy_handler
151 (ScmApplyWrapper): Renamed from scm_apply_wrapper
152 (EmptyHandler): Renamed from empty_handler
153
154 * source/Interp.H (Interp): Removed ErrorHandler method
155 (Interp): Added LazyApplyWrapper method
156 (Interp): Added EmptyHandler method
157 (Interp): Added ScmApplyWrapper method
158
159 * scripts/bobot-utils.scm: Added hooks/leave as an alias for hooks/part
160 Added begin-deprecated around deprecated definitions
161 (_deprecated-fun): Added macro to define an alias for a function
162 and issue a deprecation warning when used
163 Converted all bot- aliases to use _deprecated-fun
164
165 * source/Interp.C (interp_init_helper): Changed Hook::LEAVE to
166 Hook::PART
167 (interp_init_helper): Removed definition of hooks/leave
168
169 * bobot++.texinfo (Hook Types): Removed stub for hooks/leave, only
170 document hooks/part name (hooks/leave still exists, but will not
171 be documented as it is the same as hooks/part)
172
173 * source/Parser.C (parsePart): Use Hook::PART instead of Hook::LEAVE
174
175 * source/BotInterp.H: Removed Hook::LEAVE, added Hook::PART
176
177 * bobot++.texinfo (Scripting): Added note about most arguments
178 being strings
179
180 * source/Commands.C (NextServer): Call hooks/disconnect
181
182 * source/Bot.C (run): Pass extra argument to Hook::DISCONNECT
183
184 * bobot++.texinfo (Creating a Hook): Reformatted the bot:addhook
185 section to make it more readable
186 (Hook Types): Reformatted hooks/action
187 (Hook Types): Changed grammar of hooks/nickname (their => his)
188 (Hook Types): Documented hooks/signoff
189
190 2005-06-29 Clinton Ebadi <clinton@unknownlamer.org>
191
192 * bobot++.texinfo: Updated copyright years, changed "applies to
193 2.1.5" to 2.2
194
195 * source/Socket.C (readLine): return buf.substr (0, pos) instead
196 of using the String char * constructor (this should be faster,
197 especially for long strings since a simple copy is used instead of
198 going over each char until nul is encountered)
199
200 * configure.ac: Release 2.1.8
201 Change version to 2.1.9CVS
202
203 * source/Parser.C: Include Commands.H (fixes --disable-scripting build)
204
205 * source/Bot.C (Bot): Fix to make a --disable-scripting build work
206
207 * bobot++.texinfo (Configuration): Swapped order of config file
208 placement and config files
209 (User Levels): users not found in the user list *can* execute
210 commands as bot:user-none now.
211 (Low Level Message Functions): Changed a few @code{}s to @var{}s
212
213 2005-06-28 Clinton Ebadi <clinton@unknownlamer.org>
214
215 * bobot++.texinfo: @vskip Opt... => @vskip 0pt...
216
217 * source/Main.C (namespace): Added debug-scripts option
218
219 * source/Parser.C (parseCTCP): Hook::ACTION is now passed
220 from->getNick () instead of from->getAddress () (consistency fix)
221
222 * source/Main.C: Merged error handling patch from dsmith
223
224 * source/Parser.C: Merged error handling
225 patch from dsmith
226
227 * source/Interp.H: Merged error handling patch from dsmith
228
229 * source/Interp.C (lazy_handler): Merged error handling patch from
230 dsmith
231
232 * source/BotInterp.H: Merged error handling patch from dsmith
233
234 * source/BotInterp.C: Merged error handling patch from dsmith
235
236 * bobot++.texinfo (Low Level Message Functions): Documented
237 bot:send-ctcp-reply
238
239 * source/Parser.C (parseCTCP): Converted to use Commands::CTCPReply
240
241 * source/Interp.C (interp_init_helper): Bound bot:send-ctcp-reply
242 in scheme
243
244 * bobot++.texinfo (Low Level Message Functions):
245 s/bot:send-CTCP/bot:send-ctcp/
246
247 * source/Interp.C (interp_init_helper): Renamed bot:send-CTCP to
248 bot:send-ctcp
249
250 * source/ScriptCommands.H: Uncommented sendCTCPReply prototype
251
252 * source/ScriptCommands.C (sendCTCP): Convert to use Commands::CTCP
253 (sendCTCPReply): Added
254
255 * source/Parser.C (parseJoin): Convert to use Commands::CTCP
256
257 * source/Commands.C (CTCP): Implemented
258 (CTCPReply): Implemented
259 (Action): Convert to use Commands::CTCP
260
261 * source/Commands.H: Added CTCP (bot, target, command, message)
262 Added CTCPReply (bot, target, command, message)
263
264 2005-06-27 Clinton Ebadi <clinton@unknownlamer.org>
265
266 * examples/bot.conf (maxnicklength): Update example config
267
268 * source/Utils.C (valid_nickname_p): Use b->MAX_NICKLENGTH
269
270 * source/Bot.C (readConfig): Look for MAXNICKLENGTH parameter
271
272 * source/Bot.H: Added MAX_NICKLENGTH member
273
274 * source/Utils.H (valid_nickname_p): Now takes Bot* as first argument
275
276 * source/Commands.C (Msg): Send multiple PRIVMSGs when a message
277 is multiple lines
278
279 * source/UserCommands.C (SetVersion): Convert to use Commands::Notice
280
281 * source/Commands.C (Notice): Send multiple NOTICEs when a message
282 is multiple lines
283
284 2005-06-25 Clinton Ebadi <clinton@unknownlamer.org>
285
286 * source/Main.C (real_main): Enable Guile debugging mode when
287 --debug is used
288
289 * source/Interp.C (interp_post_startup_helper): Return
290 SCM_UNSPECIFIED instead of 0
291
292 2005-06-24 Clinton Ebadi <clinton@unknownlamer.org>
293
294 * All: Updated FSF street address
295
296 * source/Commands.C (Msg): Move body of Say to an if inside of this
297 (Say): Just call Msg
298
299 * source/ScriptCommands.C (sendNotice): Returns error code instead
300 of just #t or #f
301
302 * source/Commands.C (Say): Check to make sure target is a channel
303 (Msg): Extended to send messages to channels
304
305 2005-06-23 Clinton Ebadi <clinton@unknownlamer.org>
306
307 * scripts/bot.scm: Added file ((bobotpp bot) module for other
308 modules to gain access to bobot++ interface)
309
310 * source/Commands.C (Notice): Commented out check/abort if target
311 is a channel (there doesn't seem to be a reason for this to not work)
312
313 * source/Interp.C (interp_init_helper): Register bot:notice with scheme
314
315 * bobot++.texinfo (High Level Message Functions): Document bot:notice
316
317 * source/Message.H: Added operator== to Message (tests for error
318 code equality)
319
320 * source/Commands.C: Removed message type macros
321
322 * source/Message.H: Moved message type macros to Message.H
323
324 * source/ScriptCommands.C (sendNotice): Implemented sendNotice
325
326 * source/ScriptCommands.H: Uncomment sendNotice
327
328 * source/Bot.C (waitForInput): Use %02d when formatting
329 Hooks::TIMER argument instead of %2d, and switch to snprintf to
330 enforce max length
331
332 * bobot++.texinfo (Hooks): Clarified intro text about hooks (order
333 of processing).
334
335 * source/Bot.C (run): Added call to Hooks::DISCONNECT
336 (hooks/disconnect) when the bot is disconnected from the server
337
338 * bobot++.texinfo: Applied documentation patch from Dale P. Smith
339 (Hook Types): Added hooks/disconnect argument
340
341 2005-06-06 Clinton Ebadi <clinton@unknownlamer.org>
342
343 * bobot++.texinfo: Change @vskip 0 to @vskip 0pt to make this work
344 again (thanks dsmith)
345
346 2005-06-01 Clinton Ebadi <clinton@unknownlamer.org>
347
348 * source/Interp.C (interp_init_helper): Added
349 bot:protection/[none|ban|kick|deop] constants to Scheme
350 (interp_init_helper): Added bot:aop/[yes|no] constants
351
352 2005-05-31 Clinton Ebadi <clinton@unknownlamer.org>
353
354 * configure.ac: Release Bobot++ 2.1.7
355 Changed version to 2.18.CVS
356
357 * source/UserList.C (save): Remove workaround for BUG #2
358
359 * source/Parser.C (parse001): make realNick lowercase when doing
360 the comparison to bot->nickName to prevent pushing a second copy
361 of the bot onto the userlist (closes BUG #2)
362
363 * source/Bot.C (Bot): cleaned up constructor
364 (waitForInput): replaced gh_list with scm_list_n
365
366 * source/UserList.C: Cleaned up some formatting
367
368 * source/Main.C: Formatted code more cleanly
369 (real_main): changed a few Strings to std::strings
370
371 * source/String.C (operator): Made index signed again, it's not
372 worth fixing this warning
373
374 * source/Bot.C: Add casts to make this compile with unsigned int
375 as operator[] in String
376
377 * source/String.C (operator): Made index unsigned
378
379 * source/Utils.C: Made a few things unsigned to kill warnings
380
381 * source/Socket.C (readLine): Made pos unsigned
382
383 * source/Bot.C (Bot): Fixed initializer list order to kill warnings
384
385 * source/BotInterp.C (RunTimers): Removed unused variable (Timer *t)
386
387 * source/StringTokenizer.C (count_tokens): Changed return type to
388 unsigned int
389 (more_tokens_p): Made counter unsigned
390
391 * source/StringTokenizer.H (class StringTokenizer): Made pos
392 std::string::size_type instead of int
393
394 * source/Commands.C (TBan): Returns Ok is the ban is done instead
395 of falling off the end (oops)
396
397 * source/BotInterp.H: Add general catch case (false)
398
399 2005-03-11 Clinton Ebadi <clinton@unknownlamer.org>
400
401 * configure.ac: Release 2.1.6
402 Changed version to 2.1.7CVS
403
404 2005-02-28 Clinton Ebadi <clinton@unknownlamer.org>
405
406 * source/Parser.C (parseLine): use map<>::find and an iterator to
407 find the IRC command instead of map<>::operator[] to avoid a
408 potential segfault
409
410 * source/Bot.C (waitForInput): Removed commented out code
411
412 * source/Socket.C (readLine): return String (buf.c_str ()) instead
413 of String (buf) so that only the buffer up to the first null is returned
414 (readLine): Added a comment explaining the usage of buf
415 (readLine): Changed type of length (std::string::size_type instead
416 of std::size_t)
417
418 * source/String.C: Reimplemented String on top of std::string to
419 fix a few bugs and potential memory leaks
420 (toLower): use Utils::to_lower
421 (toUpper): Use Utils::to_upper
422 (trim): Use Utils::trim_str
423
424 * source/String.H: removed srep, replaced it with a std::string
425 (my_string)
426
427 * source/Utils.C (to_upper): Applied patch from Jos Hulzink
428 <josh@stack.nl>
429 (trim_str): Appled patch from Jos Hulzink <josh@stack.nl> (fixes
430 counters and substr call)
431
432 * source/StringTokenizer.C (next_token): Applied patch from Jos
433 Hulzink <josh@stack.nl> (fixes substr call)
434 (rest): Applied patch from Jos Hulzink <josh@stack.nl> (fixes
435 substr call)
436
437 2005-02-27 Clinton Ebadi <clinton@unknownlamer.org>
438
439 * source/Bot.H (COPYRIGHT_STRING): Remove Michael Wilson because
440 he is a lazy bum and never submitted the String replacing patch
441
442 2005-01-23 Clinton Ebadi <clinton@unknownlamer.org>
443
444 * configure.ac: Remove CC++ test
445 Changed version to 2.1.6CVS (2.1.5 released)
446
447 * bobot++.texinfo: Updated copyright
448
449 2005-01-16 Clinton Ebadi <clinton@unknownlamer.org>
450
451 * TODO (General): Added TODO items
452 (2.2): Moved a few items here from 2.4
453
454 * README (NOTE): Mention boost requirement
455
456 2005-01-13 Clinton Ebadi <clinton@unknownlamer.org>
457
458 * ChangeLog Updated copryight
459
460 * source/User.H: Removed forward declaration of Utils
461
462 * source/Bot.H: Removed forward declaration of Utils
463
464 * source/ChannelList.H: Removed forward declaration of Utils
465
466 * source/UserListItem.H: Removed forward declaration of Utils
467
468 * source/Utils.H: Removed class Utils, replaced with a namspace
469 (it only contained static methods)
470
471 * source/Bot.H (COPYRIGHT_STRING): Added 2005 and Michael Wilson
472 (he is replacing String)
473
474 2005-01-12 Clinton Ebadi <clinton@unknownlamer.org>
475
476 * source/BotConfig.C (set_option_value): Put watcher calling
477 inside of if (cf_iter != end()) to fix a segfault (if the cf_iter
478 = end then there are no watchers since this is a new value and
479 references cf_iter->second segfaults)
480
481 * source/Utils.C (trim_str): Fixed bug (last non-space character
482 was being cut off)
483
484 * source/BotConfig.C (read_config): Made to use set_option_value
485 instead of manipulating options_db directly
486
487 * source/BotConfig.H (class BotConfig): Add set_option_value that
488 takes a t_value instead of t_value_list (most uss of
489 set_option_value will be to add a single value so this is very useful)
490
491 * source/BotConfig.C (set_option_value): Implemented
492
493 * source/UserList.C: Made to work with new Utils/StringTokenizer names
494
495 * source/UserCommands.C: Made to work with new
496 Utils/StringTokenizer names
497
498 * source/ShitList.C: Uses Utils.H now (Utils::trim_str & friends)
499
500 2005-01-11 Clinton Ebadi <clinton@unknownlamer.org>
501
502 * source/ShitList.C: Made to work with new StringTokenizer names
503
504 * source/ServerQueueItem.C: Made to work with new StringTokenizer names
505
506 * source/ServerQueue.C: Made to work with new Utils names
507
508 * source/ScriptCommands.C: Made work with new Utils names
509
510 * source/Person.C (getNick): Made work with new Utils names
511
512 * source/String.H: Added substr prototypes
513
514 * source/String.C (substr): Added substr as an alias of subString
515 (for compat with std::string before the transition)
516
517 * source/Parser.C: Made to work with new Utils/StringTokenizer names
518
519 * source/DCCParser.C: Made to work with new Utils names
520
521 * source/DCCChatConnection.C: Made to work new Utils names
522
523 * source/Commands.C: Made to work with new Utils names
524
525 * source/Channel.C: Made to work with new Utils names
526
527 * source/BotInterp.C: Made to work with new Utils
528
529 * source/Bot.C: Made to work with new Utils/StringTokenizer names
530
531 * source/String.C (operator=): Unremoved operator=(std::string)
532
533 * source/String.H: Unremoved operator=(std::string)
534
535 * source/BotConfig.C (read_config): Use Utils::trim_str
536
537 * source/String.C (trim): Fixed bug (p->s[i] == '\r', s/i/j/)
538
539 * source/Utils.C (trim_str): Implemented
540
541 * source/Utils.H: Added tim_str (replaces String::trim)
542
543 * source/BotConfig.C: Made everything work with new
544 StringTokenizer and Utils names
545
546 * source/Utils.H: Added to_lower
547 Added to_upper
548
549 * source/StringTokenizer.C (rest): uses std::isspace instead of
550 checking st[pos] against ' ' and '\t'
551
552 * source/StringTokenizer.H: Removed CamelCasing
553 Renamed hasMoreTokens to more_tokens_p
554
555 * source/StringTokenizer.C: Converted to use std::string
556
557 * source/StringTokenizer.H: Converted to use std::string
558
559 * source/String.C: Removed operator=(std::string)
560
561 * source/String.H: Removed operator=(std::string)
562
563 * source/Utils.C: Added copyright
564 Reformatted to match GNU coding standard more closely
565 Converted everything to use std::string
566 (get_nick): Renamed from getNick
567 (get_userhost): Renamed from getUserHost
568 (get_key): Renamed from getKey
569 (IP_p): Renamed from isIP
570 (make_wildcard): Renamed from makeWildcard
571 (channel_p): Renamed from isChannel
572 (wildcard_p): Renamed from isWildcard
573 (valid_channel_name_p): Renamed from isValidChannelName
574 (valid_nickname_p): Renamed from isValidNickName
575 (get_level): Renamed from getLevel
576 (str2time): Renamed from strToTime
577 (str2time): Fixed potential buffer overflow (num[512] => std::string)
578 (level2str): Renamed from levelToStr
579 (prot2str): Renamed from protToStr
580 (bool2str): Renamed from boolToStr
581 (long2str): Implemented
582 (scm2str): Renamed from scm2String
583 (str2scm): Renamed from string2SCM
584
585 * source/BotConfig.C: Reformatted to fit GNU coding style more closely
586
587 * source/Utils.H: Added long2str (long int -> std::string)
588
589 * source/String.H: Added 2003 copyright (the year I last modified
590 it in)
591
592 * source/String.C: Added 2002 copyright (the year I last modified
593 it in)
594
595 * source/Utils.H: Updated Copyright
596 s/String/std::string/g
597 Removed camel casing and is* = *_p
598 xToY = x2y
599
600 * source/BotConfig.C: Updated Copyright
601
602 * source/BotConfig.H: Updated copyright
603
604 2005-01-08 Clinton Ebadi <clinton@unknownlamer.org>
605
606 * source/BotConfig.C (set_option_value): Take care of the case
607 where key is not already in the db
608 (add_watcher): Implemented
609 (read_config): Removed ',' token parsing (not needed)
610
611 * configure.ac: Add AC_LANG([C++]) so we can check for C++ libs
612 AC_CHECK_LIB ccgnu2 (CommonC++2)
613
614 * README: Updated README (reformatted, adding info, etc.)
615
616 2005-01-07 Clinton Ebadi <clinton@unknownlamer.org>
617
618 * source/BotConfig.C (set_option_value): call watcher list
619 (run_fun_): Added to support watcher list calling
620
621 2005-01-06 Clinton Ebadi <clinton@unknownlamer.org>
622
623 * source/BotConfig.C (set_option_value): Fuck you STL
624 (push_back_): Reimplemented so that it doesn't need std::bind1st
625 because the STL is being stupid
626
627 2004-12-26 Clinton Ebadi <clinton@unknownlamer.org>
628
629 * source/BotConfig.C (read_config): Implemented properly
630 (get_option_values): Implemented properly
631 (set_config_file): Fixed
632
633 2004-07-10 Clinton Ebadi <clinton@unknownlamer.org>
634
635 * bobot++.texinfo (Built-In Commands): Added empty stubs to the
636 list of commands
637
638 2004-06-22 Clinton Ebadi <clinton@unknownlamer.org>
639
640 * source/BotConfig.C: New file (implementation of configuration database)
641
642 * source/BotConfig.H: New File (semi-generic configuration database)
643
644 2004-06-17 Clinton Ebadi <clinton@unknownlamer.org>
645
646 * bobot++.texinfo (Starting the Bot): New section
647
648 2004-06-14 Clinton Ebadi <clinton@unknownlamer.org>
649
650 * bobot++.texinfo (Protection): Added Section
651 (User Levels): Rewrote section to be useful
652 (bot.users): Added section
653
654 2004-06-12 Clinton Ebadi <clinton@unknownlamer.org>
655
656 * source/DCCChatConnection.C (connect): Checks to make sure the
657 person initiating a DCC CHAT with the bot is at least a FRIEND of
658 the bot.
659
660 * README: Fixed a typo
661
662 * scripts/bobot-utils.scm (ctcp-quote): Implemented ctcp-quote
663 (bot:ctcp-quote): Renamed ctcp-quote to bot:ctcp-quite (whoops)
664
665 2004-05-28 Clinton Ebadi <clinton@unknownlamer.org>
666
667 * bobot++.texinfo (bot.conf): Finished section
668 (server syntax): New section, documents the bot.conf SERVER syntax
669 (channel syntax): New section, documentes the bot.conf CHANNEL syntax
670
671 2004-05-13 Clinton Ebadi <clinton@unknownlamer.org>
672
673 * source/Main.C (real_main): std::exit instead of exit
674
675 2004-05-12 Clinton Ebadi <clinton@unknownlamer.org>
676
677 * source/DCCConnection.C (DCCConnection): Intialized `nuh' in the
678 constructor with `n' This should fix the segfaulting.
679
680 2004-01-28 Clinton Ebadi <clinton@unknownlamer.org>
681
682 * ChangeLog: Updated copyright notice
683
684 2004-01-09 Clinton Ebadi <clinton@unknownlamer.org>
685
686 * source/Interp.C (interp_init_helper): Register
687 bot:change-command-level
688
689 * source/ScriptCommands.C (ChangeCommandLevel): Added
690 ChangeCommandLevel to change the level a user needs to be to run a
691 command
692
693 * source/ScriptCommands.H: Added ChangeCommandLevel
694
695 2003-10-12 Clinton Ebadi <clinton@unknownlamer.org>
696
697 * source/String.H: Changed #define STRING_H to BSTRING_H
698
699 2003-08-04 Clinton Ebadi <clinton@unknownlamer.org>
700
701 * scripts/bobot-utils.scm (bot:sent-to-me?): New procedure, used
702 to see if a message was sent to the bot (this is better than
703 bot:match-to-me because the hook isn't invalidated when the bot's
704 nickname changes)
705
706 * source/DCCConnection.H: Added `nuh' back and added an
707 accessor (get_nuh)
708 Added setter `set_autoRemove(bool)'
709
710 * source/DCCConnection.H: Removed all friends
711 Added accessors (get_bot, get_lastSpoken, get_autoRemove; get_bot
712 reveals the pointer to the bot [PRIVATE POINTER] which probably
713 isn't so nice, but there isn't much to be done about it with the
714 current design of the bot)
715
716 * source/DCCChatConnection.H: Removed all friends
717
718 * source/DCCConnection.H: DCCConnection is now a pure virtual
719 class with the subclass DCCChatConnection
720
721 2003-07-29 Clinton Ebadi <clinton@unknownlamer.org>
722
723 * source/Socket.C (connect): log errors to the bot log instead of
724 printing to stderr
725
726 2003-07-23 Clinton Ebadi <clinton@unknownlamer.org>
727
728 * source/Parser.C (parseMessage): use the find method of std::map
729 to find the command to call instead of [] and then extract the
730 pointer to the userFunction from that if it exists. This appears
731 to fix the crash when one uses an undefined command followed by
732 any defined command.
733
734 2003-04-09 Clinton Ebadi <clinton@unknownlamer.org>
735
736 * source/Interp.C (interp_init_helper): Bind bot:setfloodrate to
737 ScriptCommands::SetFloodRate
738
739 * source/ScriptCommands.C (SetFloodRate): New Method: SetFloodRate
740
741 * source/Bot.C (init_user_functions): Make SETFLOODRATE available
742 to bot master
743
744 * source/Bot.H: Made MAX_MESSAGES writeable
745
746 * source/UserCommands.H: New method: SetFloodRate
747
748 * source/Commands.H: New method: SetFloodRate
749
750 2003-04-03 Clinton Ebadi <clinton@unknownlamer.org>
751
752 * configure.ac: Merged all AC_OUTPUTs at the end
753
754 2003-04-02 Clinton Ebadi <clinton@unknownlamer.org>
755
756 * scripts/bobot-utils.scm: Make exported symbols from
757 the-bot-module available in the guile-user module so that scripts
758 loaded with Interp::Load function.
759
760 2003-03-30 Clinton Ebadi <clinton@unknownlamer.org>
761
762 * scripts/bobot-utils.scm (bot:load-module): Loads a file from the
763 %bot:loadpath into its own module and returns that (unnamed) module
764 (bot:use-module): Calls bot:load-module and then adds the newly
765 loaded module to the (current-module)'s use-list
766
767 * source/Interp.C (interp_init_helper): New procedure to initialize
768 the-bot-module (this is the old Interp::Startup verbatim)
769 (interp_post_startup_helper): New procedure to export
770 the-bot-module from bot_module
771 (Startup): Now calls interp_init_helper and
772 interp_post_startup_helper to initalize the bot module system
773
774 * source/Interp.H: Added private variable bot_module to Interp
775
776 2002-11-04 Clinton Ebadi <clinton@unknownlamer.org>
777
778 * scripts/bobot-utils.scm: Added bot: to regex functions (yes,
779 this breaks existing scripts, this is the unstable tree after all)
780
781 2002-11-03 Clinton Ebadi <clinton@unknownlamer.org>
782
783 * source/Mask.C (match): Made Mask::match case insensitive
784
785 2002-09-23 Clinton Ebadi <clinton@unknownlamer.org>
786
787 * source/Interp.C (scm_apply_wrapper): turned off locking of
788 Interp::mutex to see if this makes the bot work again...and it
789 does!
790
791 2002-09-07 Clinton Ebadi <clinton@unknownlamer.org>
792
793 * configure.ac: Removed arguments to AM_INIT_AUTOMAKE and updated
794 everything to use aclocal/automake 1.6
795
796 2002-08-27 Clinton Ebadi <clinton@unknownlamer.org>
797
798 * source/DCCPerson.H (class DCCPerson): Added
799 UserCommands::DCCList as a friend (friends are better than the old
800 DCC() function at least).
801
802 * source/DCCManager.H (class DCCManager): Added
803 UserCommands::DCCList as a friend
804
805 * source/Interp.H (class Interp): Made function scm_apply_wrapper
806 a friend so it can lock Interp::mutex
807
808 * source/Interp.C (scm_apply_wrapper): Lock Interp::mutex if
809 MULTITHREAD is defined (it is always defined when scripting is
810 enabled) so that Sockets can be made multithreaded using
811 CommonC++.
812
813 * source/DCCPerson.H: Removed DCC method and made Bot a friend
814 Made DCCManager a friend
815
816 * source/DCCManager.H (class DCCManager): Removed MAP() method
817 and made Bot a friend of DCCManager
818
819 2002-08-18 Clinton Ebadi <clinton@unknownlamer.org>
820
821 * source/Interp.C (Startup): Renamed bot:DCC-chat-send to
822 bot:dcc-chat-send.
823
824 * bobot++.texinfo (Hook Types): Fixed a typo (I wrote
825 user!nick@host instead of the correct nick!user@host).
826
827 * source/Interp.C (Startup): Register bot:DCC-chat-send
828
829 * source/ScriptCommands.C (sendDCCChatMessage): Added method again
830
831 2002-08-08 Clinton Ebadi <clinton@unknownlamer.org>
832
833 * source/String.C (String): The std::string copy constructor now
834 extracts the c_str of the std::string and then takes the strlen of
835 that before copying it. This fixes a bug with DCC where if you did
836 e.g. "!help" the bot would reply with "No TOPIC PRIVMSG FOUND" or
837 something like that, depending on what the last message was
838 because Socket will insert a \0 into its semi-static buffer, so
839 the len of the String will not equal the strlen of its char*.
840
841 2002-08-07 Clinton Ebadi <clinton@unknownlamer.org>
842
843 * source/DCCPerson.H: Removed destructor (I = idiot)
844
845 * source/DCCConnection.H: DCCManager is now a friend of
846 DCCConnection (ugh, the bot has way too many friends).
847
848 * source/DCCPerson.H: Added DCC member that returns a const
849 DCCConnection* (the dcc connection). This isn't saved anywhere
850 because when a DCCPerson is destroyed, its connection is also
851 destroyed.
852
853 * source/Bot.H: dccConnections is now a DCCManager
854
855 * source/DCCPerson.H: Added destructor
856 Added handleInput method
857
858 * source/DCCManager.C: New file
859 (addConnection): Wrote method, add a DCCConection to the manager
860
861 * source/DCCManager.H: New file
862
863 * source/Interp.C (Startup): Register bot:DCC-chat-send
864 (Startup): Removed sendDCCChatMessage stuff
865
866 * source/ScriptCommands.C (sendDCCChatMessage): New method:
867 sendDCCChatMessage (to, message) sends message to to.
868
869 * source/DCCConnection.C (connect): Run DCC_CHAT_BEGIN hook with
870 one arg: from (user!nick@host).
871
872 * source/DCCParser.C (parseLine): Runs DCC_CHAT_MESSAGE hook with
873 two args: from (user!nick@host) and line
874
875 2002-08-06 Clinton Ebadi <clinton@unknownlamer.org>
876
877 * source/Interp.C (Startup): Two new Scheme values:
878 hooks/dcc/chat-begin and hooks/dcc/chat-message for the
879 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE hooks.
880
881 * source/BotInterp.H: Added two new enum values to Hook:
882 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE for the DCC chat start and DCC
883 chat message hooks
884
885 2002-08-05 Clinton Ebadi <clinton@unknownlamer.org>
886
887 * source/Parser.C (parseCTCP): Removed call to htonl and fixed
888 DCC! Ack, sockets take their arguments in network byte order so
889 there is no need to convert to host...now DCC _sort of_ works.
890
891 2002-08-04 Clinton Ebadi <clinton@unknownlamer.org>
892
893 * source/UserList.C (save): Increment iterator twice to get around
894 bug (see BUGS #2)
895
896 * source/ServerQueue.C: Now sends SEND_* hooks instead of
897 triggered general hooks.
898
899 * source/Interp.C (Startup): New scheme side defines: hooks/send/*
900 (* = the new SEND_ hooks, but lowercase).
901
902 * source/BotInterp.H: New hook types (SEND_..., ... = ACTION,
903 CTCP, PUBLIC, MESSAGE). These are triggered on send messages.
904
905 2002-08-01 Clinton Ebadi <clinton@unknownlamer.org>
906
907 * source/Bot.C (set_log_file): Oops! Fixed logging. Now the bot
908 logs again.
909
910 * source/Socket.C (readLine): Now uses a static std::string that
911 starts out with 512 chars. This will never need to be resized for
912 usualy IRC messages, but might be for DCC messages
913
914 2002-07-31 Clinton Ebadi <clinton@unknownlamer.org>
915
916 * scripts/bobot-utils.scm (not-from-me): New syntax.
917
918 * source/ScriptCommands.C (AddHook): Now takes another optional
919 arg--name that will name the hook (see the hooks section in the
920 manual for what this does).
921
922 * source/BotInterp.H: Added name field to Hook
923
924 2002-07-29 Clinton Ebadi <clinton@unknownlamer.org>
925
926 * source/ServerQueue.C (sendPrivmsg): Now calls hooks on own
927 PRIVMSGes because the IRC server doesn't echo them back to the
928 bot. This could be useful for something (e.g. log script).
929
930 2002-07-27 Clinton Ebadi <clinton@unknownlamer.org>
931
932 * source/Interp.C (Shutdown): Runs bot:exit-hook hooks
933 (Startup): New var for Scheme: bot:exit-hook. Calls the thunks
934 associated with the hook when Interp::Shutdown is called (bot exit).
935
936 2002-07-23 Clinton Ebadi <clinton@unknownlamer.org>
937
938 * source/BotInterp.H (Hook<): Changed behavior of Hook's <. If a
939 hook is greater than or less than the other hook, only the
940 priority is considered. However, if both hooks have the same
941 priority, then the fallthru-ness is considered, with fallthru
942 hooks being greater than non-fallthru hooks.
943
944 * source/BotInterp.C (hptr_lt): Added this static function to be
945 used to sort the hooks list (now hooks should be sorted using
946 Hook's operator < instead of using pointer comparision, meaning
947 the new hook system will work correctly)
948
949 * scripts/bobot-utils.scm: Make bot:log use for-each instead of
950 map because we don't need the result of the displays (this would
951 just be a list of #<undefined> values and is a waste of memory).
952
953 2002-07-13 Clinton Ebadi <clinton@unknownlamer.org>
954
955 * source/Bot.C (Bot): userFunctions is now a map for efficiency
956 (worst case search is now NlogN instead of N). This improvement is
957 not as drastic as the one gained by making the Parser functions
958 list a map (because we don't scan this map for every message), but
959 it helps to clean up the code
960
961 2002-07-12 Clinton Ebadi <clinton@unknownlamer.org>
962
963 * source/Parser.H: Removed userFunctionsStruct
964
965 * source/Interp.C (Startup): ScriptCommands::sendCTCP registered
966 as bot:send-CTCP for Scheme
967
968 * source/ScriptCommands.C (sendCTCP): Wrote sendCTCP
969
970 2002-07-11 Clinton Ebadi <clinton@unknownlamer.org>
971
972 * source/ServerQueue.C (sendUser): Changed . . in USER command to
973 0 * (which is the Right Way to because <mode> must be a number...)
974
975 * source/Parser.C (init): New method of Parse. This initalizes the
976 functions map. functions replaces the old functions array, and
977 should yield better performance (since the functions array had to
978 be scanned for every incoming message)
979
980 * source/Parser.H: New member, functions (private)
981
982 2002-07-10 Clinton Ebadi <clinton@unknownlamer.org>
983
984 * source/Interp.C (Startup): New symbols: bot:user-*
985 [none|user|trusted|friend|master] are defined in Scheme as the
986 different levels of the users.
987 (Startup): All bot-* variables are now bot:*
988
989 2002-07-09 Clinton Ebadi <clinton@unknownlamer.org>
990
991 * source/Bot.H: Made some variables private because they shouldn't
992 be changed at runtime
993
994 * source/Parser.C (parseCTCP): Reneabled DCC CHAT (I want to test
995 this out to see if it works and make it work)
996
997 * source/Bot.C (Bot::Bot): New var: logs_dir. Set to the log file
998 dir.
999
1000 * scripts/bobot-utils.scm: Fixed a typo (I forgot the / after
1001 scripts in the user scripts dir) that made bobot++ not able to
1002 load scripts from the user scripts dir
1003
1004 2002-07-08 Clinton Ebadi <clinton@unknownlamer.org>
1005
1006 * source/BotInterp.C (RunHooks): Changed iterators to
1007 reverse_iterators because the hooks list is sorted in ascending
1008 order--higher priority and fallthrough hooks appear _after_ the
1009 lower priority and non-fallthrough hooks.
1010
1011 * source/Main.C (print_long_help): Added function
1012 (print_short_help): Renamed from printUsage
1013 (namespace): Most stuff in here is now defined in an anonymouse
1014 namespace so it doesn't have external linkage
1015 (real_main): Uses getopt_long instead of getopt. Added several
1016 command line arguments (bobotpp --help for a full list).
1017
1018 * scripts/bobot-utils.scm (bot-load): Function moved from
1019 bobot-scheme.scm
1020
1021 * source/Interp.C (Startup): Autoloads
1022 PREFIX/bobotpp/scripts/bobot-utils.scm now
1023 (Startup): New Scheme variable: bot-sys-scripts-dir (system
1024 scripts dir)
1025
1026 * source/bobot-scheme.scm.in: Removed
1027
1028 * source/Makefile.am: Removed bobot-scheme.scm compiliation
1029
1030 * configure.ac (PREFIX): configure.ac defined prefix now
1031
1032 * source/Main.C (real_main): Default configuration is now read
1033 from /etc/bobotpp/default
1034 * source/bobot-scheme.scm.in: Added file. This defines the
1035 'bot-load' procedure which will load a file from
1036 $HOME/.bobotpp/scripts/ or @datadir@/bobotpp/scripts/ if the
1037 script doesn't exist in the user script dir.
1038
1039 2002-07-01 Clinton Ebadi <clinton@unknownlamer.org>
1040
1041 * bobot++.texinfo: Started docs (just a skeleton right now)
1042
1043 * source/ScriptCommands.C (AddHook): Now takes pri and fall opt
1044 args to set a hooks priority and whether or not it will
1045 fallthrough. These args are optional.
1046
1047 * source/Interp.C (Startup): addhook now takes 3 req and 2 opt args
1048
1049 * source/BotInterp.C (AddHook): Now uses priority and fallthrough
1050 (RunHooks): exec fallthrough hooks first.
1051
1052 * source/BotInterp.H: Changed Hooks to have priority
1053 Added fhooksMap to BotInterp (fallthrough)
1054
1055 * source/UserCommands.C (AddShit): Converted to use Commands
1056
1057 2002-06-21 Clinton Ebadi <clinton@unknownlamer.org>
1058
1059 * source/Commands.C (AddUser): Fixed a one-off (function call was
1060 before a brace instead of after one) that caused a segfault when
1061 the user mask was a wildcard
1062
1063 2002-06-20 Clinton Ebadi <clinton@unknownlamer.org>
1064
1065 * all files: Updated address of the FSF
1066
1067 * source/UserCommands.C (AddUser): Uses Commands now instead of
1068 manipulating the bot directly
1069
1070 2002-06-18 Clinton Ebadi <clinton@unknownlamer.org>
1071
1072 * source/ScriptCommands.C (AddShit): Filled in function.
1073
1074 * source/Interp.C (Startup): Bind bot-adduser to
1075 ScriptCommands::AddUser instead of Action
1076 (Startup): Bind bot-addshit to ScriptCommands::AddShit
1077
1078 * source/ScriptCommands.C (AddUser): Filled in function
1079
1080 * source/ServerList.C (delServer): Changed (n - 1) to n...n-1
1081 would have caused problems if you used more than one server
1082
1083 * source/Parser.H: Changed const char* to String in userFunctionStruct
1084
1085 * source/String.H: Added std::string compatibility members
1086
1087 * configure.ac: You can now disable Crypt and scripting
1088
1089 * source/*: Added #include "config.h" where needed
1090
1091 * configure.ac: Added AM_CONFIG_HEADER
1092
1093 * config.h.in: added file
1094
1095 * source/Queue.C: Didn't notice iostream.h here! Fixed
1096
1097
1098 Copyright 2002,2003,2004,2005 Clinton Ebadi
1099 Copying and distribution of this file, with or without modification, are
1100 permitted provided the copyright notice and this notice are preserved.