rbot 0.9.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. data/AUTHORS +16 -0
  2. data/COPYING +21 -0
  3. data/ChangeLog +418 -0
  4. data/INSTALL +8 -0
  5. data/README +44 -0
  6. data/REQUIREMENTS +34 -0
  7. data/TODO +5 -0
  8. data/Usage_en.txt +129 -0
  9. data/bin/rbot +81 -0
  10. data/data/rbot/contrib/plugins/figlet.rb +20 -0
  11. data/data/rbot/contrib/plugins/ri.rb +83 -0
  12. data/data/rbot/contrib/plugins/stats.rb +232 -0
  13. data/data/rbot/contrib/plugins/vandale.rb +49 -0
  14. data/data/rbot/languages/dutch.lang +73 -0
  15. data/data/rbot/languages/english.lang +75 -0
  16. data/data/rbot/languages/french.lang +39 -0
  17. data/data/rbot/languages/german.lang +67 -0
  18. data/data/rbot/plugins/autoop.rb +68 -0
  19. data/data/rbot/plugins/autorejoin.rb +16 -0
  20. data/data/rbot/plugins/cal.rb +15 -0
  21. data/data/rbot/plugins/dice.rb +81 -0
  22. data/data/rbot/plugins/eightball.rb +19 -0
  23. data/data/rbot/plugins/excuse.rb +470 -0
  24. data/data/rbot/plugins/fish.rb +61 -0
  25. data/data/rbot/plugins/fortune.rb +22 -0
  26. data/data/rbot/plugins/freshmeat.rb +98 -0
  27. data/data/rbot/plugins/google.rb +51 -0
  28. data/data/rbot/plugins/host.rb +14 -0
  29. data/data/rbot/plugins/httpd.rb.disabled +35 -0
  30. data/data/rbot/plugins/insult.rb +258 -0
  31. data/data/rbot/plugins/karma.rb +85 -0
  32. data/data/rbot/plugins/lart.rb +181 -0
  33. data/data/rbot/plugins/math.rb +122 -0
  34. data/data/rbot/plugins/nickserv.rb +89 -0
  35. data/data/rbot/plugins/nslookup.rb +43 -0
  36. data/data/rbot/plugins/opme.rb +19 -0
  37. data/data/rbot/plugins/quakeauth.rb +51 -0
  38. data/data/rbot/plugins/quotes.rb +321 -0
  39. data/data/rbot/plugins/remind.rb +228 -0
  40. data/data/rbot/plugins/roshambo.rb +54 -0
  41. data/data/rbot/plugins/rot13.rb +10 -0
  42. data/data/rbot/plugins/roulette.rb +147 -0
  43. data/data/rbot/plugins/rss.rb.disabled +414 -0
  44. data/data/rbot/plugins/seen.rb +89 -0
  45. data/data/rbot/plugins/slashdot.rb +94 -0
  46. data/data/rbot/plugins/spell.rb +36 -0
  47. data/data/rbot/plugins/tube.rb +71 -0
  48. data/data/rbot/plugins/url.rb +88 -0
  49. data/data/rbot/plugins/weather.rb +649 -0
  50. data/data/rbot/plugins/wserver.rb +71 -0
  51. data/data/rbot/plugins/xmlrpc.rb.disabled +52 -0
  52. data/data/rbot/templates/keywords.rbot +4 -0
  53. data/data/rbot/templates/lart/larts +98 -0
  54. data/data/rbot/templates/lart/praises +5 -0
  55. data/data/rbot/templates/levels.rbot +30 -0
  56. data/data/rbot/templates/users.rbot +1 -0
  57. data/lib/rbot/auth.rb +203 -0
  58. data/lib/rbot/channel.rb +54 -0
  59. data/lib/rbot/config.rb +363 -0
  60. data/lib/rbot/dbhash.rb +112 -0
  61. data/lib/rbot/httputil.rb +141 -0
  62. data/lib/rbot/ircbot.rb +808 -0
  63. data/lib/rbot/ircsocket.rb +185 -0
  64. data/lib/rbot/keywords.rb +433 -0
  65. data/lib/rbot/language.rb +69 -0
  66. data/lib/rbot/message.rb +256 -0
  67. data/lib/rbot/messagemapper.rb +262 -0
  68. data/lib/rbot/plugins.rb +291 -0
  69. data/lib/rbot/post-install.rb +8 -0
  70. data/lib/rbot/rbotconfig.rb +36 -0
  71. data/lib/rbot/registry.rb +271 -0
  72. data/lib/rbot/rfc2812.rb +1104 -0
  73. data/lib/rbot/timer.rb +201 -0
  74. data/lib/rbot/utils.rb +83 -0
  75. data/setup.rb +1360 -0
  76. metadata +129 -0
data/AUTHORS ADDED
@@ -0,0 +1,16 @@
1
+ Main Author
2
+ o Tom Gilbert (giblet) <tom@linuxbrit.co.uk>
3
+
4
+ Patch contributors
5
+ o Peter Suschlik (pesu) <peter@zilium.de>
6
+
7
+ Module contributors
8
+ o dice.rb - David Dorward (Dorward) <david@david.us-lot.org>
9
+ o lart.rb - Michael Brailsford <brailsmt@yahoo.com>
10
+ o stats.rb - Michael Brailsford <brailsmt@yahoo.com>
11
+ o ri.rb - Michael Brailsford <brailsmt@yahoo.com>
12
+
13
+ "Testing" (having fun breaking rbot creatively)
14
+ o Paul Duncan (pabs) <pabs@pablotron.org>
15
+ o Richard Lowe (richlowe) <richlowe@richlowe.net>
16
+
data/COPYING ADDED
@@ -0,0 +1,21 @@
1
+ Copyright (C) 2002-2005 Tom Gilbert.
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to
5
+ deal in the Software without restriction, including without limitation the
6
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7
+ sell copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies of the Software and its documentation and acknowledgment shall be
12
+ given in the documentation and software packages that this Software was
13
+ used.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18
+ THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
+
@@ -0,0 +1,418 @@
1
+ Fri Aug 05 23:55:20 BST 2005 Tom Gilbert <tom@linuxbrit.co.uk>
2
+
3
+ * few more tweaks preparing to release 0.9.9
4
+
5
+ Thu Aug 04 23:03:30 BST 2005 Tom Gilbert <tom@linuxbrit.co.uk>
6
+
7
+ * Improved ircd recognition of rfc2812.rb
8
+ * de-string'd, de-cap'd rfc2812.rb, looks less shouty now
9
+ * moved the Q auth stuff (for quakenet) into a new qauth plugin (untested!)
10
+ * finish fixing the httputil
11
+
12
+ Thu Aug 04 00:11:52 BST 2005 Tom Gilbert <tom@linuxbrit.co.uk>
13
+
14
+ * Tweaked the debug() stuff a bit. Need to do this more cleanly really
15
+ * Added a fair bit of documentation for some of the new features
16
+
17
+ Wed Aug 03 15:25:07 BST 2005 Tom Gilbert <tom@linuxbrit.co.uk>
18
+
19
+ * Added french language file (TODO most of the plugins just talk english)
20
+ * The way the Enum configs were set up, it wasn't possible to add language
21
+ files to rbot at runtime (the directory was only scanned at startup). Now
22
+ you can set a values Proc, which is called to return a list of allowed
23
+ values whenever it's queried.
24
+ * Added Config module for determining where we were installed.
25
+ Unfortunately rubygems is a total whore in this regard, and I hope the
26
+ current hackery I have to do to support it becomes redundant in the
27
+ future.
28
+
29
+ Wed Aug 03 00:31:41 BST 2005 Tom Gilbert <tom@linuxbrit.co.uk>
30
+
31
+ * Added Rakefile, tweaked gemspec
32
+
33
+ Tue Aug 02 16:27:36 BST 2005 Tom Gilbert <tom@linuxbrit.co.uk>
34
+
35
+ * Fixed the new http.proxy* settings, they work!
36
+ * Fixed a bug with auth-checking for the config module
37
+ * misc tweaks
38
+
39
+ Sun Jul 31 02:20:08 BST 2005 Tom Gilbert <tom@linuxbrit.co.uk>
40
+
41
+ * Updated docgen to generate rdoc again with the new repo structure
42
+ * added new restart command to the core bot, quits irc and reexecs the
43
+ bot, to pick up new code/libraries etc.
44
+
45
+ Sat Jul 30 22:33:36 BST 2005 Tom Gilbert <tom@linuxbrit.co.uk>
46
+
47
+ * Config items are now objects, various types are available.
48
+ * The config wizard will now use registered config items if :wizard is set
49
+ to true for those items. It will ask questions in the order they were
50
+ registered.
51
+ * The config module now works for doing runtime configuration.
52
+ * misc refactoring
53
+
54
+ Sat Jul 30 01:19:32 BST 2005 Tom Gilbert <tom@linuxbrit.co.uk>
55
+
56
+ * config module for configuring the running bot via IRC
57
+ * BotConfig.register method for various modules and any plugin to register
58
+ bot configuration which the new config module will expose for them.
59
+ * various other tweaks as I continue to refactor..
60
+
61
+ Fri Jul 29 13:07:56 BST 2005 Tom Gilbert <tom@linuxbrit.co.uk>
62
+
63
+ * Moved some stuff out of util.rb into the plugins that actually need
64
+ them. Those methods didn't belong in util as they were plugin-specific.
65
+ * moved a few more plugins to use map() where appropriate
66
+ * made the url plugin only store unique urls
67
+
68
+ Thu Jul 28 23:45:26 BST 2005 Tom Gilbert <tom@linuxbrit.co.uk>
69
+
70
+ * Reworked the Timer module. The Timer now has a smart thread manager to
71
+ start/stop the tick() thread. This means the timer isn't called every 0.1
72
+ seconds to see what needs doing, which is much more efficient
73
+ * reworked the ircsocket queue mechanism to use a Timer
74
+ * reworked the nickserv plugin to use maps
75
+ * made server.reconnect_wait configurable
76
+ * added Class tracing mechanism to bin/rbot, use --trace Classname for
77
+ debugging
78
+
79
+ Tue Jul 26 14:41:34 BST 2005 Tom Gilbert <tom@linuxbrit.co.uk>
80
+
81
+ * Prevent multiple plugin registrations of the same name
82
+ * reworking the config system to use yaml for persistence
83
+ * reworking the config system key names
84
+ * on first startup, the bot will prompt for the essential startup config
85
+ * new config module for configuring the bot at runtime
86
+ * new config module includes new configurables, for example changing the
87
+ bot's language at runtime.
88
+ * various other fixes
89
+ * New way of mapping plugins to strings, using maps. These may be
90
+ familiar to rails users. This is to reduce the amount of regexps plugins
91
+ currently need to do to parse arguments. The old method (privmsg) is still
92
+ supported, of course. Example plugin now:
93
+ def MyPlugin < Plugin
94
+ def foo(m, params)
95
+ m.reply "bar"
96
+ end
97
+
98
+ def complexfoo(m, params)
99
+ m.reply "qux! (#{params[:bar]} #{params[:baz]})"
100
+ end
101
+ end
102
+ plugin = MyPlugin.new
103
+ # simple map
104
+ plugin.map 'foo'
105
+
106
+ # this will match "rbot: foo somestring otherstring" and pass the
107
+ # parameters as a hash using the names in the map.
108
+ plugin.map 'foo :bar :baz', :action => 'complexfoo'
109
+ # this means :foo is an optional parameter
110
+ plugin.map 'foo :foo', :defaults => {:foo => 'bar'}
111
+ # you can also gobble up into an array
112
+ plugin.map 'foo *bar' # params[:bar] will be an array of string elements
113
+ # and you can validate, here the first param must be a number
114
+ plugin.map 'foo :bar', :requirements => {:foo => /^\d+$/}
115
+
116
+
117
+ Sat Jul 23 01:39:08 BST 2005 Tom Gilbert <tom@linuxbrit.co.uk>
118
+
119
+ * Changed BotConfig to use yaml storage, method syntax instead of hash for
120
+ get/set, to allow more flexibility and encapsulation
121
+ * Added convenience method Message.okay (m.okay is the same as the
122
+ old-style @bot.okay m.replyto)
123
+
124
+ Wed Jul 20 23:30:01 BST 2005 Tom Gilbert <tom@linuxbrit.co.uk>
125
+
126
+ * Move some core plugins to use the new httputil
127
+ * fix wserver's redirection handling for relative (i.e. broken) redirects
128
+ * fix tube plugin's html parsing
129
+
130
+ Wed Jul 20 01:18:06 BST 2005 Tom Gilbert <tom@linuxbrit.co.uk>
131
+
132
+ * Add new httputil object to the bot object, to be used by plugins etc
133
+ that wish to make http requests. It sets up all the proxies etc for them
134
+ according to bot config.
135
+
136
+ Sat Jul 16 02:23:13 BST 2005 Tom Gilbert <tom@linuxbrit.co.uk>
137
+
138
+ * Apply most of Rene's patch and fix various plugins.
139
+ * New plugin: autoop (auto ops via hostmask)
140
+ * New feature: karmastats
141
+
142
+ Wed Oct 13 16:16:31 BST 2004 Tom Gilbert <tom@linuxbrit.co.uk>
143
+
144
+ * Fix bug with quotes plugin where it gets confused and sees both a quote
145
+ and a keyword, both plugins are triggered by, for example "addquote foo is
146
+ bar"
147
+ * fixed this by implementing the "has_responded" flag on a message. When a
148
+ plugin replied to a message (or it manually sets m.replied to true), the
149
+ keywords plugin will honour that flag and not examine the message for
150
+ keywords. This flag can also be checked by listen plugins that don't want to
151
+ interfere with other plugin commands.
152
+
153
+ Mon Oct 11 00:37:52 BST 2004 Tom Gilbert <tom@linuxbrit.co.uk>
154
+
155
+ * Fixes to the NickServ plugin
156
+
157
+ Sat Oct 09 23:23:24 BST 2004 Tom Gilbert <tom@linuxbrit.co.uk>
158
+
159
+ * Keyword searching
160
+
161
+ Fri Oct 08 00:40:07 BST 2004 Tom Gilbert <tom@linuxbrit.co.uk>
162
+
163
+ * fixed insult plugin
164
+ * fixed excuse plugin
165
+
166
+ Thu Oct 07 23:28:05 BST 2004 Tom Gilbert <tom@linuxbrit.co.uk>
167
+
168
+ * searching for urls in the url plugin
169
+ * roshambo (rock/paper/scissors) plugin from Hans Fugal <hans@fugal.net>
170
+
171
+ Sat Apr 17 20:56:50 BST 2004 Tom Gilbert <tom@linuxbrit.co.uk>
172
+
173
+ * Oh, found new tv plugin in my inbox from ages ago, but it's still not
174
+ working so I guess it changed again since then
175
+ * New eightball plugin from Daniel Free
176
+
177
+ Sat Apr 17 20:44:43 BST 2004 Tom Gilbert <tom@linuxbrit.co.uk>
178
+
179
+ * Fixed the babelfish parser so translate works again.
180
+ * Misc other fixes
181
+ * Note some plugins are broken (excuse,insult) because the server they use
182
+ went away. I don't know of a replacement right now.
183
+ * tv plugin seems broken, perhaps the html changed.
184
+
185
+ Thu Jan 15 21:37:38 GMT 2004 Tom Gilbert <tom@linuxbrit.co.uk>
186
+
187
+ * Fixes for ruby 1.8
188
+
189
+ 0.9.8
190
+ * new plugin from Alan Third <alan@idiocy.org>, allows you to search and list
191
+ UK TV programmes.
192
+
193
+ 0.9.7
194
+ * various plugin updates
195
+ * fix (again) for C to F temp conversion in weather plugin
196
+ * channel topic patch from Peter Suschlik, gives plugin better access to topic
197
+ changes and related information
198
+
199
+ 0.9.6
200
+ * changes to layout of slashdot plugin output
201
+ * freshmeat plugin, show latest updates or search
202
+ * fix to C to F temp conversion in weather plugin
203
+ * status command returns some bot status
204
+ * fortune plugin
205
+ * using BDB::Btree everywhere now, instead of BDB::Hash, because the Btree api
206
+ allows me to set my own key comparison function. This is needed to keep
207
+ supporting case insensitivity (vital for IRC), which was sadly broken in
208
+ 0.9.5 :( All existing dbs will be upgraded automatically.
209
+ * roulette plugin - play russian roulette :) also keeps game stats.
210
+ * new config option, NO_KEYWORD_ADDRESS. If set to "true", the bot will always
211
+ respond to keywords it knows even when not addressed and the message doesn't
212
+ start with '. Message must end with "?" however.
213
+ * hopefully fixed welcome message parsing from certain server types
214
+
215
+ 0.9.5
216
+ * plugin object registry
217
+ This provides persistant storage for plugins via a hash interface. The
218
+ default mode is an object store, so you can store ruby objects and reference
219
+ them with hash keys. This is because the default store/restore methods of
220
+ the plugins' RegistryAccessor are calls to Marshal.dump and Marshal.restore,
221
+ for example:
222
+ blah = Hash.new
223
+ blah[:foo] = "fum"
224
+ @registry[:blah] = blah
225
+ then, even after the bot is shut down and disconnected, on the next run you
226
+ can access the blah object as it was, with:
227
+ blah = @registry[:blah]
228
+ The registry can of course be used to store simple strings, fixnums, etc as
229
+ well, and should be useful to store or cache plugin data or dynamic plugin
230
+ configuration.
231
+
232
+ If you don't need to store objects, and strictly want a persistant hash of
233
+ strings, you can override the store/restore methods to suit your needs, for
234
+ example (in your plugin):
235
+ def initialize
236
+ class << @registry
237
+ def store(val)
238
+ val
239
+ end
240
+ def restore(val)
241
+ val
242
+ end
243
+ end
244
+ end
245
+ Your plugins section of the registry is private, it has its own namespace
246
+ (derived from the plugin's class name, so change it and lose your data).
247
+ Calls to registry.each etc, will only iterate over your namespace.
248
+
249
+ The nickserv and karma plugins use the new registry and should serve as a
250
+ useful example. Basic usage of the registry is simple, just treat it as a
251
+ hash, with values that never die (unless you delete() them).
252
+ * Change to the nickserv plugin. The old method of putting the nickserv
253
+ password in rbot.conf was useless for multiple nicks or easy updates. The
254
+ plugin now uses the plugin registry to store passwords for any nicks it
255
+ owns. The plugin can be told to register the current nick (supply a password
256
+ or it'll generate one), identify for the current nick (if the password is
257
+ known), and can be told the passwords for other nicks. If NickServ asks the
258
+ bot to identify, it will automatically do so if it knows the appropriate
259
+ password.
260
+ * karma plugin now uses the plugin registry, it should automatically import
261
+ your existing, stored karma data into the registry.
262
+ * The babelfish plugin now caches results in the bot registry to speed up
263
+ common lookups.
264
+ * New message types and plugin methods to grab them,
265
+ quit(QuitMessage): Called when a user (or the bot) quits IRC
266
+ nick(NickMessage): Called when a user (or the bot) changes Nick
267
+ topic(TopicMessage): Called when a user (or the bot) changes a channel topic
268
+ * A plugin's listen() method will now receive any kind of Message, e.g.
269
+ PrivMessage, NoticeMessage, NickMessage, JoinMessage, etc
270
+ * New plugins:
271
+ seen: the usual "seen" stuff:
272
+ rbot: seen giblet?
273
+ giblet was last seen xxx ago doing xxx
274
+ cal: calls the unix cal program to display a calendar
275
+ math: evaluates mathematical expressions:
276
+ rbot: math 2+2
277
+ rbot: math 4 to the power of 8
278
+ rbot: math ((232+432) - 4) / 2
279
+ (ported from infobot. Thanks to Kevin Lenzo, who wrote the
280
+ original infobot math module)
281
+ slashdot: displays latest headlines or searches for articles
282
+ url: stores urls mentioned in channels for regurgitation later
283
+ weather: grabs and parses METAR weather data, will remember the last weather
284
+ code you asked for so you don't have to :)
285
+ * New utility function, Util.http_get(url) for getting remote data via http,
286
+ just dumps response.body into a string and returns it, or nil if anything at
287
+ all goes wrong. Useful for simple plugins.
288
+ * random quit messages if none specified, messages set in language description
289
+ file
290
+ * keywords are now stored in bdb databases - your old keywords.rbot will be
291
+ imported. Static keywords (fact packs) are also stored in bdb databases, and
292
+ rbot will automatically convert any text .fact file dropped in the confdir's
293
+ keywords subdirectory, at startup, into a bdb file. If both a db and a text
294
+ file exist of the same name (except the extension), the text file will be
295
+ imported and merged into the database.
296
+ static keywords will be looked up in each factpack db in turn, in
297
+ alphabetical filename order - so you can prioritise using the filename if
298
+ you wish.
299
+ * fixed a bug with autsplitting long sent lines, the last line was often being
300
+ split unnecessarily.
301
+
302
+ 0.9.4
303
+ * Massive cleanup of rfc2812.rb, contributed by Lars Christensen
304
+ <dsl8950@vip.cybercity.dk>, gets rid of a lot of regexps
305
+ * Fixed bug reading static keyword files - "foo <=is=> bar" may not have
306
+ worked for a couple of releases, only "foo<=is=>bar" was working - this was
307
+ not intended and should be fixed now
308
+ * Experimental send queue, to prevent the bot from flooding out, the delay
309
+ between sending messages to the server defaults to 2s, but is configurable
310
+ in conf.rbot, set SENDQ_DELAY (0 to disable queueing). You can also set/get
311
+ the value from the bot, "rbot: options get sendq_delay", and
312
+ "rbot: options set sendq_delay 1.5", if you have sufficient auth for "config"
313
+ This is a bursting sendq, most ircd's allow bursts of up to 5
314
+ lines, with non-burst limits of 512 bytes/2 seconds. To set the burst limit,
315
+ configure SENDQ_BURST in conf.rbot, or do the same kind of stuff with
316
+ "rbot: options set sendq_burst 2", etc.
317
+ The defaults are 2s/4 burst, which seem to work okay for me.
318
+ * support for multiple, customisable, addressing prefixes. Set ADDRESS_PREFIX
319
+ in conf.rbot to a space separate list of addressing prefixes, e.g
320
+ ADDRESS_PREFIX = | ! =>
321
+ Would mean that all of the following in channel messages would cause the bot
322
+ to respond:
323
+ rbot: version
324
+ |version
325
+ !version
326
+ =>version
327
+ * bb plugin removed, bb is nearly over and it doesn't work 100% anyway
328
+ * Two plugins from brailsmt (from #ruby-lang on openprojects), a stats plugin
329
+ which monitors usage of 1-word sentences, and lart, which allows you to ask
330
+ rbot to lart people - with an optional reason - larts are user-definable and
331
+ can be added on the fly.
332
+ * made google.rb work for people with 1.6 ruby's net/http
333
+
334
+ 0.9.3
335
+
336
+ * fix quit messages
337
+ * new plugin for handling nickserv-protected nicks, use NICKSERV_PASSWORD in
338
+ the config file.
339
+ * fixes to a few other buglets
340
+ * new plugin to grab bigbrother headlines, still buggy and only useful for UK
341
+ folks who love bb :-)
342
+ * fixes to various plugins
343
+ * Patch from akira yamada <akira@ruby-lang.org>
344
+ DNS plugin: Use resolv-replace if found, do lookup in new thread
345
+ Fix bug joining channels with keys
346
+
347
+ 0.9.2
348
+
349
+ * better "connect failure" error message
350
+ * better option parsing, and --debug option
351
+ * access to bot's online help via commandline, eg:
352
+ ./rbot.rb --help
353
+ ./rbot.rb --help core
354
+ ./rbot.rb --help "core save"
355
+ * Fix broken help from last point release
356
+ * Plugin API modification and cleanup. You no longer need to set @listen to
357
+ true in order to get all NOTICE and PRIVMSGs, you just need to define the
358
+ method. The method is now called listen(), renamed from listener(). This
359
+ should be the last time the plugin api is changed incompatibly.
360
+ * New plugin method kick(). Use it to see kicks (duh :))
361
+ * New plugin methods join(), part(). Obvious uses.
362
+ * Example plugin autorejoin.rb, uses kick event to rejoin channel and insult
363
+ kicker
364
+ * fix bug in remind plugins "remind me no more" recognition.
365
+
366
+ 0.9.1
367
+
368
+ * Fix welcome message recognition for certain IRCd's.
369
+
370
+ 0.9
371
+
372
+ * Allow keyword definitions which end in '?', like this:
373
+ bot: foo is bar\?
374
+ * rdoc documentation!
375
+ * fixed broken address regexp, "rbot: .foo" was being treated as an addressed
376
+ form of "foo" (lost the .)
377
+ * fix stupid bug in last release (looking for wrong default conf dir)
378
+
379
+ 0.8
380
+
381
+ * Tarball layout change. modules all in rbot/ now, and the rbot/ default
382
+ configuration moved to rbotconf/. This lets the thing run from an unpacked
383
+ tarball while also being ready to run with the modules installed somewhere
384
+ else.
385
+ * change hashbang to /usr/bin/env ruby, in order to use PATH looking for ruby,
386
+ it's BSD friendly!
387
+ * allow "botnick : foo" style addressing, and even "botnick... foo"
388
+ * slap plugin (contributed by oct)
389
+ * renamed bot.send to bot.sendmsg, I didn't really want to override send() ;D
390
+ (thanks Kero)
391
+
392
+ 0.7.1
393
+ * Made sane for packagers. Looks in the right places for plugins and language
394
+ files now, so extra effort shouldn't be needed there.
395
+
396
+ 0.7
397
+
398
+ * Fixed "nick taken on join" bug
399
+ * Dice plugin patch from David Dorward
400
+ * fix searchquote regexp
401
+ * conf.rbot: PASSWORD -> SERVER_PASSWORD, to prevent confusion with PASSWD,
402
+ which is for master auth.
403
+
404
+ 0.6
405
+
406
+ * Fixed addquote (was incrementing quote ID twice)
407
+ * now strips colour/bold escapes from incoming messages (rbot was ignoring
408
+ messages addressed using a bolded colon, for example).
409
+ * minor bugfixes
410
+ * more language breadth
411
+ * Addressing works better now
412
+ * Can autojoin channels with keys, conf.rbot line is:
413
+ autojoin_channels #chan1, #chan2, #chan3 key, #chan4 key, #chan5
414
+ * dice plugin fixes
415
+
416
+ 0.5
417
+
418
+ * Initial release