1 2003-04-09 Clinton Ebadi <clinton@unknownlamer.org>
3 * source/Interp.C (interp_init_helper): Bind bot:setfloodrate to
4 ScriptCmmands::SetFloodRate
6 * source/ScriptCommands.C (SetFloodRate): New Method: SetFloodRate
8 * source/Bot.C (init_user_functions): Make SETFLOODRATE available
11 * source/Bot.H: Made MAX_MESSAGES writeable
13 * source/UserCommands.H: New method: SetFloodRate
15 * source/Commands.H: New method: SetFloodRate
17 2003-04-03 Clinton Ebadi <clinton@unknownlamer.org>
19 * configure.ac: Merged all AC_OUTPUTs at the end
21 2003-04-02 Clinton Ebadi <clinton@unknownlamer.org>
23 * scripts/bobot-utils.scm: Make exported symbols from
24 the-bot-module available in the guile-user module so that scripts
25 loaded with Interp::Load function.
27 2003-03-30 Clinton Ebadi <clinton@unknownlamer.org>
29 * scripts/bobot-utils.scm (bot:load-module): Loads a file from the
30 %bot:loadpath into its own module and returns that (unnamed) module
31 (bot:use-module): Calls bot:load-module and then adds the newly
32 loaded module to the (current-module)'s use-list
34 * source/Interp.C (interp_init_helper): New procedure to initialize
35 the-bot-module (this is the old Interp::Startup verbatim)
36 (interp_post_startup_helper): New procedure to export
37 the-bot-module from bot_module
38 (Startup): Now calls interp_init_helper and
39 interp_post_startup_helper to initalize the bot module system
41 * source/Interp.H: Added private variable bot_module to Interp
43 2002-11-04 Clinton Ebadi <clinton@unknownlamer.org>
45 * scripts/bobot-utils.scm: Added bot: to regex functions (yes,
46 this breaks existing scripts, this is the unstable tree after all)
48 2002-11-03 Clinton Ebadi <clinton@unknownlamer.org>
50 * source/Mask.C (match): Made Mask::match case insensitive
52 2002-09-23 Clinton Ebadi <clinton@unknownlamer.org>
54 * source/Interp.C (scm_apply_wrapper): turned off locking of
55 Interp::mutex to see if this makes the bot work again...and it
58 2002-09-07 Clinton Ebadi <clinton@unknownlamer.org>
60 * configure.ac: Removed arguments to AM_INIT_AUTOMAKE and updated
61 everything to use aclocal/automake 1.6
63 2002-08-27 Clinton Ebadi <clinton@unknownlamer.org>
65 * source/DCCPerson.H (class DCCPerson): Added
66 UserCommands::DCCList as a friend (friends are better than the old
67 DCC() function at least).
69 * source/DCCManager.H (class DCCManager): Added
70 UserCommands::DCCList as a friend
72 * source/Interp.H (class Interp): Made function scm_apply_wrapper
73 a friend so it can lock Interp::mutex
75 * source/Interp.C (scm_apply_wrapper): Lock Interp::mutex if
76 MULTITHREAD is defined (it is always defined when scripting is
77 enabled) so that Sockets can be made multithreaded using
80 * source/DCCPerson.H: Removed DCC method and made Bot a friend
81 Made DCCManager a friend
83 * source/DCCManager.H (class DCCManager): Removed MAP() method
84 and made Bot a friend of DCCManager
86 2002-08-18 Clinton Ebadi <clinton@unknownlamer.org>
88 * source/Interp.C (Startup): Renamed bot:DCC-chat-send to
91 * bobot++.texinfo (Hook Types): Fixed a typo (I wrote
92 user!nick@host instead of the correct nick!user@host).
94 * source/Interp.C (Startup): Register bot:DCC-chat-send
96 * source/ScriptCommands.C (sendDCCChatMessage): Added method again
98 2002-08-08 Clinton Ebadi <clinton@unknownlamer.org>
100 * source/String.C (String): The std::string copy constructor now
101 extracts the c_str of the std::string and then takes the strlen of
102 that before copying it. This fixes a bug with DCC where if you did
103 e.g. "!help" the bot would reply with "No TOPIC PRIVMSG FOUND" or
104 something like that, depending on what the last message was
105 because Socket will insert a \0 into its semi-static buffer, so
106 the len of the String will not equal the strlen of its char*.
108 2002-08-07 Clinton Ebadi <clinton@unknownlamer.org>
110 * source/DCCPerson.H: Removed destructor (I = idiot)
112 * source/DCCConnection.H: DCCManager is now a friend of
113 DCCConnection (ugh, the bot has way too many friends).
115 * source/DCCPerson.H: Added DCC member that returns a const
116 DCCConnection* (the dcc connection). This isn't saved anywhere
117 because when a DCCPerson is destroyed, its connection is also
120 * source/Bot.H: dccConnections is now a DCCManager
122 * source/DCCPerson.H: Added destructor
123 Added handleInput method
125 * source/DCCManager.C: New file
126 (addConnection): Wrote method, add a DCCConection to the manager
128 * source/DCCManager.H: New file
130 * source/Interp.C (Startup): Register bot:DCC-chat-send
131 (Startup): Removed sendDCCChatMessage stuff
133 * source/ScriptCommands.C (sendDCCChatMessage): New method:
134 sendDCCChatMessage (to, message) sends message to to.
136 * source/DCCConnection.C (connect): Run DCC_CHAT_BEGIN hook with
137 one arg: from (user!nick@host).
139 * source/DCCParser.C (parseLine): Runs DCC_CHAT_MESSAGE hook with
140 two args: from (user!nick@host) and line
142 2002-08-06 Clinton Ebadi <clinton@unknownlamer.org>
144 * source/Interp.C (Startup): Two new Scheme values:
145 hooks/dcc/chat-begin and hooks/dcc/chat-message for the
146 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE hooks.
148 * source/BotInterp.H: Added two new enum values to Hook:
149 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE for the DCC chat start and DCC
152 2002-08-05 Clinton Ebadi <clinton@unknownlamer.org>
154 * source/Parser.C (parseCTCP): Removed call to htonl and fixed
155 DCC! Ack, sockets take their arguments in network byte order so
156 there is no need to convert to host...now DCC _sort of_ works.
158 2002-08-04 Clinton Ebadi <clinton@unknownlamer.org>
160 * source/UserList.C (save): Increment iterator twice to get around
163 * source/ServerQueue.C: Now sends SEND_* hooks instead of
164 triggered general hooks.
166 * source/Interp.C (Startup): New scheme side defines: hooks/send/*
167 (* = the new SEND_ hooks, but lowercase).
169 * source/BotInterp.H: New hook types (SEND_..., ... = ACTION,
170 CTCP, PUBLIC, MESSAGE). These are triggered on send messages.
172 2002-08-01 Clinton Ebadi <clinton@unknownlamer.org>
174 * source/Bot.C (set_log_file): Oops! Fixed logging. Now the bot
177 * source/Socket.C (readLine): Now uses a static std::string that
178 starts out with 512 chars. This will never need to be resized for
179 usualy IRC messages, but might be for DCC messages
181 2002-07-31 Clinton Ebadi <clinton@unknownlamer.org>
183 * scripts/bobot-utils.scm (not-from-me): New syntax.
185 * source/ScriptCommands.C (AddHook): Now takes another optional
186 arg--name that will name the hook (see the hooks section in the
187 manual for what this does).
189 * source/BotInterp.H: Added name field to Hook
191 2002-07-29 Clinton Ebadi <clinton@unknownlamer.org>
193 * source/ServerQueue.C (sendPrivmsg): Now calls hooks on own
194 PRIVMSGes because the IRC server doesn't echo them back to the
195 bot. This could be useful for something (e.g. log script).
197 2002-07-27 Clinton Ebadi <clinton@unknownlamer.org>
199 * source/Interp.C (Shutdown): Runs bot:exit-hook hooks
200 (Startup): New var for Scheme: bot:exit-hook. Calls the thunks
201 associated with the hook when Interp::Shutdown is called (bot exit).
203 2002-07-23 Clinton Ebadi <clinton@unknownlamer.org>
205 * source/BotInterp.H (Hook<): Changed behavior of Hook's <. If a
206 hook is greater than or less than the other hook, only the
207 priority is considered. However, if both hooks have the same
208 priority, then the fallthru-ness is considered, with fallthru
209 hooks being greater than non-fallthru hooks.
211 * source/BotInterp.C (hptr_lt): Added this static function to be
212 used to sort the hooks list (now hooks should be sorted using
213 Hook's operator < instead of using pointer comparision, meaning
214 the new hook system will work correctly)
216 * scripts/bobot-utils.scm: Make bot:log use for-each instead of
217 map because we don't need the result of the displays (this would
218 just be a list of #<undefined> values and is a waste of memory).
220 2002-07-13 Clinton Ebadi <clinton@unknownlamer.org>
222 * source/Bot.C (Bot): userFunctions is now a map for efficiency
223 (worst case search is now NlogN instead of N). This improvement is
224 not as drastic as the one gained by making the Parser functions
225 list a map (because we don't scan this map for every message), but
226 it helps to clean up the code
228 2002-07-12 Clinton Ebadi <clinton@unknownlamer.org>
230 * source/Parser.H: Removed userFunctionsStruct
232 * source/Interp.C (Startup): ScriptCommands::sendCTCP registered
233 as bot:send-CTCP for Scheme
235 * source/ScriptCommands.C (sendCTCP): Wrote sendCTCP
237 2002-07-11 Clinton Ebadi <clinton@unknownlamer.org>
239 * source/ServerQueue.C (sendUser): Changed . . in USER command to
240 0 * (which is the Right Way to because <mode> must be a number...)
242 * source/Parser.C (init): New method of Parse. This initalizes the
243 functions map. functions replaces the old functions array, and
244 should yield better performance (since the functions array had to
245 be scanned for every incoming message)
247 * source/Parser.H: New member, functions (private)
249 2002-07-10 Clinton Ebadi <clinton@unknownlamer.org>
251 * source/Interp.C (Startup): New symbols: bot:user-*
252 [none|user|trusted|friend|master] are defined in Scheme as the
253 different levels of the users.
254 (Startup): All bot-* variables are now bot:*
256 2002-07-09 Clinton Ebadi <clinton@unknownlamer.org>
258 * source/Bot.H: Made some variables private because they shouldn't
259 be changed at runtime
261 * source/Parser.C (parseCTCP): Reneabled DCC CHAT (I want to test
262 this out to see if it works and make it work)
264 * source/Bot.C (Bot::Bot): New var: logs_dir. Set to the log file
267 * scripts/bobot-utils.scm: Fixed a typo (I forgot the / after
268 scripts in the user scripts dir) that made bobot++ not able to
269 load scripts from the user scripts dir
271 2002-07-08 Clinton Ebadi <clinton@unknownlamer.org>
273 * source/BotInterp.C (RunHooks): Changed iterators to
274 reverse_iterators because the hooks list is sorted in ascending
275 order--higher priority and fallthrough hooks appear _after_ the
276 lower priority and non-fallthrough hooks.
278 * source/Main.C (print_long_help): Added function
279 (print_short_help): Renamed from printUsage
280 (namespace): Most stuff in here is now defined in an anonymouse
281 namespace so it doesn't have external linkage
282 (real_main): Uses getopt_long instead of getopt. Added several
283 command line arguments (bobotpp --help for a full list).
285 * scripts/bobot-utils.scm (bot-load): Function moved from
288 * source/Interp.C (Startup): Autoloads
289 PREFIX/bobotpp/scripts/bobot-utils.scm now
290 (Startup): New Scheme variable: bot-sys-scripts-dir (system
293 * source/bobot-scheme.scm.in: Removed
295 * source/Makefile.am: Removed bobot-scheme.scm compiliation
297 * configure.ac (PREFIX): configure.ac defined prefix now
299 * source/Main.C (real_main): Default configuration is now read
300 from /etc/bobotpp/default
301 * source/bobot-scheme.scm.in: Added file. This defines the
302 'bot-load' procedure which will load a file from
303 $HOME/.bobotpp/scripts/ or @datadir@/bobotpp/scripts/ if the
304 script doesn't exist in the user script dir.
306 2002-07-01 Clinton Ebadi <clinton@unknownlamer.org>
308 * bobot++.texinfo: Started docs (just a skeleton right now)
310 * source/ScriptCommands.C (AddHook): Now takes pri and fall opt
311 args to set a hooks priority and whether or not it will
312 fallthrough. These args are optional.
314 * source/Interp.C (Startup): addhook now takes 3 req and 2 opt args
316 * source/BotInterp.C (AddHook): Now uses priority and fallthrough
317 (RunHooks): exec fallthrough hooks first.
319 * source/BotInterp.H: Changed Hooks to have priority
320 Added fhooksMap to BotInterp (fallthrough)
322 * source/UserCommands.C (AddShit): Converted to use Commands
324 2002-06-21 Clinton Ebadi <clinton@unknownlamer.org>
326 * source/Commands.C (AddUser): Fixed a one-off (function call was
327 before a brace instead of after one) that caused a segfault when
328 the user mask was a wildcard
330 2002-06-20 Clinton Ebadi <clinton@unknownlamer.org>
332 * all files: Updated address of the FSF
334 * source/UserCommands.C (AddUser): Uses Commands now instead of
335 manipulating the bot directly
337 2002-06-18 Clinton Ebadi <clinton@unknownlamer.org>
339 * source/ScriptCommands.C (AddShit): Filled in function.
341 * source/Interp.C (Startup): Bind bot-adduser to
342 ScriptCommands::AddUser instead of Action
343 (Startup): Bind bot-addshit to ScriptCommands::AddShit
345 * source/ScriptCommands.C (AddUser): Filled in function
347 * source/ServerList.C (delServer): Changed (n - 1) to n...n-1
348 would have caused problems if you used more than one server
350 * source/Parser.H: Changed const char* to String in userFunctionStruct
352 * source/String.H: Added std::string compatibility members
354 * configure.ac: You can now disable Crypt and scripting
356 * source/*: Added #include "config.h" where needed
358 * configure.ac: Added AM_CONFIG_HEADER
360 * config.h.in: added file
362 * source/Queue.C: Didn't notice iostream.h here! Fixed
365 Copyright 2002 Clinton Ebadi
366 Copying and distribution of this file, with or without modification, are
367 permitted provided the copyright notice and this notice are preserved.