1 2005-07-07 Clinton Ebadi <clinton@unknownlamer.org>
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
10 (bot.users): Expanded section
11 (bot.shit): Added section
13 * source/Interp.C (interp_init_helper): Added bot:shit/none
14 /no-ban, /no-kick, and /no-deop constants to Scheme
16 * scripts/bobot-utils.scm (bot:sent-to-me?): Redefined as a
17 closure (this should create the regexp once instead of each time
18 the function is called)
20 * examples/bot.autoexec: Updated sample bot.autoexec
22 * examples/bot.users: Updated sample bot.users
24 * examples/bot.conf: Updated sample config
26 2005-07-06 Clinton Ebadi <clinton@unknownlamer.org>
28 * bobot++.texinfo (Sent Message Hooks): Documented hooks/send/who
31 * source/ServerQueue.C (sendWho): Call hooks/send/who
32 (sendWhois): Call hooks/send/whois
34 * source/Interp.C (interp_init_helper): Added hooks/send/who and
35 hooks/send/whois constants to Scheme
37 * source/BotInterp.H: Added SEND_WHO and SEND_WHOIS hook constants
39 * bobot++.texinfo (Misc Scripting Stuff): Documented bot:who and
41 (bot.conf): Document MAXNICKLENGTH
43 * source/Interp.C (interp_init_helper): Add bot:who and bot:whois
46 * source/ScriptCommands.C (Who): Implemented Who method
47 Removed IQUEUE macro (no longer needed)
48 (Whois): Implemented Whois method
50 * source/ScriptCommands.H: Added Who and Whois methods
52 * source/Commands.C (Who): Implemented Who
53 (Whois): Implemented Whois
55 * source/Commands.H: Add Who and Whois tethods
57 * source/Interp.C: Updated copyright notice
58 (interp_init_helper): Remove send from CTCP/CTCPReply method names
60 * source/Interp.H: Updated copyright notice
62 * source/ScriptCommands.C (CTCP): Renamed from sendCTCP
63 (CTCPReply): Renamed from sendCTCPReply
65 2005-07-05 Clinton Ebadi <clinton@unknownlamer.org>
67 * bobot++.texinfo (Low Level Message Functions): Updated docs to
68 reflect new names for ctcp functions
70 * source/Interp.C (interp_init_helper): Register
71 ScriptCommands::Notice instead of sendNotice
72 (interp_init_helper): Renamed bot:send-ctcp to bot:ctcp
73 (interp_init_helper): Renamed bot:send-ctcp-reply to bot:ctcp-reply
75 * source/ScriptCommands.C (Notice): Renamed from sentNotice
77 * source/ScriptCommands.H: Renamed sendNotice to Notice
79 * bobot++.texinfo (Hook Types): Spelling fix
81 2005-07-04 Clinton Ebadi <clinton@unknownlamer.org>
83 * scripts/bobot-utils.scm (_deprecated-fun): Set
84 current-error-port to bot:logport while calling
85 issue-deprecation-warning
87 * bobot++.texinfo: Grammar fixes on the title page
88 (Configuration): Added more info on config files.
89 (bot.conf): Added xrefs for server syntax and channel syntax
90 (server syntax): Added more detail and moved a paragraph
91 (channel syntax): Added more details, revised the examples, and
92 moved some text around
93 (User Levels): Clarified
94 (Protection): Cleaned up
95 (Automatic Op): Improved substantially
97 * source/DCCManager.C (checkInput): Call hooks/dcc/chat-end if the
100 * scripts/bobot-utils.scm (bot:log): Updated to use bot:logport
101 instead of bot-logport
103 * source/Interp.C (interp_init_helper): Add hooks/dcc/chat-end
106 * bobot++.texinfo (DCC CHAT Hooks): Document hooks/dcc/chat-end
108 * source/BotInterp.H: Add DCC_CHAT_END to enum
110 * source/DCCManager.C (checkStale): Run hooks/dcc/chat-end when
111 deleting a stale connection.
113 2005-07-03 Clinton Ebadi <clinton@unknownlamer.org>
115 * bobot++.texinfo (Hook Types): Documented all hooks
117 * source/ServerQueue.C (sendPrivmsg): Changed SEND_MESSAGE hook to
118 match dest and pass dest to send hook
120 * bobot++.texinfo (Hook Types): Changed language of
121 hooks/dcc/chat-* hook documention
122 (Received Message Hooks): Added subsub section of Hook Types
123 (Sent Message Hooks): Added subsub section of Hook Types
124 (DCC CHAT Hooks): Added subsub section of Hook Types
125 (Miscellaneous Hooks): Added subsub section of Hook Types
127 * source/Parser.C (parseScriptFunction): Changed
128 lazy_apply_wrapper to Interp::LazyApplyWrapper
129 (parseScriptFunction): Changed empty_handler to Interp::EmptyHandler
130 (parsePart): Grammar fix in log (Leaved => Left)
132 * source/Interp.H (Interp): Added LazyHandler method
134 * source/BotInterp.C (RunHooks): changed lazy_apply_wrapper to
135 Interp::LazyApplyWrapper
136 (RunTimers): Changed empty_handler to Interp::EmptyHandler
137 (RunHooks): Changed empty_handler to Interp::EmptyHandler
138 (RunTimers): Changed lazy_apply_wrapper to Interp::LazyApplyWrapper
140 * source/Interp.C (LazyHandler): Renamed from lazy_handler
141 (ScmApplyWrapper): Renamed from scm_apply_wrapper
142 (EmptyHandler): Renamed from empty_handler
144 * source/Interp.H (Interp): Removed ErrorHandler method
145 (Interp): Added LazyApplyWrapper method
146 (Interp): Added EmptyHandler method
147 (Interp): Added ScmApplyWrapper method
149 * scripts/bobot-utils.scm: Added hooks/leave as an alias for hooks/part
150 Added begin-deprecated around deprecated definitions
151 (_deprecated-fun): Added macro to define an alias for a function
152 and issue a deprecation warning when used
153 Converted all bot- aliases to use _deprecated-fun
155 * source/Interp.C (interp_init_helper): Changed Hook::LEAVE to
157 (interp_init_helper): Removed definition of hooks/leave
159 * bobot++.texinfo (Hook Types): Removed stub for hooks/leave, only
160 document hooks/part name (hooks/leave still exists, but will not
161 be documented as it is the same as hooks/part)
163 * source/Parser.C (parsePart): Use Hook::PART instead of Hook::LEAVE
165 * source/BotInterp.H: Removed Hook::LEAVE, added Hook::PART
167 * bobot++.texinfo (Scripting): Added note about most arguments
170 * source/Commands.C (NextServer): Call hooks/disconnect
172 * source/Bot.C (run): Pass extra argument to Hook::DISCONNECT
174 * bobot++.texinfo (Creating a Hook): Reformatted the bot:addhook
175 section to make it more readable
176 (Hook Types): Reformatted hooks/action
177 (Hook Types): Changed grammar of hooks/nickname (their => his)
178 (Hook Types): Documented hooks/signoff
180 2005-06-29 Clinton Ebadi <clinton@unknownlamer.org>
182 * bobot++.texinfo: Updated copyright years, changed "applies to
185 * source/Socket.C (readLine): return buf.substr (0, pos) instead
186 of using the String char * constructor (this should be faster,
187 especially for long strings since a simple copy is used instead of
188 going over each char until nul is encountered)
190 * configure.ac: Release 2.1.8
191 Change version to 2.1.9CVS
193 * source/Parser.C: Include Commands.H (fixes --disable-scripting build)
195 * source/Bot.C (Bot): Fix to make a --disable-scripting build work
197 * bobot++.texinfo (Configuration): Swapped order of config file
198 placement and config files
199 (User Levels): users not found in the user list *can* execute
200 commands as bot:user-none now.
201 (Low Level Message Functions): Changed a few @code{}s to @var{}s
203 2005-06-28 Clinton Ebadi <clinton@unknownlamer.org>
205 * bobot++.texinfo: @vskip Opt... => @vskip 0pt...
207 * source/Main.C (namespace): Added debug-scripts option
209 * source/Parser.C (parseCTCP): Hook::ACTION is now passed
210 from->getNick () instead of from->getAddress () (consistency fix)
212 * source/Main.C: Merged error handling patch from dsmith
214 * source/Parser.C: Merged error handling
217 * source/Interp.H: Merged error handling patch from dsmith
219 * source/Interp.C (lazy_handler): Merged error handling patch from
222 * source/BotInterp.H: Merged error handling patch from dsmith
224 * source/BotInterp.C: Merged error handling patch from dsmith
226 * bobot++.texinfo (Low Level Message Functions): Documented
229 * source/Parser.C (parseCTCP): Converted to use Commands::CTCPReply
231 * source/Interp.C (interp_init_helper): Bound bot:send-ctcp-reply
234 * bobot++.texinfo (Low Level Message Functions):
235 s/bot:send-CTCP/bot:send-ctcp/
237 * source/Interp.C (interp_init_helper): Renamed bot:send-CTCP to
240 * source/ScriptCommands.H: Uncommented sendCTCPReply prototype
242 * source/ScriptCommands.C (sendCTCP): Convert to use Commands::CTCP
243 (sendCTCPReply): Added
245 * source/Parser.C (parseJoin): Convert to use Commands::CTCP
247 * source/Commands.C (CTCP): Implemented
248 (CTCPReply): Implemented
249 (Action): Convert to use Commands::CTCP
251 * source/Commands.H: Added CTCP (bot, target, command, message)
252 Added CTCPReply (bot, target, command, message)
254 2005-06-27 Clinton Ebadi <clinton@unknownlamer.org>
256 * examples/bot.conf (maxnicklength): Update example config
258 * source/Utils.C (valid_nickname_p): Use b->MAX_NICKLENGTH
260 * source/Bot.C (readConfig): Look for MAXNICKLENGTH parameter
262 * source/Bot.H: Added MAX_NICKLENGTH member
264 * source/Utils.H (valid_nickname_p): Now takes Bot* as first argument
266 * source/Commands.C (Msg): Send multiple PRIVMSGs when a message
269 * source/UserCommands.C (SetVersion): Convert to use Commands::Notice
271 * source/Commands.C (Notice): Send multiple NOTICEs when a message
274 2005-06-25 Clinton Ebadi <clinton@unknownlamer.org>
276 * source/Main.C (real_main): Enable Guile debugging mode when
279 * source/Interp.C (interp_post_startup_helper): Return
280 SCM_UNSPECIFIED instead of 0
282 2005-06-24 Clinton Ebadi <clinton@unknownlamer.org>
284 * All: Updated FSF street address
286 * source/Commands.C (Msg): Move body of Say to an if inside of this
289 * source/ScriptCommands.C (sendNotice): Returns error code instead
292 * source/Commands.C (Say): Check to make sure target is a channel
293 (Msg): Extended to send messages to channels
295 2005-06-23 Clinton Ebadi <clinton@unknownlamer.org>
297 * scripts/bot.scm: Added file ((bobotpp bot) module for other
298 modules to gain access to bobot++ interface)
300 * source/Commands.C (Notice): Commented out check/abort if target
301 is a channel (there doesn't seem to be a reason for this to not work)
303 * source/Interp.C (interp_init_helper): Register bot:notice with scheme
305 * bobot++.texinfo (High Level Message Functions): Document bot:notice
307 * source/Message.H: Added operator== to Message (tests for error
310 * source/Commands.C: Removed message type macros
312 * source/Message.H: Moved message type macros to Message.H
314 * source/ScriptCommands.C (sendNotice): Implemented sendNotice
316 * source/ScriptCommands.H: Uncomment sendNotice
318 * source/Bot.C (waitForInput): Use %02d when formatting
319 Hooks::TIMER argument instead of %2d, and switch to snprintf to
322 * bobot++.texinfo (Hooks): Clarified intro text about hooks (order
325 * source/Bot.C (run): Added call to Hooks::DISCONNECT
326 (hooks/disconnect) when the bot is disconnected from the server
328 * bobot++.texinfo: Applied documentation patch from Dale P. Smith
329 (Hook Types): Added hooks/disconnect argument
331 2005-06-06 Clinton Ebadi <clinton@unknownlamer.org>
333 * bobot++.texinfo: Change @vskip 0 to @vskip 0pt to make this work
334 again (thanks dsmith)
336 2005-06-01 Clinton Ebadi <clinton@unknownlamer.org>
338 * source/Interp.C (interp_init_helper): Added
339 bot:protection/[none|ban|kick|deop] constants to Scheme
340 (interp_init_helper): Added bot:aop/[yes|no] constants
342 2005-05-31 Clinton Ebadi <clinton@unknownlamer.org>
344 * configure.ac: Release Bobot++ 2.1.7
345 Changed version to 2.18.CVS
347 * source/UserList.C (save): Remove workaround for BUG #2
349 * source/Parser.C (parse001): make realNick lowercase when doing
350 the comparison to bot->nickName to prevent pushing a second copy
351 of the bot onto the userlist (closes BUG #2)
353 * source/Bot.C (Bot): cleaned up constructor
354 (waitForInput): replaced gh_list with scm_list_n
356 * source/UserList.C: Cleaned up some formatting
358 * source/Main.C: Formatted code more cleanly
359 (real_main): changed a few Strings to std::strings
361 * source/String.C (operator): Made index signed again, it's not
362 worth fixing this warning
364 * source/Bot.C: Add casts to make this compile with unsigned int
365 as operator[] in String
367 * source/String.C (operator): Made index unsigned
369 * source/Utils.C: Made a few things unsigned to kill warnings
371 * source/Socket.C (readLine): Made pos unsigned
373 * source/Bot.C (Bot): Fixed initializer list order to kill warnings
375 * source/BotInterp.C (RunTimers): Removed unused variable (Timer *t)
377 * source/StringTokenizer.C (count_tokens): Changed return type to
379 (more_tokens_p): Made counter unsigned
381 * source/StringTokenizer.H (class StringTokenizer): Made pos
382 std::string::size_type instead of int
384 * source/Commands.C (TBan): Returns Ok is the ban is done instead
385 of falling off the end (oops)
387 * source/BotInterp.H: Add general catch case (false)
389 2005-03-11 Clinton Ebadi <clinton@unknownlamer.org>
391 * configure.ac: Release 2.1.6
392 Changed version to 2.1.7CVS
394 2005-02-28 Clinton Ebadi <clinton@unknownlamer.org>
396 * source/Parser.C (parseLine): use map<>::find and an iterator to
397 find the IRC command instead of map<>::operator[] to avoid a
400 * source/Bot.C (waitForInput): Removed commented out code
402 * source/Socket.C (readLine): return String (buf.c_str ()) instead
403 of String (buf) so that only the buffer up to the first null is returned
404 (readLine): Added a comment explaining the usage of buf
405 (readLine): Changed type of length (std::string::size_type instead
408 * source/String.C: Reimplemented String on top of std::string to
409 fix a few bugs and potential memory leaks
410 (toLower): use Utils::to_lower
411 (toUpper): Use Utils::to_upper
412 (trim): Use Utils::trim_str
414 * source/String.H: removed srep, replaced it with a std::string
417 * source/Utils.C (to_upper): Applied patch from Jos Hulzink
419 (trim_str): Appled patch from Jos Hulzink <josh@stack.nl> (fixes
420 counters and substr call)
422 * source/StringTokenizer.C (next_token): Applied patch from Jos
423 Hulzink <josh@stack.nl> (fixes substr call)
424 (rest): Applied patch from Jos Hulzink <josh@stack.nl> (fixes
427 2005-02-27 Clinton Ebadi <clinton@unknownlamer.org>
429 * source/Bot.H (COPYRIGHT_STRING): Remove Michael Wilson because
430 he is a lazy bum and never submitted the String replacing patch
432 2005-01-23 Clinton Ebadi <clinton@unknownlamer.org>
434 * configure.ac: Remove CC++ test
435 Changed version to 2.1.6CVS (2.1.5 released)
437 * bobot++.texinfo: Updated copyright
439 2005-01-16 Clinton Ebadi <clinton@unknownlamer.org>
441 * TODO (General): Added TODO items
442 (2.2): Moved a few items here from 2.4
444 * README (NOTE): Mention boost requirement
446 2005-01-13 Clinton Ebadi <clinton@unknownlamer.org>
448 * ChangeLog Updated copryight
450 * source/User.H: Removed forward declaration of Utils
452 * source/Bot.H: Removed forward declaration of Utils
454 * source/ChannelList.H: Removed forward declaration of Utils
456 * source/UserListItem.H: Removed forward declaration of Utils
458 * source/Utils.H: Removed class Utils, replaced with a namspace
459 (it only contained static methods)
461 * source/Bot.H (COPYRIGHT_STRING): Added 2005 and Michael Wilson
462 (he is replacing String)
464 2005-01-12 Clinton Ebadi <clinton@unknownlamer.org>
466 * source/BotConfig.C (set_option_value): Put watcher calling
467 inside of if (cf_iter != end()) to fix a segfault (if the cf_iter
468 = end then there are no watchers since this is a new value and
469 references cf_iter->second segfaults)
471 * source/Utils.C (trim_str): Fixed bug (last non-space character
474 * source/BotConfig.C (read_config): Made to use set_option_value
475 instead of manipulating options_db directly
477 * source/BotConfig.H (class BotConfig): Add set_option_value that
478 takes a t_value instead of t_value_list (most uss of
479 set_option_value will be to add a single value so this is very useful)
481 * source/BotConfig.C (set_option_value): Implemented
483 * source/UserList.C: Made to work with new Utils/StringTokenizer names
485 * source/UserCommands.C: Made to work with new
486 Utils/StringTokenizer names
488 * source/ShitList.C: Uses Utils.H now (Utils::trim_str & friends)
490 2005-01-11 Clinton Ebadi <clinton@unknownlamer.org>
492 * source/ShitList.C: Made to work with new StringTokenizer names
494 * source/ServerQueueItem.C: Made to work with new StringTokenizer names
496 * source/ServerQueue.C: Made to work with new Utils names
498 * source/ScriptCommands.C: Made work with new Utils names
500 * source/Person.C (getNick): Made work with new Utils names
502 * source/String.H: Added substr prototypes
504 * source/String.C (substr): Added substr as an alias of subString
505 (for compat with std::string before the transition)
507 * source/Parser.C: Made to work with new Utils/StringTokenizer names
509 * source/DCCParser.C: Made to work with new Utils names
511 * source/DCCChatConnection.C: Made to work new Utils names
513 * source/Commands.C: Made to work with new Utils names
515 * source/Channel.C: Made to work with new Utils names
517 * source/BotInterp.C: Made to work with new Utils
519 * source/Bot.C: Made to work with new Utils/StringTokenizer names
521 * source/String.C (operator=): Unremoved operator=(std::string)
523 * source/String.H: Unremoved operator=(std::string)
525 * source/BotConfig.C (read_config): Use Utils::trim_str
527 * source/String.C (trim): Fixed bug (p->s[i] == '\r', s/i/j/)
529 * source/Utils.C (trim_str): Implemented
531 * source/Utils.H: Added tim_str (replaces String::trim)
533 * source/BotConfig.C: Made everything work with new
534 StringTokenizer and Utils names
536 * source/Utils.H: Added to_lower
539 * source/StringTokenizer.C (rest): uses std::isspace instead of
540 checking st[pos] against ' ' and '\t'
542 * source/StringTokenizer.H: Removed CamelCasing
543 Renamed hasMoreTokens to more_tokens_p
545 * source/StringTokenizer.C: Converted to use std::string
547 * source/StringTokenizer.H: Converted to use std::string
549 * source/String.C: Removed operator=(std::string)
551 * source/String.H: Removed operator=(std::string)
553 * source/Utils.C: Added copyright
554 Reformatted to match GNU coding standard more closely
555 Converted everything to use std::string
556 (get_nick): Renamed from getNick
557 (get_userhost): Renamed from getUserHost
558 (get_key): Renamed from getKey
559 (IP_p): Renamed from isIP
560 (make_wildcard): Renamed from makeWildcard
561 (channel_p): Renamed from isChannel
562 (wildcard_p): Renamed from isWildcard
563 (valid_channel_name_p): Renamed from isValidChannelName
564 (valid_nickname_p): Renamed from isValidNickName
565 (get_level): Renamed from getLevel
566 (str2time): Renamed from strToTime
567 (str2time): Fixed potential buffer overflow (num[512] => std::string)
568 (level2str): Renamed from levelToStr
569 (prot2str): Renamed from protToStr
570 (bool2str): Renamed from boolToStr
571 (long2str): Implemented
572 (scm2str): Renamed from scm2String
573 (str2scm): Renamed from string2SCM
575 * source/BotConfig.C: Reformatted to fit GNU coding style more closely
577 * source/Utils.H: Added long2str (long int -> std::string)
579 * source/String.H: Added 2003 copyright (the year I last modified
582 * source/String.C: Added 2002 copyright (the year I last modified
585 * source/Utils.H: Updated Copyright
586 s/String/std::string/g
587 Removed camel casing and is* = *_p
590 * source/BotConfig.C: Updated Copyright
592 * source/BotConfig.H: Updated copyright
594 2005-01-08 Clinton Ebadi <clinton@unknownlamer.org>
596 * source/BotConfig.C (set_option_value): Take care of the case
597 where key is not already in the db
598 (add_watcher): Implemented
599 (read_config): Removed ',' token parsing (not needed)
601 * configure.ac: Add AC_LANG([C++]) so we can check for C++ libs
602 AC_CHECK_LIB ccgnu2 (CommonC++2)
604 * README: Updated README (reformatted, adding info, etc.)
606 2005-01-07 Clinton Ebadi <clinton@unknownlamer.org>
608 * source/BotConfig.C (set_option_value): call watcher list
609 (run_fun_): Added to support watcher list calling
611 2005-01-06 Clinton Ebadi <clinton@unknownlamer.org>
613 * source/BotConfig.C (set_option_value): Fuck you STL
614 (push_back_): Reimplemented so that it doesn't need std::bind1st
615 because the STL is being stupid
617 2004-12-26 Clinton Ebadi <clinton@unknownlamer.org>
619 * source/BotConfig.C (read_config): Implemented properly
620 (get_option_values): Implemented properly
621 (set_config_file): Fixed
623 2004-07-10 Clinton Ebadi <clinton@unknownlamer.org>
625 * bobot++.texinfo (Built-In Commands): Added empty stubs to the
628 2004-06-22 Clinton Ebadi <clinton@unknownlamer.org>
630 * source/BotConfig.C: New file (implementation of configuration database)
632 * source/BotConfig.H: New File (semi-generic configuration database)
634 2004-06-17 Clinton Ebadi <clinton@unknownlamer.org>
636 * bobot++.texinfo (Starting the Bot): New section
638 2004-06-14 Clinton Ebadi <clinton@unknownlamer.org>
640 * bobot++.texinfo (Protection): Added Section
641 (User Levels): Rewrote section to be useful
642 (bot.users): Added section
644 2004-06-12 Clinton Ebadi <clinton@unknownlamer.org>
646 * source/DCCChatConnection.C (connect): Checks to make sure the
647 person initiating a DCC CHAT with the bot is at least a FRIEND of
650 * README: Fixed a typo
652 * scripts/bobot-utils.scm (ctcp-quote): Implemented ctcp-quote
653 (bot:ctcp-quote): Renamed ctcp-quote to bot:ctcp-quite (whoops)
655 2004-05-28 Clinton Ebadi <clinton@unknownlamer.org>
657 * bobot++.texinfo (bot.conf): Finished section
658 (server syntax): New section, documents the bot.conf SERVER syntax
659 (channel syntax): New section, documentes the bot.conf CHANNEL syntax
661 2004-05-13 Clinton Ebadi <clinton@unknownlamer.org>
663 * source/Main.C (real_main): std::exit instead of exit
665 2004-05-12 Clinton Ebadi <clinton@unknownlamer.org>
667 * source/DCCConnection.C (DCCConnection): Intialized `nuh' in the
668 constructor with `n' This should fix the segfaulting.
670 2004-01-28 Clinton Ebadi <clinton@unknownlamer.org>
672 * ChangeLog: Updated copyright notice
674 2004-01-09 Clinton Ebadi <clinton@unknownlamer.org>
676 * source/Interp.C (interp_init_helper): Register
677 bot:change-command-level
679 * source/ScriptCommands.C (ChangeCommandLevel): Added
680 ChangeCommandLevel to change the level a user needs to be to run a
683 * source/ScriptCommands.H: Added ChangeCommandLevel
685 2003-10-12 Clinton Ebadi <clinton@unknownlamer.org>
687 * source/String.H: Changed #define STRING_H to BSTRING_H
689 2003-08-04 Clinton Ebadi <clinton@unknownlamer.org>
691 * scripts/bobot-utils.scm (bot:sent-to-me?): New procedure, used
692 to see if a message was sent to the bot (this is better than
693 bot:match-to-me because the hook isn't invalidated when the bot's
696 * source/DCCConnection.H: Added `nuh' back and added an
698 Added setter `set_autoRemove(bool)'
700 * source/DCCConnection.H: Removed all friends
701 Added accessors (get_bot, get_lastSpoken, get_autoRemove; get_bot
702 reveals the pointer to the bot [PRIVATE POINTER] which probably
703 isn't so nice, but there isn't much to be done about it with the
704 current design of the bot)
706 * source/DCCChatConnection.H: Removed all friends
708 * source/DCCConnection.H: DCCConnection is now a pure virtual
709 class with the subclass DCCChatConnection
711 2003-07-29 Clinton Ebadi <clinton@unknownlamer.org>
713 * source/Socket.C (connect): log errors to the bot log instead of
716 2003-07-23 Clinton Ebadi <clinton@unknownlamer.org>
718 * source/Parser.C (parseMessage): use the find method of std::map
719 to find the command to call instead of [] and then extract the
720 pointer to the userFunction from that if it exists. This appears
721 to fix the crash when one uses an undefined command followed by
724 2003-04-09 Clinton Ebadi <clinton@unknownlamer.org>
726 * source/Interp.C (interp_init_helper): Bind bot:setfloodrate to
727 ScriptCommands::SetFloodRate
729 * source/ScriptCommands.C (SetFloodRate): New Method: SetFloodRate
731 * source/Bot.C (init_user_functions): Make SETFLOODRATE available
734 * source/Bot.H: Made MAX_MESSAGES writeable
736 * source/UserCommands.H: New method: SetFloodRate
738 * source/Commands.H: New method: SetFloodRate
740 2003-04-03 Clinton Ebadi <clinton@unknownlamer.org>
742 * configure.ac: Merged all AC_OUTPUTs at the end
744 2003-04-02 Clinton Ebadi <clinton@unknownlamer.org>
746 * scripts/bobot-utils.scm: Make exported symbols from
747 the-bot-module available in the guile-user module so that scripts
748 loaded with Interp::Load function.
750 2003-03-30 Clinton Ebadi <clinton@unknownlamer.org>
752 * scripts/bobot-utils.scm (bot:load-module): Loads a file from the
753 %bot:loadpath into its own module and returns that (unnamed) module
754 (bot:use-module): Calls bot:load-module and then adds the newly
755 loaded module to the (current-module)'s use-list
757 * source/Interp.C (interp_init_helper): New procedure to initialize
758 the-bot-module (this is the old Interp::Startup verbatim)
759 (interp_post_startup_helper): New procedure to export
760 the-bot-module from bot_module
761 (Startup): Now calls interp_init_helper and
762 interp_post_startup_helper to initalize the bot module system
764 * source/Interp.H: Added private variable bot_module to Interp
766 2002-11-04 Clinton Ebadi <clinton@unknownlamer.org>
768 * scripts/bobot-utils.scm: Added bot: to regex functions (yes,
769 this breaks existing scripts, this is the unstable tree after all)
771 2002-11-03 Clinton Ebadi <clinton@unknownlamer.org>
773 * source/Mask.C (match): Made Mask::match case insensitive
775 2002-09-23 Clinton Ebadi <clinton@unknownlamer.org>
777 * source/Interp.C (scm_apply_wrapper): turned off locking of
778 Interp::mutex to see if this makes the bot work again...and it
781 2002-09-07 Clinton Ebadi <clinton@unknownlamer.org>
783 * configure.ac: Removed arguments to AM_INIT_AUTOMAKE and updated
784 everything to use aclocal/automake 1.6
786 2002-08-27 Clinton Ebadi <clinton@unknownlamer.org>
788 * source/DCCPerson.H (class DCCPerson): Added
789 UserCommands::DCCList as a friend (friends are better than the old
790 DCC() function at least).
792 * source/DCCManager.H (class DCCManager): Added
793 UserCommands::DCCList as a friend
795 * source/Interp.H (class Interp): Made function scm_apply_wrapper
796 a friend so it can lock Interp::mutex
798 * source/Interp.C (scm_apply_wrapper): Lock Interp::mutex if
799 MULTITHREAD is defined (it is always defined when scripting is
800 enabled) so that Sockets can be made multithreaded using
803 * source/DCCPerson.H: Removed DCC method and made Bot a friend
804 Made DCCManager a friend
806 * source/DCCManager.H (class DCCManager): Removed MAP() method
807 and made Bot a friend of DCCManager
809 2002-08-18 Clinton Ebadi <clinton@unknownlamer.org>
811 * source/Interp.C (Startup): Renamed bot:DCC-chat-send to
814 * bobot++.texinfo (Hook Types): Fixed a typo (I wrote
815 user!nick@host instead of the correct nick!user@host).
817 * source/Interp.C (Startup): Register bot:DCC-chat-send
819 * source/ScriptCommands.C (sendDCCChatMessage): Added method again
821 2002-08-08 Clinton Ebadi <clinton@unknownlamer.org>
823 * source/String.C (String): The std::string copy constructor now
824 extracts the c_str of the std::string and then takes the strlen of
825 that before copying it. This fixes a bug with DCC where if you did
826 e.g. "!help" the bot would reply with "No TOPIC PRIVMSG FOUND" or
827 something like that, depending on what the last message was
828 because Socket will insert a \0 into its semi-static buffer, so
829 the len of the String will not equal the strlen of its char*.
831 2002-08-07 Clinton Ebadi <clinton@unknownlamer.org>
833 * source/DCCPerson.H: Removed destructor (I = idiot)
835 * source/DCCConnection.H: DCCManager is now a friend of
836 DCCConnection (ugh, the bot has way too many friends).
838 * source/DCCPerson.H: Added DCC member that returns a const
839 DCCConnection* (the dcc connection). This isn't saved anywhere
840 because when a DCCPerson is destroyed, its connection is also
843 * source/Bot.H: dccConnections is now a DCCManager
845 * source/DCCPerson.H: Added destructor
846 Added handleInput method
848 * source/DCCManager.C: New file
849 (addConnection): Wrote method, add a DCCConection to the manager
851 * source/DCCManager.H: New file
853 * source/Interp.C (Startup): Register bot:DCC-chat-send
854 (Startup): Removed sendDCCChatMessage stuff
856 * source/ScriptCommands.C (sendDCCChatMessage): New method:
857 sendDCCChatMessage (to, message) sends message to to.
859 * source/DCCConnection.C (connect): Run DCC_CHAT_BEGIN hook with
860 one arg: from (user!nick@host).
862 * source/DCCParser.C (parseLine): Runs DCC_CHAT_MESSAGE hook with
863 two args: from (user!nick@host) and line
865 2002-08-06 Clinton Ebadi <clinton@unknownlamer.org>
867 * source/Interp.C (Startup): Two new Scheme values:
868 hooks/dcc/chat-begin and hooks/dcc/chat-message for the
869 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE hooks.
871 * source/BotInterp.H: Added two new enum values to Hook:
872 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE for the DCC chat start and DCC
875 2002-08-05 Clinton Ebadi <clinton@unknownlamer.org>
877 * source/Parser.C (parseCTCP): Removed call to htonl and fixed
878 DCC! Ack, sockets take their arguments in network byte order so
879 there is no need to convert to host...now DCC _sort of_ works.
881 2002-08-04 Clinton Ebadi <clinton@unknownlamer.org>
883 * source/UserList.C (save): Increment iterator twice to get around
886 * source/ServerQueue.C: Now sends SEND_* hooks instead of
887 triggered general hooks.
889 * source/Interp.C (Startup): New scheme side defines: hooks/send/*
890 (* = the new SEND_ hooks, but lowercase).
892 * source/BotInterp.H: New hook types (SEND_..., ... = ACTION,
893 CTCP, PUBLIC, MESSAGE). These are triggered on send messages.
895 2002-08-01 Clinton Ebadi <clinton@unknownlamer.org>
897 * source/Bot.C (set_log_file): Oops! Fixed logging. Now the bot
900 * source/Socket.C (readLine): Now uses a static std::string that
901 starts out with 512 chars. This will never need to be resized for
902 usualy IRC messages, but might be for DCC messages
904 2002-07-31 Clinton Ebadi <clinton@unknownlamer.org>
906 * scripts/bobot-utils.scm (not-from-me): New syntax.
908 * source/ScriptCommands.C (AddHook): Now takes another optional
909 arg--name that will name the hook (see the hooks section in the
910 manual for what this does).
912 * source/BotInterp.H: Added name field to Hook
914 2002-07-29 Clinton Ebadi <clinton@unknownlamer.org>
916 * source/ServerQueue.C (sendPrivmsg): Now calls hooks on own
917 PRIVMSGes because the IRC server doesn't echo them back to the
918 bot. This could be useful for something (e.g. log script).
920 2002-07-27 Clinton Ebadi <clinton@unknownlamer.org>
922 * source/Interp.C (Shutdown): Runs bot:exit-hook hooks
923 (Startup): New var for Scheme: bot:exit-hook. Calls the thunks
924 associated with the hook when Interp::Shutdown is called (bot exit).
926 2002-07-23 Clinton Ebadi <clinton@unknownlamer.org>
928 * source/BotInterp.H (Hook<): Changed behavior of Hook's <. If a
929 hook is greater than or less than the other hook, only the
930 priority is considered. However, if both hooks have the same
931 priority, then the fallthru-ness is considered, with fallthru
932 hooks being greater than non-fallthru hooks.
934 * source/BotInterp.C (hptr_lt): Added this static function to be
935 used to sort the hooks list (now hooks should be sorted using
936 Hook's operator < instead of using pointer comparision, meaning
937 the new hook system will work correctly)
939 * scripts/bobot-utils.scm: Make bot:log use for-each instead of
940 map because we don't need the result of the displays (this would
941 just be a list of #<undefined> values and is a waste of memory).
943 2002-07-13 Clinton Ebadi <clinton@unknownlamer.org>
945 * source/Bot.C (Bot): userFunctions is now a map for efficiency
946 (worst case search is now NlogN instead of N). This improvement is
947 not as drastic as the one gained by making the Parser functions
948 list a map (because we don't scan this map for every message), but
949 it helps to clean up the code
951 2002-07-12 Clinton Ebadi <clinton@unknownlamer.org>
953 * source/Parser.H: Removed userFunctionsStruct
955 * source/Interp.C (Startup): ScriptCommands::sendCTCP registered
956 as bot:send-CTCP for Scheme
958 * source/ScriptCommands.C (sendCTCP): Wrote sendCTCP
960 2002-07-11 Clinton Ebadi <clinton@unknownlamer.org>
962 * source/ServerQueue.C (sendUser): Changed . . in USER command to
963 0 * (which is the Right Way to because <mode> must be a number...)
965 * source/Parser.C (init): New method of Parse. This initalizes the
966 functions map. functions replaces the old functions array, and
967 should yield better performance (since the functions array had to
968 be scanned for every incoming message)
970 * source/Parser.H: New member, functions (private)
972 2002-07-10 Clinton Ebadi <clinton@unknownlamer.org>
974 * source/Interp.C (Startup): New symbols: bot:user-*
975 [none|user|trusted|friend|master] are defined in Scheme as the
976 different levels of the users.
977 (Startup): All bot-* variables are now bot:*
979 2002-07-09 Clinton Ebadi <clinton@unknownlamer.org>
981 * source/Bot.H: Made some variables private because they shouldn't
982 be changed at runtime
984 * source/Parser.C (parseCTCP): Reneabled DCC CHAT (I want to test
985 this out to see if it works and make it work)
987 * source/Bot.C (Bot::Bot): New var: logs_dir. Set to the log file
990 * scripts/bobot-utils.scm: Fixed a typo (I forgot the / after
991 scripts in the user scripts dir) that made bobot++ not able to
992 load scripts from the user scripts dir
994 2002-07-08 Clinton Ebadi <clinton@unknownlamer.org>
996 * source/BotInterp.C (RunHooks): Changed iterators to
997 reverse_iterators because the hooks list is sorted in ascending
998 order--higher priority and fallthrough hooks appear _after_ the
999 lower priority and non-fallthrough hooks.
1001 * source/Main.C (print_long_help): Added function
1002 (print_short_help): Renamed from printUsage
1003 (namespace): Most stuff in here is now defined in an anonymouse
1004 namespace so it doesn't have external linkage
1005 (real_main): Uses getopt_long instead of getopt. Added several
1006 command line arguments (bobotpp --help for a full list).
1008 * scripts/bobot-utils.scm (bot-load): Function moved from
1011 * source/Interp.C (Startup): Autoloads
1012 PREFIX/bobotpp/scripts/bobot-utils.scm now
1013 (Startup): New Scheme variable: bot-sys-scripts-dir (system
1016 * source/bobot-scheme.scm.in: Removed
1018 * source/Makefile.am: Removed bobot-scheme.scm compiliation
1020 * configure.ac (PREFIX): configure.ac defined prefix now
1022 * source/Main.C (real_main): Default configuration is now read
1023 from /etc/bobotpp/default
1024 * source/bobot-scheme.scm.in: Added file. This defines the
1025 'bot-load' procedure which will load a file from
1026 $HOME/.bobotpp/scripts/ or @datadir@/bobotpp/scripts/ if the
1027 script doesn't exist in the user script dir.
1029 2002-07-01 Clinton Ebadi <clinton@unknownlamer.org>
1031 * bobot++.texinfo: Started docs (just a skeleton right now)
1033 * source/ScriptCommands.C (AddHook): Now takes pri and fall opt
1034 args to set a hooks priority and whether or not it will
1035 fallthrough. These args are optional.
1037 * source/Interp.C (Startup): addhook now takes 3 req and 2 opt args
1039 * source/BotInterp.C (AddHook): Now uses priority and fallthrough
1040 (RunHooks): exec fallthrough hooks first.
1042 * source/BotInterp.H: Changed Hooks to have priority
1043 Added fhooksMap to BotInterp (fallthrough)
1045 * source/UserCommands.C (AddShit): Converted to use Commands
1047 2002-06-21 Clinton Ebadi <clinton@unknownlamer.org>
1049 * source/Commands.C (AddUser): Fixed a one-off (function call was
1050 before a brace instead of after one) that caused a segfault when
1051 the user mask was a wildcard
1053 2002-06-20 Clinton Ebadi <clinton@unknownlamer.org>
1055 * all files: Updated address of the FSF
1057 * source/UserCommands.C (AddUser): Uses Commands now instead of
1058 manipulating the bot directly
1060 2002-06-18 Clinton Ebadi <clinton@unknownlamer.org>
1062 * source/ScriptCommands.C (AddShit): Filled in function.
1064 * source/Interp.C (Startup): Bind bot-adduser to
1065 ScriptCommands::AddUser instead of Action
1066 (Startup): Bind bot-addshit to ScriptCommands::AddShit
1068 * source/ScriptCommands.C (AddUser): Filled in function
1070 * source/ServerList.C (delServer): Changed (n - 1) to n...n-1
1071 would have caused problems if you used more than one server
1073 * source/Parser.H: Changed const char* to String in userFunctionStruct
1075 * source/String.H: Added std::string compatibility members
1077 * configure.ac: You can now disable Crypt and scripting
1079 * source/*: Added #include "config.h" where needed
1081 * configure.ac: Added AM_CONFIG_HEADER
1083 * config.h.in: added file
1085 * source/Queue.C: Didn't notice iostream.h here! Fixed
1088 Copyright 2002,2003,2004,2005 Clinton Ebadi
1089 Copying and distribution of this file, with or without modification, are
1090 permitted provided the copyright notice and this notice are preserved.