2004-02-18 13:13:24 +01:00
|
|
|
So you've got your Supybot up and running and there are some things
|
|
|
|
you don't like about it. Fortunately for you, chances are that these
|
|
|
|
things are configurable, and this document is here to tell you how to
|
|
|
|
configure them.
|
|
|
|
|
|
|
|
Configuration of Supybot is handled via the Config plugin, which
|
|
|
|
controls runtime access to Supybot's registry (the configuration file
|
2004-02-18 15:12:27 +01:00
|
|
|
generated by the supybot-wizard program you ran). The Config plugin
|
2004-02-18 13:13:24 +01:00
|
|
|
provides a way to get or set variables, to list the available
|
|
|
|
variables, and even to get help for certain variables. Take a moment
|
2004-04-29 14:27:30 +02:00
|
|
|
now to read the help for each of those commands: config, list, and
|
2004-02-18 13:13:24 +01:00
|
|
|
help. If you don't know how to get help on those commands, go ahead
|
|
|
|
and read our GETTING_STARTED document before this one.
|
|
|
|
|
|
|
|
Now, if you're used to the Windows registry, don't worry, Supybot's
|
|
|
|
registry is completely different. For one, it's completely plain
|
|
|
|
text. There's no binary database sensitive to corruption, it's not
|
|
|
|
necessary to use another program to edit it -- all you need is a
|
|
|
|
simple text editor. But there is at least one good idea in Windows'
|
|
|
|
registry: hierarchical configuration. Supybot's configuration
|
|
|
|
variables are organized in a hierarchy: variables having to do with
|
|
|
|
the way Supybot makes replies all start with supybot.reply; variables
|
|
|
|
having to do with the way a plugin works all start with
|
|
|
|
supybot.plugins.Plugin (where Plugin is the name of the plugin in
|
|
|
|
question). This hierarchy is nice because it means the user isn't
|
|
|
|
inundated with hundreds of unrelated and unsorted configuration
|
|
|
|
variables.
|
2004-02-17 02:34:42 +01:00
|
|
|
|
|
|
|
Some of the more important configuration values are located directly
|
2004-02-18 13:13:24 +01:00
|
|
|
under the base group, supybot. Things like the bot's nick, its ident,
|
|
|
|
etc. Along with these config values are a few subgroups that contain
|
|
|
|
other values. Some of the more prominent subgroups are: plugins
|
|
|
|
(where all the plugin-specific configuration is held), reply (where
|
|
|
|
variables affecting the way a Supybot makes its replies resides),
|
|
|
|
replies (where all the specific standard replies are kept), and
|
|
|
|
directories (where all the directories a Supybot uses are defined).
|
|
|
|
There are other subgroups as well, but these are the ones we'll use in
|
|
|
|
our example.
|
2004-02-17 02:34:42 +01:00
|
|
|
|
|
|
|
Using the Config plugin, you can list the values in a subgroup and get
|
|
|
|
or set any of the values anywhere in the configuration hierarchy. For
|
|
|
|
example, let's say you wanted to see what configuration values were
|
2004-02-19 17:06:16 +01:00
|
|
|
under the "supybot" (the base group) hierarchy. You would simply
|
|
|
|
issue this command:
|
2004-02-17 02:34:42 +01:00
|
|
|
|
2004-02-18 13:13:24 +01:00
|
|
|
<jemfinch|lambda> @config list supybot
|
|
|
|
<supybot> jemfinch|lambda: nick, ident, user, server,
|
|
|
|
password, channels, prefixChars, defaultCapabilities,
|
|
|
|
defaultAllow, defaultIgnore, humanTimestampFormat,
|
|
|
|
externalIP, pipeSyntax,
|
|
|
|
followIdentificationThroughNickChanges, alwaysJoinOnInvite,
|
|
|
|
showSimpleSyntax, maxHistoryLength, nickmods, throttleTime,
|
|
|
|
snarfThrottle, threadAllCommands, pingServer, pingInterval,
|
|
|
|
upkeepInterval, flush, httpPeekSize, and
|
|
|
|
defaultSocketTimeout
|
2004-02-17 02:34:42 +01:00
|
|
|
|
|
|
|
These are all the configuration values you can set which are under the
|
|
|
|
base "supybot" group. Actually, their full names would each have a
|
|
|
|
"supybot." appended on to the front of them, but it is omitted in the
|
2004-02-18 13:13:24 +01:00
|
|
|
listing in order to shorten the output.
|
2004-02-17 02:34:42 +01:00
|
|
|
|
|
|
|
Now, to see all of the available configuration groups under the base
|
|
|
|
"supybot" group, we simply use the "--groups" flag to config list:
|
|
|
|
|
2004-02-18 13:13:24 +01:00
|
|
|
<jemfinch|lambda> @config list --groups supybot
|
|
|
|
<supybot> jemfinch|lambda: commands, databases,
|
|
|
|
directories, drivers, log, plugins, replies, and reply
|
2004-02-17 02:34:42 +01:00
|
|
|
|
|
|
|
These are all the subgroups of "supybot". Again, the full name of
|
|
|
|
these would have "supybot." prepended to them. So really, we have
|
|
|
|
supybot.commands, supybot.databases, etc.
|
|
|
|
|
|
|
|
Note: an item can show up in both lists if it is a group that itself
|
|
|
|
has a value. For example, all plugins fall under this category, as
|
|
|
|
their value is a boolean value determining whether or not that plugin
|
2004-02-18 13:13:24 +01:00
|
|
|
is to be loaded when the bot is started.
|
2004-02-17 02:34:42 +01:00
|
|
|
|
|
|
|
One last listing example, and then we'll start actually reading and
|
|
|
|
modifying the configuration values. It's important to know that when
|
|
|
|
you provide the group argument to config list that you must always
|
|
|
|
provide the full name of the group. For example, "config list
|
|
|
|
commands" would be incorrect, even though we see "commands" in the
|
2004-02-19 17:06:16 +01:00
|
|
|
listing above. Remember, we just shorten the names by the group we're
|
|
|
|
listing so we can fit more such names in a single message. In this
|
|
|
|
case, that would be "supybot", so to list everything in the commands
|
|
|
|
subgroup of supybot, we do:
|
2004-02-17 02:34:42 +01:00
|
|
|
|
2004-02-18 13:13:24 +01:00
|
|
|
<jemfinch|lambda> @config list supybot.commands
|
|
|
|
<supybot> jemfinch|lambda: defaultPlugins
|
2004-02-17 02:34:42 +01:00
|
|
|
|
2004-02-18 13:13:24 +01:00
|
|
|
Okay, now that you've used the Config plugin to list configuration
|
2004-02-19 17:06:16 +01:00
|
|
|
variables, it's time that we start looking at individual variables and
|
|
|
|
their values.
|
2004-02-17 02:34:42 +01:00
|
|
|
|
|
|
|
The first (and perhaps most important) thing you should know about
|
|
|
|
each configuration variable is that they all have an associated help
|
|
|
|
string to tell you what they represent. So the first command we'll
|
|
|
|
cover is "config help". To see the help string for any value or
|
2004-02-19 17:06:16 +01:00
|
|
|
group, simply use the "config help" command. For example, to see what
|
|
|
|
this "supybot.prefixChars" configuration variable is all about, we'd
|
|
|
|
do this:
|
2004-02-18 13:13:24 +01:00
|
|
|
|
|
|
|
<jemfinch|lambda> @config help supybot.prefixChars
|
|
|
|
<supybot> jemfinch|lambda: Determines what prefix
|
|
|
|
characters the bot will reply to. A prefix character is a
|
|
|
|
single character that the bot will use to determine what
|
|
|
|
messages are addressed to it; when there are no prefix
|
|
|
|
characters set, it just uses its nick.
|
|
|
|
|
|
|
|
Pretty simple, eh?
|
|
|
|
|
|
|
|
Now, if you're curious what the current value of a configuration
|
|
|
|
variable is, you'll use the "config" command with one argument, the
|
|
|
|
name of the variable you want to see the value of:
|
|
|
|
|
|
|
|
<jemfinch|lambda> @config supybot.prefixChars
|
|
|
|
<supybot> jemfinch|lambda: '@'
|
|
|
|
|
|
|
|
To set this value, just stick an extra argument after the name:
|
|
|
|
|
|
|
|
<jemfinch|lambda> @config supybot.prefixChars @$
|
|
|
|
<supybot> jemfinch|lambda: The operation succeeded.
|
|
|
|
|
|
|
|
Now, check this out:
|
|
|
|
|
|
|
|
<jemfinch|lambda> $config supybot.prefixChars
|
|
|
|
<supybot> jemfinch|lambda: '@$'
|
|
|
|
|
2004-02-19 17:06:16 +01:00
|
|
|
Note that we used $ as our prefix character, and that the value of the
|
|
|
|
configuration variable changed. If I were to use the "flush" command
|
|
|
|
now, this change would be flushed to the registry file on disk (this
|
|
|
|
would also happen if I made the bot quit, or pressed Ctrl-C in the
|
|
|
|
terminal the bot was running in). Instead, I'll revert the change:
|
2004-02-18 13:13:24 +01:00
|
|
|
|
|
|
|
<jemfinch|lambda> $config supybot.prefixChars @
|
|
|
|
<supybot> jemfinch|lambda: The operation succeeded.
|
|
|
|
<jemfinch|lambda> $note that this makes no response.
|
|
|
|
|
|
|
|
If you're ever curious what the default for a given configuration
|
|
|
|
variable is, use the "config default" command:
|
|
|
|
|
|
|
|
<jemfinch|lambda> @config default supybot.prefixChars
|
|
|
|
<supybot> jemfinch|lambda: ''
|
|
|
|
|
|
|
|
Thus, to reset a configuration variable to its default value, you can
|
|
|
|
simply say:
|
|
|
|
|
|
|
|
<jemfinch|lambda> @config supybot.prefixChars [config default
|
|
|
|
supybot.prefixChars]
|
|
|
|
<supybot> jemfinch|lambda: The operation succeeded.
|
|
|
|
<jemfinch|lambda> @note that this does nothing
|
|
|
|
|
|
|
|
Simple, eh?
|
|
|
|
|
2004-02-19 17:06:16 +01:00
|
|
|
Now, let's say you want to find all configuration variables that might
|
|
|
|
be even remotely related to opping. For that, you'll want the "config
|
|
|
|
search" command. Check this out:
|
2004-02-18 13:13:24 +01:00
|
|
|
|
|
|
|
<jemfinch|lambda> @config search op
|
|
|
|
<supybot> jemfinch|lambda:
|
|
|
|
supybot.plugins.Enforcer.autoOp,
|
|
|
|
supybot.plugins.Enforcer.autoOp.#supybot,
|
|
|
|
supybot.plugins.Enforcer.autoHalfop,
|
|
|
|
supybot.plugins.Enforcer.cycleToGetOps, supybot.plugins.Topic,
|
|
|
|
supybot.plugins.Topic.separator, and
|
|
|
|
supybot.plugins.Relay.topicSync
|
|
|
|
|
|
|
|
Sure, it showed up all the topic-related stuff in there, but it also
|
|
|
|
showed you all the op-related stuff, too. Do note, however, that you
|
|
|
|
can only see configuration variables for plugins that you have loaded
|
|
|
|
or that you loaded in the past; if you've never loaded a plugin,
|
|
|
|
there's no way for the bot to know what configuration variables it
|
|
|
|
registers.
|
|
|
|
|
|
|
|
Some people might like editing their registry file directly rather
|
2004-02-19 17:06:16 +01:00
|
|
|
than manipulating all these things through the bot. For those people,
|
|
|
|
we offer the "config reload" command, which reloads both registry
|
|
|
|
configuration and user/channel/ignore database configuration. Just
|
|
|
|
edit the interesting files and then give the bot the "config reload"
|
|
|
|
command and it'll work as expected. Do note, however, that Supybot
|
|
|
|
flushes his configuration files and databases to disk every hour or
|
|
|
|
so, and if this happens after you've edited your configuration files
|
|
|
|
but before you reload your changes, you could lose the changes you
|
|
|
|
made. To prevent this, set the supybot.flush value to Off, and no
|
|
|
|
automatic flushing will occur.
|
2004-02-18 13:13:24 +01:00
|
|
|
|
2004-08-13 05:31:45 +02:00
|
|
|
Many configuration variables can be specific to individual channels.
|
|
|
|
The Config plugin provides an easy way to configure something for a
|
|
|
|
specific channel; for instance, in order to set the prefixChar for a
|
|
|
|
specific channel, do this in that channel:
|
|
|
|
|
|
|
|
config channel supybot.prefixChars !
|
|
|
|
|
|
|
|
That'll set the prefixChar in the channel that message is sent in to
|
|
|
|
!. Voila, channel-specific values!
|
|
|
|
|
2004-02-18 13:13:24 +01:00
|
|
|
Anyway, that's about it for configuration. Have fun, and enjoy your
|
|
|
|
configurable bot!
|