[project @ 2004-05-12 15:19:06 by unknown_lamer]
[clinton/bobotpp.git] / NEWS
1 (-*- text -*-)
2 User Visible Changes In Bobot++
3
4 IMPORTANT NOTES:
5 As of version 1.98 unknown_lamer is the new maintainer. Also as of
6 version 1.98, you must have Guile 1.5.6+ or 1.6.x in order to
7 compile scripting support.
8
9 =====================================================================
10 ====== The News =====================================================
11 =====================================================================
12
13 Version 2.1.4: DCC Support Enhancements
14 - Internal Change: DCCConnection is now an abstract class
15 - Internal Change: DCCChatConnection provides the functionality of
16 the old DCCConnection so that DCC FILE support can be added
17 - New Scheme Procedure: (bot:sent-to-me? message), checks to see if a
18 message was addressed to the bot. This is better than using
19 bot:match-to-me because the hook will continue to function if the
20 bot's nick changes. The only downside to using it is that there may
21 be an increased overhead of calling more hooks than could be called,
22 but that shouldn't be much of a problem.
23 - New Scheme Procedure: (bot:change-command-level command level),
24 changes the level a user command to allow a user of `level' level or
25 above to run it.
26
27 Version 2.1.3: Something
28 - The flood rate can now be set using !setfloodrate INTEGER. The
29 default is two messages per second before the bot will ignore
30 you. (thanks to Björn Gustavsson for requesting this)
31 - The flood rate may also be set from Scheme using (bot:setfloodrate
32 integer)
33 - A very large crash bug has been fixed. Previously, if an undefined
34 command was called, any attempts to call a subsequent command would
35 cause the bot to crash. Now the bot doesn't crash.
36
37 Version 2.1.2: Llama
38
39 - match-to-me and match-not-channel are now bot:match-to-me and
40 bot:match-not-channel. Just use perl -pi -e
41 "s/match-to-me/bot:match-to-me" SCRIPTS (change to match-not-channel
42 for match-not-channel).
43 - Each script is now loaded into its own module so namespace clashes
44 should no longer occur
45 - New procedure: (bot:load-module INTERFACE-SPEC) will load a "bot
46 module" with the specified INTERFACE-SPEC (e.g. (foo bar)). A bot
47 module is the same as a system module except that you don't use
48 define-module to define it. The %bot:loadpath is searched for
49 INTERFACE-SPEC (when converted to a string) with an extension in
50 %bot:load-extensions. E.g. (foo bar) becomes "foo/bar".
51 - New procedure: (bot:use-module INTERFACE-SPEC) is the same as
52 bot:load-module except it will make the exported bindings from
53 INTERFACE-SPEC available in the current-module.
54 - Updated example bot and new example scripts included with the bot.
55
56 Version 2.1.1: foom
57
58 - Host masks are now case insensitive when matched. At least one other
59 person thought this was a good idea since IRC is case preserving but
60 not case sensitive.
61 - You can now "name" a hook using an extra arg to bot:addhook. This
62 name can be used to have multiple hooks of the same type with the
63 same regexp. The default name is "DEFAULT" so don't use that as the
64 name for your hooks.
65 - Logging now works again (oops, I didn't realize I broke it until I
66 started to work on DCC).
67 - DCC CHAT now "works." You can connect to the bot and talk to to it
68 and use Scheme hooks to talk to the user.
69 - New hooks: hooks/dcc/chat-begin and hooks/dcc/chat-message. These
70 are called when a new DCC Chat begin and when the user sends a
71 message.
72 - New Function: bot:dcc-chat-send TO MESSAGE, sends a MESSAGE to the
73 person at address TO
74 - New hooks: hooks/send/... where ... is one of action, ctcp, public,
75 or message. These are triggered when the bot does an
76 ACTION, sends a CTCP (_not_ a ctcp-reply), sends a PRIVMSG to a
77 channel, or sends a PRIVMSG to another user, respectively. There
78 will be more send hooks added later.
79 - New hooks: hooks/dcc/chat-begin and
80 hooks/dcc/chat-message. chat-begin is called when the chat starts
81 and has one argument: the address (in user!nick@host
82 format). chat-message has two arguments: from (user!nick@host) and
83 message, which is the raw message (since there is no real protocol
84 for DCC). chat-start hooks are matched against the address and
85 chat-message hooks are matched against the text "ADDRESS MESSAGE"
86 where ADDRESS is the sender's address and MESSAGE is the message.
87
88 Version 2.1.0: Zug Zug
89 - Hooks can now be fallthrough or non fallthrough. You can set a hooks
90 priority and whether or not it falls through (i.e. continues hook
91 matching after it has been executed) using two optional args to
92 (bot-addhook). The new args are pri (integer priority) and fallthru
93 (#t or #f) and are at the end. Higher priority hooks are executed
94 before lower priority hooks, and fallthrough hooks are executed
95 before non-fallthrough hooks.
96 - The default config is read from ~/.bobotpp/config/default/ or
97 /etc/bobotpp/default/ if the user config is not found. Put your
98 default config is either dir. You may also specify a specific config
99 under these dirs using the --config or -c arg to bobotpp (see
100 bobotpp --help for the full list of commands you may use and how to
101 use them).
102 - Scripts are now stored in ~/.bobotpp/scripts/ or
103 PREFIX/share/bobotpp/scripts/ (where PREFIX is /usr/local unless you
104 changed it with the --prefix arg to configure). The new function
105 bot-load will take a filename and load it from these dirs, returning
106 #t if the file was loaded and #f if it wasn't. You can modify the
107 search list by appending to %bot-loadpath.
108 - bobot-utils.scm is now autoloaded, so you don't need to
109 load it if you want to use its functions.
110 - Logs are now in ~/.bobotpp/logs/
111 - bot-* procedures in Scheme are now bot:*. The old bot-* functions
112 are defined as aliases in bobot-utils.scm
113 - You can now use lambda's for new commands (oops, I wasn't protecting
114 the objects from garbage collection)
115
116
117 Version 2.0: Stable release / CVS merges
118 - Merged stuff from Etienne Bernard's dev tree that he was working on
119 before I took over (not much)
120 - bot-adduser and bot-addshit now work from Scheme
121
122 Version 1.99: Configure joy
123 - You can now disable scripting using --disable-scripting or
124 --enable-scripting=no
125 - Crypt can also be disabled with --disable-crypt or --enable-crypt=no
126 - Old hooks behavior has been restored (new hooks are added to the end
127 of the hooks list and processing does not stop at the first matched
128 hook). The hook behavior will change radically in 2.1.
129
130 Version 1.98: Unknown_lamer made a large number of changes
131 - Code is now ISO C++ and compiles with GCC 3.1
132 - Converted makefile system to use automake
133 - configure.ac now requires autoconf 2.50 (this is only a problem if
134 you modify it, but I should be the only one doing that)
135 - Transition to new Guile 1.6 API has begun
136 - Scripting must always be enabled for now (known "bug")
137 - first hook of a given type to match is the only hook executed, all
138 others are ignored. Note that the last hook to be registered is the
139 first in the list!
140
141
142 Version 1.97: lots of changes, especially guile's scripting support, which
143 is not yet documented. See in the scripts/ directory for
144 examples, and in Interp.C (the Startup() function) for the
145 list of all available commands.
146
147 Version 1.30: Syntax change for "channel =" in bot.conf. See examples/bot.conf.
148 Rewrite of ident/password system. Should be more secure and
149 flexible.