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