]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blob - ChangeLog
Wed Jul 20 23:30:01 BST 2005 Tom Gilbert <tom@linuxbrit.co.uk>
[user/henk/code/ruby/rbot.git] / ChangeLog
1 Wed Jul 20 23:30:01 BST 2005  Tom Gilbert <tom@linuxbrit.co.uk>
2
3   * Move some core plugins to use the new httputil
4         * fix wserver's redirection handling for relative (i.e. broken) redirects
5         * fix tube plugin's html parsing
6
7 Wed Jul 20 01:18:06 BST 2005  Tom Gilbert <tom@linuxbrit.co.uk>
8
9         * Add new httputil object to the bot object, to be used by plugins etc
10         that wish to make http requests. It sets up all the proxies etc for them
11         according to bot config.
12
13 Sat Jul 16 02:23:13 BST 2005  Tom Gilbert <tom@linuxbrit.co.uk>
14
15   * Apply most of Rene's patch and fix various plugins.
16         * New plugin: autoop (auto ops via hostmask)
17         * New feature: karmastats
18
19 Wed Oct 13 16:16:31 BST 2004  Tom Gilbert <tom@linuxbrit.co.uk>
20
21   * Fix bug with quotes plugin where it gets confused and sees both a quote
22   and a keyword, both plugins are triggered by, for example "addquote foo is
23   bar"
24   * fixed this by implementing the "has_responded" flag on a message. When a
25   plugin replied to a message (or it manually sets m.replied to true), the
26   keywords plugin will honour that flag and not examine the message for
27   keywords. This flag can also be checked by listen plugins that don't want to
28   interfere with other plugin commands.
29
30 Mon Oct 11 00:37:52 BST 2004  Tom Gilbert <tom@linuxbrit.co.uk>
31
32   * Fixes to the NickServ plugin
33
34 Sat Oct 09 23:23:24 BST 2004  Tom Gilbert <tom@linuxbrit.co.uk>
35
36   * Keyword searching
37
38 Fri Oct 08 00:40:07 BST 2004  Tom Gilbert <tom@linuxbrit.co.uk>
39
40   * fixed insult plugin
41   * fixed excuse plugin
42
43 Thu Oct 07 23:28:05 BST 2004  Tom Gilbert <tom@linuxbrit.co.uk>
44
45   * searching for urls in the url plugin
46   * roshambo (rock/paper/scissors) plugin from Hans Fugal <hans@fugal.net>
47
48 Sat Apr 17 20:56:50 BST 2004  Tom Gilbert <tom@linuxbrit.co.uk>
49
50   * Oh, found new tv plugin in my inbox from ages ago, but it's still not
51   working so I guess it changed again since then
52   * New eightball plugin from Daniel Free
53
54 Sat Apr 17 20:44:43 BST 2004  Tom Gilbert <tom@linuxbrit.co.uk>
55
56   * Fixed the babelfish parser so translate works again.
57   * Misc other fixes
58   * Note some plugins are broken (excuse,insult) because the server they use
59     went away. I don't know of a replacement right now.
60   * tv plugin seems broken, perhaps the html changed.
61
62 Thu Jan 15 21:37:38 GMT 2004  Tom Gilbert <tom@linuxbrit.co.uk>
63
64   * Fixes for ruby 1.8
65
66 0.9.8
67 * new plugin from Alan Third <alan@idiocy.org>, allows you to search and list
68   UK TV programmes.
69
70 0.9.7
71 * various plugin updates
72 * fix (again) for C to F temp conversion in weather plugin
73 * channel topic patch from Peter Suschlik, gives plugin better access to topic
74   changes and related information
75
76 0.9.6
77 * changes to layout of slashdot plugin output
78 * freshmeat plugin, show latest updates or search
79 * fix to C to F temp conversion in weather plugin
80 * status command returns some bot status
81 * fortune plugin
82 * using BDB::Btree everywhere now, instead of BDB::Hash, because the Btree api
83   allows me to set my own key comparison function. This is needed to keep
84   supporting case insensitivity (vital for IRC), which was sadly broken in
85   0.9.5 :( All existing dbs will be upgraded automatically.
86 * roulette plugin - play russian roulette :) also keeps game stats.
87 * new config option, NO_KEYWORD_ADDRESS. If set to "true", the bot will always
88   respond to keywords it knows even when not addressed and the message doesn't
89   start with '. Message must end with "?" however.
90 * hopefully fixed welcome message parsing from certain server types
91
92 0.9.5
93 * plugin object registry
94   This provides persistant storage for plugins via a hash interface. The
95   default mode is an object store, so you can store ruby objects and reference
96   them with hash keys. This is because the default store/restore methods of
97   the plugins' RegistryAccessor are calls to Marshal.dump and Marshal.restore,
98   for example:
99     blah = Hash.new
100     blah[:foo] = "fum"
101     @registry[:blah] = blah
102   then, even after the bot is shut down and disconnected, on the next run you
103   can access the blah object as it was, with:
104     blah = @registry[:blah]
105   The registry can of course be used to store simple strings, fixnums, etc as
106   well, and should be useful to store or cache plugin data or dynamic plugin
107   configuration. 
108
109   If you don't need to store objects, and strictly want a persistant hash of
110   strings, you can override the store/restore methods to suit your needs, for
111   example (in your plugin):
112     def initialize
113       class << @registry
114         def store(val)
115           val
116         end
117         def restore(val)
118           val
119         end
120       end
121     end
122   Your plugins section of the registry is private, it has its own namespace
123   (derived from the plugin's class name, so change it and lose your data).
124   Calls to registry.each etc, will only iterate over your namespace.
125
126   The nickserv and karma plugins use the new registry and should serve as a
127   useful example. Basic usage of the registry is simple, just treat it as a
128   hash, with values that never die (unless you delete() them).
129 * Change to the nickserv plugin. The old method of putting the nickserv
130   password in rbot.conf was useless for multiple nicks or easy updates. The
131   plugin now uses the plugin registry to store passwords for any nicks it
132   owns. The plugin can be told to register the current nick (supply a password
133   or it'll generate one), identify for the current nick (if the password is
134   known), and can be told the passwords for other nicks. If NickServ asks the
135   bot to identify, it will automatically do so if it knows the appropriate
136   password.
137 * karma plugin now uses the plugin registry, it should automatically import
138   your existing, stored karma data into the registry.
139 * The babelfish plugin now caches results in the bot registry to speed up
140   common lookups.
141 * New message types and plugin methods to grab them,
142   quit(QuitMessage):   Called when a user (or the bot) quits IRC
143   nick(NickMessage):   Called when a user (or the bot) changes Nick
144   topic(TopicMessage): Called when a user (or the bot) changes a channel topic
145 * A plugin's listen() method will now receive any kind of Message, e.g.
146   PrivMessage, NoticeMessage, NickMessage, JoinMessage, etc
147 * New plugins:
148   seen: the usual "seen" stuff: 
149         rbot: seen giblet?
150         giblet was last seen xxx ago doing xxx
151   cal:  calls the unix cal program to display a calendar
152   math: evaluates mathematical expressions:
153         rbot: math 2+2
154         rbot: math 4 to the power of 8
155         rbot: math ((232+432) - 4) / 2
156         (ported from infobot. Thanks to Kevin Lenzo, who wrote the
157         original infobot math module)
158   slashdot: displays latest headlines or searches for articles
159   url:  stores urls mentioned in channels for regurgitation later
160   weather: grabs and parses METAR weather data, will remember the last weather
161            code you asked for so you don't have to :)
162 * New utility function, Util.http_get(url) for getting remote data via http,
163   just dumps response.body into a string and returns it, or nil if anything at
164   all goes wrong. Useful for simple plugins.
165 * random quit messages if none specified, messages set in language description
166   file
167 * keywords are now stored in bdb databases - your old keywords.rbot will be
168   imported. Static keywords (fact packs) are also stored in bdb databases, and
169   rbot will automatically convert any text .fact file dropped in the confdir's
170   keywords subdirectory, at startup, into a bdb file. If both a db and a text
171   file exist of the same name (except the extension), the text file will be
172   imported and merged into the database.
173   static keywords will be looked up in each factpack db in turn, in
174   alphabetical filename order - so you can prioritise using the filename if
175   you wish.
176 * fixed a bug with autsplitting long sent lines, the last line was often being
177   split unnecessarily.
178
179 0.9.4
180 * Massive cleanup of rfc2812.rb, contributed by Lars Christensen
181   <dsl8950@vip.cybercity.dk>, gets rid of a lot of regexps
182 * Fixed bug reading static keyword files - "foo <=is=> bar" may not have
183   worked for a couple of releases, only "foo<=is=>bar" was working - this was
184   not intended and should be fixed now
185 * Experimental send queue, to prevent the bot from flooding out, the delay
186   between sending messages to the server defaults to 2s, but is configurable
187   in conf.rbot, set SENDQ_DELAY (0 to disable queueing). You can also set/get
188   the value from the bot, "rbot: options get sendq_delay", and 
189   "rbot: options set sendq_delay 1.5", if you have sufficient auth for "config"
190   This is a bursting sendq, most ircd's allow bursts of up to 5
191   lines, with non-burst limits of 512 bytes/2 seconds. To set the burst limit,
192   configure SENDQ_BURST in conf.rbot, or do the same kind of stuff with
193   "rbot: options set sendq_burst 2", etc.
194   The defaults are 2s/4 burst, which seem to work okay for me.
195 * support for multiple, customisable, addressing prefixes. Set ADDRESS_PREFIX
196   in conf.rbot to a space separate list of addressing prefixes, e.g
197   ADDRESS_PREFIX = | ! =>
198   Would mean that all of the following in channel messages would cause the bot
199   to respond:
200               rbot: version
201               |version
202               !version
203               =>version
204 * bb plugin removed, bb is nearly over and it doesn't work 100% anyway
205 * Two plugins from brailsmt (from #ruby-lang on openprojects), a stats plugin
206   which monitors usage of 1-word sentences, and lart, which allows you to ask
207   rbot to lart people - with an optional reason - larts are user-definable and
208   can be added on the fly.
209 * made google.rb work for people with 1.6 ruby's net/http
210
211 0.9.3
212
213 * fix quit messages
214 * new plugin for handling nickserv-protected nicks, use NICKSERV_PASSWORD in
215   the config file.
216 * fixes to a few other buglets
217 * new plugin to grab bigbrother headlines, still buggy and only useful for UK
218   folks who love bb :-)
219 * fixes to various plugins
220 * Patch from akira yamada <akira@ruby-lang.org>
221   DNS plugin: Use resolv-replace if found, do lookup in new thread
222   Fix bug joining channels with keys
223
224 0.9.2
225
226 * better "connect failure" error message
227 * better option parsing, and --debug option
228 * access to bot's online help via commandline, eg:
229   ./rbot.rb --help
230   ./rbot.rb --help core
231   ./rbot.rb --help "core save"
232 * Fix broken help from last point release
233 * Plugin API modification and cleanup. You no longer need to set @listen to
234   true in order to get all NOTICE and PRIVMSGs, you just need to define the
235   method. The method is now called listen(), renamed from listener(). This
236   should be the last time the plugin api is changed incompatibly.
237 * New plugin method kick(). Use it to see kicks (duh :))
238 * New plugin methods join(), part(). Obvious uses.
239 * Example plugin autorejoin.rb, uses kick event to rejoin channel and insult
240   kicker
241 * fix bug in remind plugins "remind me no more" recognition.
242
243 0.9.1
244
245 * Fix welcome message recognition for certain IRCd's.
246
247 0.9
248
249 * Allow keyword definitions which end in '?', like this:
250   bot: foo is bar\?
251 * rdoc documentation!
252 * fixed broken address regexp, "rbot: .foo" was being treated as an addressed
253   form of "foo" (lost the .)
254 * fix stupid bug in last release (looking for wrong default conf dir)
255
256 0.8
257
258 * Tarball layout change. modules all in rbot/ now, and the rbot/ default
259   configuration moved to rbotconf/. This lets the thing run from an unpacked
260   tarball while also being ready to run with the modules installed somewhere
261   else.
262 * change hashbang to /usr/bin/env ruby, in order to use PATH looking for ruby,
263   it's BSD friendly!
264 * allow "botnick : foo" style addressing, and even "botnick... foo"
265 * slap plugin (contributed by oct)
266 * renamed bot.send to bot.sendmsg, I didn't really want to override send() ;D
267   (thanks Kero)
268
269 0.7.1
270 * Made sane for packagers. Looks in the right places for plugins and language
271   files now, so extra effort shouldn't be needed there.
272
273 0.7
274
275 * Fixed "nick taken on join" bug
276 * Dice plugin patch from David Dorward
277 * fix searchquote regexp
278 * conf.rbot: PASSWORD -> SERVER_PASSWORD, to prevent confusion with PASSWD,
279   which is for master auth.
280
281 0.6
282
283 * Fixed addquote (was incrementing quote ID twice)
284 * now strips colour/bold escapes from incoming messages (rbot was ignoring
285   messages addressed using a bolded colon, for example).
286 * minor bugfixes
287 * more language breadth
288 * Addressing works better now
289 * Can autojoin channels with keys, conf.rbot line is:
290   autojoin_channels #chan1, #chan2, #chan3 key, #chan4 key, #chan5
291 * dice plugin fixes
292
293 0.5
294
295 * Initial release