Age | Commit message (Collapse) | Author |
|
|
|
* Updated docgen to generate rdoc again with the new repo structure
* added new restart command to the core bot, quits irc and reexecs the
bot, to pick up new code/libraries etc.
|
|
* Config items are now objects, various types are available.
* The config wizard will now use registered config items if :wizard is set
to true for those items. It will ask questions in the order they were
registered.
* The config module now works for doing runtime configuration.
* misc refactoring
|
|
* config module for configuring the running bot via IRC
* BotConfig.register method for various modules and any plugin to register
bot configuration which the new config module will expose for them.
* various other tweaks as I continue to refactor..
|
|
* Moved some stuff out of util.rb into the plugins that actually need
them. Those methods didn't belong in util as they were plugin-specific.
* moved a few more plugins to use map() where appropriate
* made the url plugin only store unique urls
|
|
|
|
|
|
* Reworked the Timer module. The Timer now has a smart thread manager to
start/stop the tick() thread. This means the timer isn't called every 0.1
seconds to see what needs doing, which is much more efficient
* reworked the ircsocket queue mechanism to use a Timer
* reworked the nickserv plugin to use maps
* made server.reconnect_wait configurable
* added Class tracing mechanism to bin/rbot, use --trace Classname for
debugging
|
|
|
|
|
|
|
|
by install.rb
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* reworking the config system to use yaml for persistence
* reworking the config system key names
* on first startup, the bot will prompt for the essential startup config
* new config module for configuring the bot at runtime
* new config module includes new configurables, for example changing the
bot's language at runtime.
* various other fixes
* New way of mapping plugins to strings, using maps. These may be
familiar to rails users. This is to reduce the amount of regexps plugins
currently need to do to parse arguments. The old method (privmsg) is still
supported, of course. Example plugin now:
def MyPlugin < Plugin
def foo(m, params)
m.reply "bar"
end
def complexfoo(m, params)
m.reply "qux! (#{params[:bar]} #{params[:baz]})"
end
end
plugin = MyPlugin.new
# simple map
plugin.map 'foo'
# this will match "rbot: foo somestring otherstring" and pass the
# parameters as a hash using the names in the map.
plugin.map 'foo :bar :baz', :action => 'complexfoo'
# this means :foo is an optional parameter
plugin.map 'foo :foo', :defaults => {:foo => 'bar'}
# you can also gobble up into an array
plugin.map 'foo *bar' # params[:bar] will be an array of string elements
# and you can validate, here the first param must be a number
plugin.map 'foo :bar', :requirements => {:foo => /^\d+$/}
|
|
|
|
|
|
* Move some core plugins to use the new httputil
* fix wserver's redirection handling for relative (i.e. broken) redirects
* fix tube plugin's html parsing
|
|
with tricky station names, such as hammersmity & city.
|
|
|
|
wish to make http requests. It sets up all the proxies etc for them
according to bot config.
|
|
|
|
throwing timeout exceptions from .new, wheras they used to come from .get.
This means timeouts kill the bot so I've moved all the http code into the
begin block.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
with rbot's string handling. Most ircds are pretty liberal about lines
ending in various combinations of \r, \n, etc.
We need to be careful about strings we pass to the ircd that may have come
from users/untrusted sources (such as the output of the wserver plugin), and
sanitize their line endings so that raw commands can't be sneaked through to
the ircd.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|