Generate all plugin docs.

This commit is contained in:
Valentin Lorentz 2011-06-28 08:11:32 +02:00
parent 8e48e80012
commit 506278f454
62 changed files with 4322 additions and 8 deletions

73
generate_plugin_doc.py Normal file
View File

@ -0,0 +1,73 @@
#!/usr/bin/env python2
from __future__ import with_statement
import os
import re
import sys
# Commands instances are converted into SynchronizedAndFirewalled
from supybot.callbacks import SynchronizedAndFirewalled as Commands
validCommandName = re.compile('^[a-z]+$')
def main():
pluginNames = sys.argv[1:]
for pluginName in pluginNames:
supybot = __import__('supybot.plugins.%s.plugin' % pluginName)
PluginClass = getattr(supybot.plugins, pluginName).plugin.Class
filename = 'use/plugins/%s.rst' % pluginName.lower()
os.unlink(filename)
with open(filename, 'a') as fd:
fd.write('\n.. _plugin-%s:\n\nThe %s plugin\n' %
(pluginName.lower(), pluginName))
fd.write('='*len('The %s plugin' % pluginName))
fd.write('\n\n')
writeDoc(PluginClass, fd, '')
def writeDoc(PluginClass, fd, prefix):
if prefix != '':
prefix += ' '
for attributeName, attribute in PluginClass.__dict__.items():
if not callable(attribute):
continue
if not validCommandName.match(attributeName):
continue
if isinstance(attribute, Commands):
writeDoc(attribute, fd, prefix + attributeName)
else:
if attribute.__doc__ is None:
attribute.__doc__ = ''
syntax = attribute.__doc__.split('\n\n')[0].strip()
if syntax == 'takes no arguments':
syntax = ''
else:
syntax = ' ' + syntax
args = {
'prefix_dash': prefix.replace(' ', '-'),
'command': attributeName, # Does not contain spaces
'prefix_with_trailing_space': prefix,
'syntax': syntax,
'help_string': parseHelpString(attribute.__doc__),
}
args['decoration'] = '^'*len('%(prefix_with_trailing_space)s%(command)s%(syntax)s' %
args)
fd.write('.. command-%(prefix_dash)s%(command)s:\n\n'
'%(prefix_with_trailing_space)s%(command)s%(syntax)s\n'
'%(decoration)s\n\n'
'%(help_string)s\n\n' % args)
def parseHelpString(string):
# Remove the syntax
string = '\n\n'.join(string.split('\n\n')[1:])
# Remove the starting and ending spaces
string = '\n'.join([x.strip(' ') for x in string.split('\n')])
# Put the argument names into italic
string = re.sub(r'(<[^>]+>)', r'*\1*', string, re.M)
string = re.sub(r'(--[^ ]+)', r'*\1*', string, re.M)
return string
if __name__ == '__main__':
main()

View File

@ -9,3 +9,4 @@ The Supybot user guide
install.rst
getting_started.rst
plugins/index.rst

View File

@ -151,6 +151,8 @@ http://python.org, and follow the rest of the steps.
Installation: Windows
=====================
.. highlight:: bat
Install Python
--------------
@ -174,15 +176,11 @@ Once you have the code archive, extract it to some temporary directory, then
open up a command prompt (Programs -> Run -> ``cmd``) and ``cd`` into the
``supybot`` directory which contains the extracted code. For example, if you
have extracted the archive to ``C:\sometempdir\``, you would enter in the
prompt:
.. code-block:: bat
prompt::
cd "C:\sometempdir\supybot"
Once there, run the installer to install, with the following command:
.. code-block:: bat
Once there, run the installer to install, with the following command::
C:\Python27\python.exe setup.py install
@ -229,8 +227,6 @@ Now to start the bot, run, still from within the ``C:\runbot`` directory::
And watch the magic!
For a tutorial on using and managing the bot from here on, see the `Supybook`_.
This guide has been mainly written by nanotube (Daniel Folkinshteyn), and is
licensed under the Creative Commons Attribution ShareAlike 3.0 Unported license
and/or the GNU Free Documentation License v 1.3 or later.

90
use/plugins/admin.rst Normal file
View File

@ -0,0 +1,90 @@
.. _plugin-admin:
The Admin plugin
================
.. command-channels:
channels
^^^^^^^^
Returns the channels the bot is on. Must be given in private, in order
to protect the secrecy of secret channels.
.. command-part:
part [<channel>] [<reason>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Tells the bot to part the list of channels you give it. *<channel>* is
only necessary if you want the bot to part a channel other than the
current channel. If *<reason>* is specified, use it as the part
message.
.. command-ignore-list:
ignore list
^^^^^^^^^^^
Lists the hostmasks that the bot is ignoring.
.. command-ignore-remove:
ignore remove <hostmask|nick>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This will remove the persistent ignore on *<hostmask>* or the
hostmask currently associated with *<nick>*.
.. command-ignore-add:
ignore add <hostmask|nick> [<expires>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This will set a persistent ignore on *<hostmask>* or the hostmask
currently associated with *<nick>*. *<expires>* is an optional argument
specifying when (in "seconds from now") the ignore will expire; if
it isn't given, the ignore will never automatically expire.
.. command-join:
join <channel> [<key>]
^^^^^^^^^^^^^^^^^^^^^^
Tell the bot to join the given channel. If *<key>* is given, it is used
when attempting to join the channel.
.. command-capability-add:
capability add <name|hostmask> <capability>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Gives the user specified by *<name>* (or the user to whom *<hostmask>*
currently maps) the specified capability *<capability>*
.. command-capability-remove:
capability remove <name|hostmask> <capability>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Takes from the user specified by *<name>* (or the user to whom
*<hostmask>* currently maps) the specified capability *<capability>*
.. command-nick:
nick [<nick>]
^^^^^^^^^^^^^
Changes the bot's nick to *<nick>*. If no nick is given, returns the
bot's current nick.

43
use/plugins/alias.rst Normal file
View File

@ -0,0 +1,43 @@
.. _plugin-alias:
The Alias plugin
================
.. command-lock:
lock <alias>
^^^^^^^^^^^^
Locks an alias so that no one else can change it.
.. command-unlock:
unlock <alias>
^^^^^^^^^^^^^^
Unlocks an alias so that people can define new aliases over it.
.. command-remove:
remove <name>
^^^^^^^^^^^^^
Removes the given alias, if unlocked.
.. command-add:
add <name> <alias>
^^^^^^^^^^^^^^^^^^
Defines an alias *<name>* that executes *<alias>*. The *<alias>*
should be in the standard "command argument [nestedcommand argument]"
arguments to the alias; they'll be filled with the first, second, etc.
arguments. $1, $2, etc. can be used for required arguments. @1, @2,
etc. can be used for optional arguments. $* simply means "all
remaining arguments," and cannot be combined with optional arguments.

23
use/plugins/anonymous.rst Normal file
View File

@ -0,0 +1,23 @@
.. _plugin-anonymous:
The Anonymous plugin
====================
.. command-do:
do <channel> <action>
^^^^^^^^^^^^^^^^^^^^^
Performs *<action>* in *<channel>*.
.. command-say:
say <channel|nick> <text>
^^^^^^^^^^^^^^^^^^^^^^^^^
Sends *<text>* to *<channel|nick>*. Can only send to *<nick>* if
supybot.plugins.Anonymous.allowPrivateTarget is True.

6
use/plugins/automode.rst Normal file
View File

@ -0,0 +1,6 @@
.. _plugin-automode:
The AutoMode plugin
===================

37
use/plugins/badwords.rst Normal file
View File

@ -0,0 +1,37 @@
.. _plugin-badwords:
The BadWords plugin
===================
.. command-sub:
sub
^^^^
.. command-list:
list
^^^^
Returns the list of words being censored.
.. command-remove:
remove <word> [<word> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^^
Removes *<word>*s from the list of words being censored.
.. command-add:
add <word> [<word> ...]
^^^^^^^^^^^^^^^^^^^^^^^
Adds all *<word>*s to the list of words being censored.

383
use/plugins/channel.rst Normal file
View File

@ -0,0 +1,383 @@
.. _plugin-channel:
The Channel plugin
==================
.. command-unmoderate:
unmoderate [<channel>]
^^^^^^^^^^^^^^^^^^^^^^
Sets -m on *<channel>*, making it so everyone can
send messages to the channel. *<channel>* is only necessary if the
message isn't sent in the channel itself.
.. command-devoice:
devoice [<channel>] [<nick> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you have the #channel,op capability, this will remove voice from all
the nicks given. If no nicks are given, removes voice from the person
sending the message.
.. command-lobotomy-list:
lobotomy list
^^^^^^^^^^^^^
Returns the channels in which this bot is lobotomized.
.. command-lobotomy-remove:
lobotomy remove [<channel>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you have the #channel,op capability, this will unlobotomize the
bot, making it respond to requests made in the channel again.
*<channel>* is only necessary if the message isn't sent in the channel
itself.
.. command-lobotomy-add:
lobotomy add [<channel>]
^^^^^^^^^^^^^^^^^^^^^^^^
If you have the #channel,op capability, this will "lobotomize" the
bot, making it silent and unanswering to all requests made in the
channel. *<channel>* is only necessary if the message isn't sent in
the channel itself.
.. command-deop:
deop [<channel>] [<nick> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you have the #channel,op capability, this will remove operator
privileges from all the nicks given. If no nicks are given, removes
operator privileges from the person sending the message.
.. command-nicks:
nicks [<channel>] [--count]
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the nicks in *<channel>*. *<channel>* is only necessary if the
message isn't sent in the channel itself. Returns only the number of
nicks if *--count* option is provided.
.. command-limit:
limit [<channel>] [<limit>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sets the channel limit to *<limit>*. If *<limit>* is 0, or isn't given,
removes the channel limit. *<channel>* is only necessary if the message
isn't sent in the channel itself.
.. command-moderate:
moderate [<channel>]
^^^^^^^^^^^^^^^^^^^^
Sets +m on *<channel>*, making it so only ops and voiced users can
send messages to the channel. *<channel>* is only necessary if the
message isn't sent in the channel itself.
.. command-unban:
unban [<channel>] [<hostmask>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Unbans *<hostmask>* on *<channel>*. If *<hostmask>* is not given, unbans
any hostmask currently banned on *<channel>* that matches your current
hostmask. Especially useful for unbanning yourself when you get
unexpectedly (or accidentally) banned from the channel. *<channel>* is
only necessary if the message isn't sent in the channel itself.
.. command-kick:
kick [<channel>] <nick>[, <nick>, ...] [<reason>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Kicks *<nick>*(s) from *<channel>* for *<reason>*. If *<reason>* isn't given,
uses the nick of the person making the command as the reason.
*<channel>* is only necessary if the message isn't sent in the channel
itself.
.. command-enable:
enable [<channel>] [<plugin>] [<command>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you have the #channel,op capability, this will enable the *<command>*
in *<channel>* if it has been disabled. If *<plugin>* is provided,
*<command>* will be enabled only for that plugin. If only *<plugin>* is
provided, all commands in the given plugin will be enabled. *<channel>*
is only necessary if the message isn't sent in the channel itself.
.. command-invite:
invite [<channel>] <nick>
^^^^^^^^^^^^^^^^^^^^^^^^^
If you have the #channel,op capability, this will invite *<nick>*
to join *<channel>*. *<channel>* is only necessary if the message isn't
sent in the channel itself.
.. command-dehalfop:
dehalfop [<channel>] [<nick> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you have the #channel,op capability, this will remove half-operator
privileges from all the nicks given. If no nicks are given, removes
half-operator privileges from the person sending the message.
.. command-alert:
alert [<channel>] <text>
^^^^^^^^^^^^^^^^^^^^^^^^
Sends *<text>* to all the users in *<channel>* who have the *<channel>*,op
capability.
.. command-disable:
disable [<channel>] [<plugin>] [<command>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you have the #channel,op capability, this will disable the *<command>*
in *<channel>*. If *<plugin>* is provided, *<command>* will be disabled only
for that plugin. If only *<plugin>* is provided, all commands in the
given plugin will be disabled. *<channel>* is only necessary if the
message isn't sent in the channel itself.
.. command-key:
key [<channel>] [<key>]
^^^^^^^^^^^^^^^^^^^^^^^
Sets the keyword in *<channel>* to *<key>*. If *<key>* is not given, removes
the keyword requirement to join *<channel>*. *<channel>* is only necessary
if the message isn't sent in the channel itself.
.. command-ignore-list:
ignore list [<channel>]
^^^^^^^^^^^^^^^^^^^^^^^
Lists the hostmasks that the bot is ignoring on the given channel.
*<channel>* is only necessary if the message isn't sent in the
channel itself.
.. command-ignore-remove:
ignore remove [<channel>] <hostmask>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you have the #channel,op capability, this will remove the
persistent ignore on *<hostmask>* in the channel. *<channel>* is only
necessary if the message isn't sent in the channel itself.
.. command-ignore-add:
ignore add [<channel>] <nick|hostmask> [<expires>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you have the #channel,op capability, this will set a persistent
ignore on *<hostmask>* or the hostmask currently
associated with *<nick>*. *<expires>* is an optional argument
specifying when (in "seconds from now") the ignore will expire; if
it isn't given, the ignore will never automatically expire.
*<channel>* is only necessary if the message isn't sent in the
channel itself.
.. command-cycle:
cycle [<channel>]
^^^^^^^^^^^^^^^^^
If you have the #channel,op capability, this will cause the bot to
"cycle", or PART and then JOIN the channel. *<channel>* is only necessary
if the message isn't sent in the channel itself.
.. command-capability-set:
capability set [<channel>] <capability> [<capability> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you have the #channel,op capability, this will add the channel
capability *<capability>* for all users in the channel. *<channel>* is
only necessary if the message isn't sent in the channel itself.
.. command-capability-setdefault:
capability setdefault [<channel>] {True|False}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you have the #channel,op capability, this will set the default
response to non-power-related (that is, not {op, halfop, voice}
capabilities to be the value you give. *<channel>* is only necessary
if the message isn't sent in the channel itself.
.. command-capability-list:
capability list [<channel>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the capabilities present on the *<channel>*. *<channel>* is
only necessary if the message isn't sent in the channel itself.
.. command-capability-remove:
capability remove [<channel>] <name|hostmask> <capability> [<capability> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you have the #channel,op capability, this will take from the
user currently identified as *<name>* (or the user to whom *<hostmask>*
maps) the capability *<capability>* in the channel. *<channel>* is only
necessary if the message isn't sent in the channel itself.
.. command-capability-add:
capability add [<channel>] <nick|username> <capability> [<capability> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you have the #channel,op capability, this will give the user
*<name>* (or the user to whom *<nick>* maps)
the capability *<capability>* in the channel. *<channel>* is only
necessary if the message isn't sent in the channel itself.
.. command-capability-unset:
capability unset [<channel>] <capability> [<capability> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you have the #channel,op capability, this will unset the channel
capability *<capability>* so each user's specific capability or the
channel default capability will take precedence. *<channel>* is only
necessary if the message isn't sent in the channel itself.
.. command-kban:
kban [<channel>] [--{exact,nick,user,host}] <nick> [<seconds>] [<reason>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you have the #channel,op capability, this will kickban *<nick>* for
as many seconds as you specify, or else (if you specify 0 seconds or
don't specify a number of seconds) it will ban the person indefinitely.
*--exact* bans only the exact hostmask; *--nick* bans just the nick;
*--user* bans just the user, and *--host* bans just the host. You can
combine these options as you choose. *<reason>* is a reason to give for
the kick.
*<channel>* is only necessary if the message isn't sent in the channel
itself.
.. command-halfop:
halfop [<channel>] [<nick> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you have the #channel,halfop capability, this will give all the
*<nick>*s you provide halfops. If you don't provide any *<nick>*s, this
will give you halfops. *<channel>* is only necessary if the message isn't
sent in the channel itself.
.. command-mode:
mode [<channel>] <mode> [<arg> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sets the mode in *<channel>* to *<mode>*, sending the arguments given.
*<channel>* is only necessary if the message isn't sent in the channel
itself.
.. command-ban-list:
ban list [<channel>]
^^^^^^^^^^^^^^^^^^^^
If you have the #channel,op capability, this will show you the
current persistent bans on #channel.
.. command-ban-remove:
ban remove [<channel>] <hostmask>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you have the #channel,op capability, this will remove the
persistent ban on *<hostmask>*. *<channel>* is only necessary if the
message isn't sent in the channel itself.
.. command-ban-add:
ban add [<channel>] <nick|hostmask> [<expires>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you have the #channel,op capability, this will effect a
persistent ban from interacting with the bot on the given
*<hostmask>* (or the current hostmask associated with *<nick>*. Other
plugins may enforce this ban by actually banning users with
matching hostmasks when they join. *<expires>* is an optional
argument specifying when (in "seconds from now") the ban should
expire; if none is given, the ban will never automatically expire.
*<channel>* is only necessary if the message isn't sent in the
channel itself.
.. command-voice:
voice [<channel>] [<nick> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you have the #channel,voice capability, this will voice all the
*<nick>*s you provide. If you don't provide any *<nick>*s, this will
voice you. *<channel>* is only necessary if the message isn't sent in the
channel itself.
.. command-op:
op [<channel>] [<nick> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you have the #channel,op capability, this will give all the *<nick>*s
you provide ops. If you don't provide any *<nick>*s, this will op you.
*<channel>* is only necessary if the message isn't sent in the channel
itself.

View File

@ -0,0 +1,34 @@
.. _plugin-channellogger:
The ChannelLogger plugin
========================
.. command-timestamp:
timestamp
^^^^^^^^^^
.. command-flush:
flush
^^^^^^
.. command-reset:
reset
^^^^^^
.. command-die:
die
^^^^

View File

@ -0,0 +1,44 @@
.. _plugin-channelstats:
The ChannelStats plugin
=======================
.. command-stats:
stats [<channel>] [<name>]
^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the statistics for *<name>* on *<channel>*. *<channel>* is only
necessary if the message isn't sent on the channel itself. If *<name>*
isn't given, it defaults to the user sending the command.
.. command-die:
die
^^^^
.. command-rank:
rank [<channel>] <stat expression>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the ranking of users according to the given stat expression.
Valid variables in the stat expression include 'msgs', 'chars',
'words', 'smileys', 'frowns', 'actions', 'joins', 'parts', 'quits',
'kicks', 'kicked', 'topics', and 'modes'. Any simple mathematical
expression involving those variables is permitted.
.. command-channelstats:
channelstats [<channel>]
^^^^^^^^^^^^^^^^^^^^^^^^
Returns the statistics for *<channel>*. *<channel>* is only necessary if
the message isn't sent on the channel itself.

176
use/plugins/conditional.rst Normal file
View File

@ -0,0 +1,176 @@
.. _plugin-conditional:
The Conditional plugin
======================
.. command-gt:
gt <item1> <item2>
Does a string comparison on <item1> and <item2>.
Returns true if <item1> is greater than <item2>.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. command-nlt:
nlt <item1> <item2>
Does a numeric comparison on <item1> and <item2>.
Returns true if <item1> is less than <item2>.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. command-nne:
nne <item1> <item2>
Does a numeric comparison on <item1> and <item2>.
Returns true if they are not equal.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. command-ge:
ge <item1> <item2>
Does a string comparison on <item1> and <item2>.
Returns true if <item1> is greater than or equal to <item2>.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. command-cor:
cor <cond1> [<cond2> ... <condN>]
Returns true if any one of conditions supplied evaluates to true.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. command-nle:
nle <item1> <item2>
Does a numeric comparison on <item1> and <item2>.
Returns true if <item1> is less than or equal to <item2>.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. command-ceq:
ceq <item1> <item2>
Does a string comparison on <item1> and <item2>.
Returns true if they are equal.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. command-nge:
nge <item1> <item2>
Does a numeric comparison on <item1> and <item2>.
Returns true if <item1> is greater than or equal to <item2>.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. command-cxor:
cxor <cond1> [<cond2> ... <condN>]
Returns true if only one of conditions supplied evaluates to true.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. command-le:
le <item1> <item2>
Does a string comparison on <item1> and <item2>.
Returns true if <item1> is less than or equal to <item2>.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. command-cif:
cif <condition> <ifcommand> <elsecommand>
Runs <ifcommand> if <condition> evaluates to true, runs <elsecommand>
if it evaluates to false.
Use other logical operators defined in this plugin and command nesting
to your advantage here.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. command-ne:
ne <item1> <item2>
Does a string comparison on <item1> and <item2>.
Returns true if they are not equal.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. command-cand:
cand <cond1> [<cond2> ... <condN>]
Returns true if all conditions supplied evaluate to true.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. command-nceq:
nceq <item1> <item2>
Does a numeric comparison on <item1> and <item2>.
Returns true if they are equal.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. command-ngt:
ngt <item1> <item2>
Does a numeric comparison on <item1> and <item2>.
Returns true if they <item1> is greater than <item2>.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. command-lt:
lt <item1> <item2>
Does a string comparison on <item1> and <item2>.
Returns true if <item1> is less than <item2>.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. command-match:
match <item1> <item2>
Determines if <item1> is a substring of <item2>.
Returns true if <item1> is contained in <item2>.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

83
use/plugins/config.rst Normal file
View File

@ -0,0 +1,83 @@
.. _plugin-config:
The Config plugin
=================
.. command-help:
help <name>
^^^^^^^^^^^
Returns the description of the configuration variable *<name>*.
.. command-default:
default <name>
^^^^^^^^^^^^^^
Returns the default value of the configuration variable *<name>*.
.. command-list:
list <group>
^^^^^^^^^^^^
Returns the configuration variables available under the given
configuration *<group>*. If a variable has values under it, it is
preceded by an '@' sign. If a variable is a 'ChannelValue', that is,
it can be separately configured for each channel using the 'channel'
command in this plugin, it is preceded by an '#' sign.
.. command-search:
search <word>
^^^^^^^^^^^^^
Searches for *<word>* in the current configuration variables.
.. command-reload:
reload
^^^^^^
Reloads the various configuration files (user database, channel
database, registry, etc.).
.. command-export:
export <filename>
^^^^^^^^^^^^^^^^^
Exports the public variables of your configuration to *<filename>*.
If you want to show someone your configuration file, but you don't
want that person to be able to see things like passwords, etc., this
command will export a "sanitized" configuration file suitable for
showing publicly.
.. command-channel:
channel [<channel>] <name> [<value>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If *<value>* is given, sets the channel configuration variable for *<name>*
to *<value>* for *<channel>*. Otherwise, returns the current channel
configuration value of *<name>*. *<channel>* is only necessary if the
message isn't sent in the channel itself.
.. command-config:
config <name> [<value>]
^^^^^^^^^^^^^^^^^^^^^^^
If *<value>* is given, sets the value of *<name>* to *<value>*. Otherwise,
returns the current value of *<name>*. You may omit the leading
"supybot." in the name if you so choose.

18
use/plugins/ctcp.rst Normal file
View File

@ -0,0 +1,18 @@
.. _plugin-ctcp:
The Ctcp plugin
===============
.. command-version:
version [<channel>] [--nicks]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sends a CTCP VERSION to *<channel>*, returning the various
version strings returned. It waits for 10 seconds before returning
the versions received at that point. If *--nicks* is given, nicks are
associated with the version strings; otherwise, only the version
strings are given.

43
use/plugins/dict.rst Normal file
View File

@ -0,0 +1,43 @@
.. _plugin-dict:
The Dict plugin
===============
.. command-synonym:
synonym <word> [<word> ...]
Gets a random synonym from the Moby Thesaurus (moby-thes) database.
If given many words, gets a random synonym for each of them.
Quote phrases to have them treated as one lookup word.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. command-dict:
dict [<dictionary>] <word>
^^^^^^^^^^^^^^^^^^^^^^^^^^
Looks up the definition of *<word>* on the dictd server specified by
the supybot.plugins.Dict.server config variable.
.. command-random:
random
^^^^^^
Returns a random valid dictionary.
.. command-dictionaries:
dictionaries
^^^^^^^^^^^^
Returns the dictionaries valid for the dict command.

6
use/plugins/dunno.rst Normal file
View File

@ -0,0 +1,6 @@
.. _plugin-dunno:
The Dunno plugin
================

132
use/plugins/factoids.rst Normal file
View File

@ -0,0 +1,132 @@
.. _plugin-factoids:
The Factoids plugin
===================
.. command-info:
info [<channel>] <key>
^^^^^^^^^^^^^^^^^^^^^^
Gives information about the factoid(s) associated with *<key>*.
*<channel>* is only necessary if the message isn't sent in the channel
itself.
.. command-learn:
learn
^^^^^^
.. command-forget:
forget [<channel>] <key> [<number>|*]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Removes a key-fact relationship for key *<key>* from the factoids
database. If there is more than one such relationship for this key,
a number is necessary to determine which one should be removed.
A * can be used to remove all relationships for *<key>*.
If as a result, the key (factoid) remains without any relationships to
a factoid (key), it shall be removed from the database.
*<channel>* is only necessary if
the message isn't sent in the channel itself.
.. command-random:
random [<channel>]
^^^^^^^^^^^^^^^^^^
Returns a random factoid from the database for *<channel>*. *<channel>*
is only necessary if the message isn't sent in the channel itself.
.. command-rank:
rank [<channel>] [--plain] [--alpha] [<number>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns a list of top-ranked factoid keys, sorted by usage count
(rank). If *<number>* is not provided, the default number of factoid keys
returned is set by the rankListLength registry value.
If *--plain* option is given, rank numbers and usage counts are not
included in output.
If *--alpha* option is given in addition to *--plain,* keys are sorted
alphabetically, instead of by rank.
*<channel>* is only necessary if the message isn't sent in the channel
itself.
.. command-unlock:
unlock [<channel>] <key>
^^^^^^^^^^^^^^^^^^^^^^^^
Unlocks the factoid(s) associated with *<key>* so that they can be
removed or added to. *<channel>* is only necessary if the message isn't
sent in the channel itself.
.. command-search:
search [<channel>] [--values] [--{regexp} <value>] [<glob> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Searches the keyspace for keys matching *<glob>*. If *--regexp* is given,
it associated value is taken as a regexp and matched against the keys.
If *--values* is given, search the value space instead of the keyspace.
.. command-whatis:
whatis [<channel>] [--raw] <key> [<number>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Looks up the value of *<key>* in the factoid database. If given a
number, will return only that exact factoid. If '*--raw'* option is
given, no variable substitution will take place on the factoid.
*<channel>* is only necessary if the message isn't sent in the channel
itself.
.. command-alias:
alias [<channel>] <oldkey> <newkey> [<number>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Adds a new key *<newkey>* for factoid associated with *<oldkey>*.
*<number>* is only necessary if there's more than one factoid associated
with *<oldkey>*.
The same action can be accomplished by using the 'learn' function with
a new key but an existing (verbatim) factoid content.
.. command-change:
change [<channel>] <key> <number> <regexp>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changes the factoid #*<number>* associated with *<key>* according to
*<regexp>*.
.. command-lock:
lock [<channel>] <key>
^^^^^^^^^^^^^^^^^^^^^^
Locks the factoid(s) associated with *<key>* so that they cannot be
removed or added to. *<channel>* is only necessary if the message isn't
sent in the channel itself.

209
use/plugins/filter.rst Normal file
View File

@ -0,0 +1,209 @@
.. _plugin-filter:
The Filter plugin
=================
.. command-undup:
undup <text>
^^^^^^^^^^^^
Returns *<text>*, with all consecutive duplicated letters removed.
.. command-unhexlify:
unhexlify <hexstring>
^^^^^^^^^^^^^^^^^^^^^
Returns the string corresponding to *<hexstring>*. Obviously,
*<hexstring>* must be a string of hexadecimal digits.
.. command-stripcolor:
stripcolor <text>
^^^^^^^^^^^^^^^^^
Returns *<text>* stripped of all color codes.
.. command-unbinary:
unbinary <text>
^^^^^^^^^^^^^^^
Returns the character representation of binary *<text>*.
Assumes ASCII, 8 digits per character.
.. command-hebrew:
hebrew <text>
^^^^^^^^^^^^^
Removes all the vowels from *<text>*. (If you're curious why this is
named 'hebrew' it's because I (jemfinch) thought of it in Hebrew class,
and printed Hebrew often elides the vowels.)
.. command-colorize:
colorize <text>
^^^^^^^^^^^^^^^
Returns *<text>* with each character randomly colorized.
.. command-binary:
binary <text>
^^^^^^^^^^^^^
Returns the binary representation of *<text>*.
.. command-leet:
leet <text>
^^^^^^^^^^^
Returns the l33tspeak version of *<text>*
.. command-lithp:
lithp <text>
^^^^^^^^^^^^
Returns the lisping version of *<text>*
.. command-morse:
morse <text>
^^^^^^^^^^^^
Gives the Morse code equivalent of a given string.
.. command-outfilter:
outfilter [<channel>] [<command>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sets the outFilter of this plugin to be *<command>*. If no command is
given, unsets the outFilter. *<channel>* is only necessary if the
message isn't sent in the channel itself.
.. command-spellit:
spellit <text>
^^^^^^^^^^^^^^
Returns *<text>*, phonetically spelled out.
.. command-rainbow:
rainbow <text>
^^^^^^^^^^^^^^
Returns *<text>* colorized like a rainbow.
.. command-aol:
aol <text>
^^^^^^^^^^
Returns *<text>* as if an AOLuser had said it.
.. command-hexlify:
hexlify <text>
^^^^^^^^^^^^^^
Returns a hexstring from the given string; a hexstring is a string
composed of the hexadecimal value of each character in the string
.. command-unmorse:
unmorse <Morse code text>
^^^^^^^^^^^^^^^^^^^^^^^^^
Does the reverse of the morse command.
.. command-squish:
squish <text>
^^^^^^^^^^^^^
Removes all the spaces from *<text>*.
.. command-reverse:
reverse <text>
^^^^^^^^^^^^^^
Reverses *<text>*.
.. command-azn:
azn <text>
^^^^^^^^^^
Returns *<text>* with the l's made into r's and r's made into l's.
.. command-gnu:
gnu <text>
^^^^^^^^^^
Returns *<text>* as GNU/RMS would say it.
.. command-jeffk:
jeffk <text>
^^^^^^^^^^^^
Returns *<text>* as if JeffK had said it himself.
.. command-shrink:
shrink <text>
^^^^^^^^^^^^^
Returns *<text>* with each word longer than
supybot.plugins.Filter.shrink.minimum being shrunken (i.e., like
"internationalization" becomes "i18n").
.. command-uniud:
uniud <text>
^^^^^^^^^^^^
Returns *<text>* rotated 180 degrees. Only really works for ASCII
printable characters.
.. command-scramble:
scramble <text>
^^^^^^^^^^^^^^^
Replies with a string where each word is scrambled; i.e., each internal
letter (that is, all letters but the first and last) are shuffled.

145
use/plugins/format.rst Normal file
View File

@ -0,0 +1,145 @@
.. _plugin-format:
The Format plugin
=================
.. command-upper:
upper <text>
^^^^^^^^^^^^
Returns *<text>* uppercased.
.. command-bold:
bold <text>
^^^^^^^^^^^
Returns *<text>* bolded.
.. command-format:
format <format string> [<arg> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Expands a Python-style format string using the remaining args. Just be
sure always to use %s, not %d or %f or whatever, because all the args
are strings.
.. command-color:
color <foreground> [<background>] <text>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns *<text>* with foreground color *<foreground>* and background color
*<background>* (if given)
.. command-repr:
repr <text>
^^^^^^^^^^^
Returns the text surrounded by double quotes.
.. command-replace:
replace <substring to translate> <substring to replace it with> <text>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Replaces all non-overlapping occurrences of *<substring to translate>*
with *<substring to replace it with>* in *<text>*.
.. command-capitalize:
capitalize <text>
^^^^^^^^^^^^^^^^^
Returns *<text>* capitalized.
.. command-underline:
underline <text>
^^^^^^^^^^^^^^^^
Returns *<text>* underlined.
.. command-lower:
lower <text>
^^^^^^^^^^^^
Returns *<text>* lowercased.
.. command-cut:
cut <size> <text>
^^^^^^^^^^^^^^^^^
Cuts *<text>* down to *<size>* by chopping off the rightmost characters in
excess of *<size>*. If *<size>* is a negative number, it chops that many
characters off the end of *<text>*.
.. command-join:
join <separator> <string 1> [<string> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Joins all the arguments together with *<separator>*.
.. command-reverse:
reverse <text>
^^^^^^^^^^^^^^
Returns *<text>* in reverse-video.
.. command-title:
title <text>
^^^^^^^^^^^^
Returns *<text>* titlecased.
.. command-field:
field <number> <text>
^^^^^^^^^^^^^^^^^^^^^
Returns the *<number>*th space-separated field of *<text>*. I.e., if text
is "foo bar baz" and *<number>* is 2, "bar" is returned.
.. command-concat:
concat <string 1> <string 2>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Concatenates two strings. Do keep in mind that this is *not* the same
thing as join "", since if *<string 2>* contains spaces, they won't be
removed by concat.
.. command-translate:
translate <chars to translate> <chars to replace those with> <text>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Replaces *<chars to translate>* with *<chars to replace those with>* in
*<text>*. The first and second arguments must necessarily be the same
length.

52
use/plugins/games.rst Normal file
View File

@ -0,0 +1,52 @@
.. _plugin-games:
The Games plugin
================
.. command-dice:
dice <dice>d<sides>
^^^^^^^^^^^^^^^^^^^
Rolls a die with *<sides>* number of sides *<dice>* times.
For example, 2d6 will roll 2 six-sided dice; 10d10 will roll 10
ten-sided dice.
.. command-roulette:
roulette [spin]
^^^^^^^^^^^^^^^
Fires the revolver. If the bullet was in the chamber, you're dead.
Tell me to spin the chambers and I will.
.. command-eightball:
eightball [<question>]
^^^^^^^^^^^^^^^^^^^^^^
Ask a question and the answer shall be provided.
.. command-monologue:
monologue [<channel>]
^^^^^^^^^^^^^^^^^^^^^
Returns the number of consecutive lines you've sent in *<channel>*
without being interrupted by someone else (i.e. how long your current
'monologue' is). *<channel>* is only necessary if the message isn't sent
in the channel itself.
.. command-coin:
coin
^^^^
Flips a coin and returns the result.

81
use/plugins/google.rst Normal file
View File

@ -0,0 +1,81 @@
.. _plugin-google:
The Google plugin
=================
.. command-google:
google <search> [--{filter,language} <value>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Searches google.com for the given string. As many results as can fit
are included. *--language* accepts a language abbreviation; *--filter
accepts* a filtering level ('active', 'moderate', 'off').
.. command-search:
search Perform a search using Google's AJAX API.
search("search phrase", options={})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Valid options are:
smallsearch - True/False (Default: False)
filter - {active,moderate,off} (Default: "moderate")
language - Restrict search to documents in the given language
(Default: "lang_en")
.. command-cache:
cache <url>
^^^^^^^^^^^
Returns a link to the cached version of *<url>* if it is available.
.. command-lucky:
lucky [--snippet] <search>
^^^^^^^^^^^^^^^^^^^^^^^^^^
Does a google search, but only returns the first result.
If option *--snippet* is given, returns also the page text snippet.
.. command-fight:
fight <search string> <search string> [<search string> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the results of each search, in order, from greatest number
of results to least.
.. command-phonebook:
phonebook <phone number>
^^^^^^^^^^^^^^^^^^^^^^^^
Looks *<phone number>* up on Google.
.. command-calc:
calc <expression>
^^^^^^^^^^^^^^^^^
Uses Google's calculator to calculate the value of *<expression>*.
.. command-translate:
translate <from-language> [to] <to-language> <text>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns *<text>* translated from *<from-language>* into *<to-language>*.
Beware that translating to or from languages that use multi-byte
characters may result in some very odd results.

68
use/plugins/herald.rst Normal file
View File

@ -0,0 +1,68 @@
.. _plugin-herald:
The Herald plugin
=================
.. command-get:
get [<channel>] [<user|nick>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the current herald message for *<user>* (or the user
*<nick|hostmask>* is currently identified or recognized as). If *<user>*
is not given, defaults to the user giving the command. *<channel>*
is only necessary if the message isn't sent in the channel itself.
.. command-die:
die
^^^^
.. command-remove:
remove [<channel>] [<user|nick>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Removes the herald message set for *<user>*, or the user
*<nick|hostmask>* is currently identified or recognized as. If *<user>*
is not given, defaults to the user giving the command.
*<channel>* is only necessary if the message isn't sent in the channel
itself.
.. command-default:
default [<channel>] [--remove|<msg>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If *<msg>* is given, sets the default herald to *<msg>*. A *<msg>* of ""
will remove the default herald. If *<msg>* is not given, returns the
current default herald. *<channel>* is only necessary if the message
isn't sent in the channel itself.
.. command-add:
add [<channel>] <user|nick> <msg>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sets the herald message for *<user>* (or the user *<nick|hostmask>* is
currently identified or recognized as) to *<msg>*. *<channel>* is only
necessary if the message isn't sent in the channel itself.
.. command-change:
change [<channel>] [<user|nick>] <regexp>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changes the herald message for *<user>*, or the user *<nick|hostmask>* is
currently identified or recognized as, according to *<regexp>*. If
*<user>* is not given, defaults to the calling user. *<channel>* is only
necessary if the message isn't sent in the channel itself.

14
use/plugins/index.rst Normal file
View File

@ -0,0 +1,14 @@
.. _main-plugins:
***************
Supybot plugins
***************
Main plugins
============
.. toctree::
:maxdepth: 3
owner.rst
admin.rst

30
use/plugins/internet.rst Normal file
View File

@ -0,0 +1,30 @@
.. _plugin-internet:
The Internet plugin
===================
.. command-whois:
whois <domain>
^^^^^^^^^^^^^^
Returns WHOIS information on the registration of *<domain>*.
.. command-dns:
dns <host|ip>
^^^^^^^^^^^^^
Returns the ip of *<host>* or the reverse DNS hostname of *<ip>*.
.. command-hexip:
hexip <ip>
^^^^^^^^^^
Returns the hexadecimal IP for that IP.

64
use/plugins/karma.rst Normal file
View File

@ -0,0 +1,64 @@
.. _plugin-karma:
The Karma plugin
================
.. command-load:
load [<channel>] <filename>
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Loads the Karma database for *<channel>* from *<filename>* in the bot's
data directory. *<channel>* is only necessary if the message isn't sent
in the channel itself.
.. command-dump:
dump [<channel>] <filename>
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dumps the Karma database for *<channel>* to *<filename>* in the bot's
data directory. *<channel>* is only necessary if the message isn't sent
in the channel itself.
.. command-die:
die
^^^^
.. command-clear:
clear [<channel>] <name>
^^^^^^^^^^^^^^^^^^^^^^^^
Resets the karma of *<name>* to 0.
.. command-most:
most [<channel>] {increased,decreased,active}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the most increased, the most decreased, or the most active
(the sum of increased and decreased) karma things. *<channel>* is only
necessary if the message isn't sent in the channel itself.
.. command-karma:
karma [<channel>] [<thing> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the karma of *<thing>*. If *<thing>* is not given, returns the top
N karmas, where N is determined by the config variable
supybot.plugins.Karma.rankingDisplay. If one *<thing>* is given, returns
the details of its karma; if more than one *<thing>* is given, returns
the total karma of each of the the things. *<channel>* is only necessary
if the message isn't sent on the channel itself.

16
use/plugins/lart.rst Normal file
View File

@ -0,0 +1,16 @@
.. _plugin-lart:
The Lart plugin
===============
.. command-lart:
lart [<channel>] [<id>] <who|what> [for <reason>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Uses the Luser Attitude Readjustment Tool on *<who|what>* (for *<reason>*,
if given). If *<id>* is given, uses that specific lart. *<channel>* is
only necessary if the message isn't sent in the channel itself.

40
use/plugins/later.rst Normal file
View File

@ -0,0 +1,40 @@
.. _plugin-later:
The Later plugin
================
.. command-die:
die
^^^^
.. command-notes:
notes [<nick>]
^^^^^^^^^^^^^^
If *<nick>* is given, replies with what notes are waiting on *<nick>*,
otherwise, replies with the nicks that have notes waiting for them.
.. command-remove:
remove <nick>
^^^^^^^^^^^^^
Removes the notes waiting on *<nick>*.
.. command-tell:
tell <nick> <text>
^^^^^^^^^^^^^^^^^^
Tells *<nick>* *<text>* the next time *<nick>* is in seen. *<nick>* can
contain wildcard characters, and the first matching nick will be
given the note.

6
use/plugins/limiter.rst Normal file
View File

@ -0,0 +1,6 @@
.. _plugin-limiter:
The Limiter plugin
==================

64
use/plugins/math.rst Normal file
View File

@ -0,0 +1,64 @@
.. _plugin-math:
The Math plugin
===============
.. command-base:
base <fromBase> [<toBase>] <number>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Converts *<number>* from base *<fromBase>* to base *<toBase>*.
If *<toBase>* is left out, it converts to decimal.
.. command-rpn:
rpn <rpn math expression>
^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the value of an RPN expression.
.. command-convert:
convert [<number>] <unit> to <other unit>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Converts from *<unit>* to *<other unit>*. If number isn't given, it
defaults to 1. For unit information, see 'units' command.
.. command-icalc:
icalc <math expression>
^^^^^^^^^^^^^^^^^^^^^^^
This is the same as the calc command except that it allows integer
math, and can thus cause the bot to suck up CPU. Hence it requires
the 'trusted' capability to use.
.. command-units:
units [<type>]
^^^^^^^^^^^^^^
With no arguments, returns a list of measurement types, which can be
passed as arguments. When called with a type as an argument, returns
the units of that type.
.. command-calc:
calc <math expression>
^^^^^^^^^^^^^^^^^^^^^^
Returns the value of the evaluated *<math expression>*. The syntax is
Python syntax; the type of arithmetic is floating point. Floating
point arithmetic is used in order to prevent a user from being able to
crash to the bot with something like '10**10**10**10'. One consequence
is that large values such as '10**24' might not be exact.

View File

@ -0,0 +1,103 @@
.. _plugin-messageparser:
The MessageParser plugin
========================
.. command-show:
show [<channel>] [--id] <regexp>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Looks up the value of *<regexp>* in the triggers database.
*<channel>* is only necessary if the message isn't sent in the channel
itself.
If option *--id* specified, will retrieve by regexp id, not content.
.. command-lock:
lock [<channel>] <regexp>
^^^^^^^^^^^^^^^^^^^^^^^^^
Locks the *<regexp>* so that it cannot be
removed or overwritten to. *<channel>* is only necessary if the message isn't
sent in the channel itself.
.. command-rank:
rank [<channel>]
^^^^^^^^^^^^^^^^
Returns a list of top-ranked regexps, sorted by usage count
(rank). The number of regexps returned is set by the
rankListLength registry value. *<channel>* is only necessary if the
message isn't sent in the channel itself.
.. command-unlock:
unlock [<channel>] <regexp>
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Unlocks the entry associated with *<regexp>* so that it can be
removed or overwritten. *<channel>* is only necessary if the message isn't
sent in the channel itself.
.. command-vacuum:
vacuum [<channel>]
^^^^^^^^^^^^^^^^^^
Vacuums the database for *<channel>*.
See SQLite vacuum doc here: http://www.sqlite.org/lang_vacuum.html
*<channel>* is only necessary if the message isn't sent in
the channel itself.
First check if user has the required capability specified in plugin
config requireVacuumCapability.
.. command-info:
info [<channel>] [--id] <regexp>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Display information about *<regexp>* in the triggers database.
*<channel>* is only necessary if the message isn't sent in the channel
itself.
If option *--id* specified, will retrieve by regexp id, not content.
.. command-list:
list [<channel>]
^^^^^^^^^^^^^^^^
Lists regexps present in the triggers database.
*<channel>* is only necessary if the message isn't sent in the channel
itself. Regexp ID listed in paretheses.
.. command-remove:
remove [<channel>] [--id] <regexp>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Removes the trigger for *<regexp>* from the triggers database.
*<channel>* is only necessary if
the message isn't sent in the channel itself.
If option *--id* specified, will retrieve by regexp id, not content.
.. command-add:
add [<channel>] <regexp> <action>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Associates *<regexp>* with *<action>*. *<channel>* is only
necessary if the message isn't sent on the channel
itself. Action is echoed upon regexp match, with variables $1, $2,
etc. being interpolated from the regexp match groups.

92
use/plugins/misc.rst Normal file
View File

@ -0,0 +1,92 @@
.. _plugin-misc:
The Misc plugin
===============
.. command-last:
last [--{from,in,on,with,without,regexp} <value>] [--nolimit]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the last message matching the given criteria. *--from* requires
a nick from whom the message came; *--in* requires a channel the message
was sent to; *--on* requires a network the message was sent on; *--with
requires* some string that had to be in the message; *--regexp* requires
a regular expression the message must match; *--nolimit* returns all
the messages that can be found. By default, the channel this command is
given in is searched.
.. command-help:
help [<plugin>] [<command>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^
This command gives a useful description of what *<command>* does.
*<plugin>* is only necessary if the command is in more than one plugin.
.. command-list:
list [--private] [<plugin>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Lists the commands available in the given plugin. If no plugin is
given, lists the public plugins available. If *--private* is given,
lists the private plugins.
.. command-ping:
ping
^^^^
Checks to see if the bot is alive.
.. command-source:
source
^^^^^^
Returns a URL saying where to get Supybot.
.. command-version:
version
^^^^^^^
Returns the version of the current bot.
.. command-apropos:
apropos <string>
^^^^^^^^^^^^^^^^
Searches for *<string>* in the commands currently offered by the bot,
returning a list of the commands containing that string.
.. command-tell:
tell <nick> <text>
^^^^^^^^^^^^^^^^^^
Tells the *<nick>* whatever *<text>* is. Use nested commands to your
benefit here.
.. command-more:
more [<nick>]
^^^^^^^^^^^^^
If the last command was truncated due to IRC message length
limitations, returns the next chunk of the result of the last command.
If *<nick>* is given, it takes the continuation of the last command from
*<nick>* instead of the person sending this message.

View File

@ -0,0 +1,122 @@
.. _plugin-moobotfactoids:
The MoobotFactoids plugin
=========================
.. command-lock:
lock [<channel>] <factoid key>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Locks the factoid with the given factoid key. Requires that the user
be registered and have created the factoid originally. *<channel>* is
only necessary if the message isn't sent in the channel itself.
.. command-listauth:
listauth [<channel>] <author name>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Lists the keys of the factoids with the given author. Note that if an
author has an integer name, you'll have to use that author's id to use
this function (so don't use integer usernames!). *<channel>* is only
necessary if the message isn't sent in the channel itself.
.. command-random:
random [<channel>]
^^^^^^^^^^^^^^^^^^
Displays a random factoid (along with its key) from the database.
*<channel>* is only necessary if the message isn't sent in the channel
itself.
.. command-unlock:
unlock [<channel>] <factoid key>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Unlocks the factoid with the given factoid key. Requires that the
user be registered and have locked the factoid. *<channel>* is only
necessary if the message isn't sent in the channel itself.
.. command-literal:
literal [<channel>] <factoid key>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the literal factoid for the given factoid key. No parsing of
the factoid value is done as it is with normal retrieval. *<channel>*
is only necessary if the message isn't sent in the channel itself.
.. command-listvalues:
listvalues [<channel>] <text>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Lists the keys of the factoids whose value contains the provided text.
*<channel>* is only necessary if the message isn't sent in the channel
itself.
.. command-reset:
reset
^^^^^^
.. command-factinfo:
factinfo [<channel>] <factoid key>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the various bits of info on the factoid for the given key.
*<channel>* is only necessary if the message isn't sent in the channel
itself.
.. command-most:
most [<channel>] {popular|authored|recent}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Lists the most {popular|authored|recent} factoids. "popular" lists the
most frequently requested factoids. "authored" lists the author with
the most factoids. "recent" lists the most recently created factoids.
*<channel>* is only necessary if the message isn't sent in the channel
itself.
.. command-die:
die
^^^^
.. command-remove:
remove [<channel>] <factoid key>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Deletes the factoid with the given key. *<channel>* is only necessary
if the message isn't sent in the channel itself.
.. command-listkeys:
listkeys [<channel>] <text>
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Lists the keys of the factoids whose key contains the provided text.
*<channel>* is only necessary if the message isn't sent in the channel
itself.

87
use/plugins/network.rst Normal file
View File

@ -0,0 +1,87 @@
.. _plugin-network:
The Network plugin
==================
.. command-driver:
driver [<network>]
^^^^^^^^^^^^^^^^^^
Returns the current network driver for *<network>*. *<network>* is only
necessary if the message isn't sent on the network to which this
command is to apply.
.. command-connect:
connect [--ssl] <network> [<host[:port]>] [<password>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Connects to another network (which will be represented by the name
provided in *<network>*) at *<host:port>*. If port is not provided, it
defaults to 6667, the default port for IRC. If password is
provided, it will be sent to the server in a PASS command. If *--ssl* is
provided, an SSL connection will be attempted.
.. command-reconnect:
reconnect [<network>] [<quit message>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Disconnects and then reconnects to *<network>*. If no network is given,
disconnects and then reconnects to the network the command was given
on. If no quit message is given, uses the configured one
(supybot.plugins.Owner.quitMsg) or the nick of the person giving the
command.
.. command-networks:
networks
^^^^^^^^
Returns the networks to which the bot is currently connected.
.. command-latency:
latency [<network>]
^^^^^^^^^^^^^^^^^^^
Returns the current latency to *<network>*. *<network>* is only necessary
if the message isn't sent on the network to which this command is to
apply.
.. command-disconnect:
disconnect [<network>] [<quit message>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Disconnects from the network represented by the network *<network>*.
If *<quit message>* is given, quits the network with the given quit
message. *<network>* is only necessary if the network is different
from the network the command is sent on.
.. command-whois:
whois [<network>] <nick>
^^^^^^^^^^^^^^^^^^^^^^^^
Returns the WHOIS response *<network>* gives for *<nick>*. *<network>* is
only necessary if the network is different than the network the command
is sent on.
.. command-command:
command <network> <command> [<arg> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Gives the bot *<command>* (with its associated *<arg>*s) on *<network>*.

65
use/plugins/news.rst Normal file
View File

@ -0,0 +1,65 @@
.. _plugin-news:
The News plugin
===============
.. command-old:
old [<channel>] [<id>]
^^^^^^^^^^^^^^^^^^^^^^
Returns the old news item for *<channel>* with *<id>*. If no number is
given, returns all the old news items in reverse order. *<channel>* is
only necessary if the message isn't sent in the channel itself.
.. command-die:
die
^^^^
.. command-remove:
remove [<channel>] <id>
^^^^^^^^^^^^^^^^^^^^^^^
Removes the news item with *<id>* from *<channel>*. *<channel>* is only
necessary if the message isn't sent in the channel itself.
.. command-add:
add [<channel>] <expires> <subject>: <text>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Adds a given news item of *<text>* to a channel with the given *<subject>*.
If *<expires>* isn't 0, that news item will expire *<expires>* seconds from
now. *<channel>* is only necessary if the message isn't sent in the
channel itself.
.. command-news:
news [<channel>] [<id>]
^^^^^^^^^^^^^^^^^^^^^^^
Display the news items for *<channel>* in the format of '(#id) subject'.
If *<id>* is given, retrieve only that news item; otherwise retrieve all
news items. *<channel>* is only necessary if the message isn't sent in
the channel itself.
.. command-change:
change [<channel>] <id> <regexp>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changes the news item with *<id>* from *<channel>* according to the
regular expression *<regexp>*. *<regexp>* should be of the form
s/text/replacement/flags. *<channel>* is only necessary if the message
isn't sent on the channel itself.

View File

@ -0,0 +1,6 @@
.. _plugin-nickcapture:
The NickCapture plugin
======================

View File

@ -0,0 +1,22 @@
.. _plugin-nickometer:
The Nickometer plugin
=====================
.. command-punish:
punish
^^^^^^^
.. command-nickometer:
nickometer [<nick>]
^^^^^^^^^^^^^^^^^^^
Tells you how lame said nick is. If *<nick>* is not given, uses the
nick of the person giving the command.

77
use/plugins/note.rst Normal file
View File

@ -0,0 +1,77 @@
.. _plugin-note:
The Note plugin
===============
.. command-unsend:
unsend <id>
^^^^^^^^^^^
Unsends the note with the id given. You must be the
author of the note, and it must be unread.
.. command-search:
search [--{regexp} <value>] [--sent] [<glob>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Searches your received notes for ones matching *<glob>*. If *--regexp* is
given, its associated value is taken as a regexp and matched against
the notes. If *--sent* is specified, only search sent notes.
.. command-reply:
reply <id> <text>
^^^^^^^^^^^^^^^^^
Sends a note in reply to *<id>*.
.. command-die:
die
^^^^
.. command-list:
list [--{old,sent}] [--{from,to} <user>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Retrieves the ids of all your unread notes. If *--old* is given, list
read notes. If *--sent* is given, list notes that you have sent. If
*--from* is specified, only lists notes sent to you from *<user>*. If
*--to* is specified, only lists notes sent by you to *<user>*.
.. command-send:
send <recipient>,[<recipient>,[...]] <text>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sends a new note to the user specified. Multiple recipients may be
specified by separating their names by commas.
.. command-next:
next
^^^^
Retrieves your next unread note, if any.
.. command-note:
note <id>
^^^^^^^^^
Retrieves a single note by its unique note id. Use the 'note list'
command to see what unread notes you have.

166
use/plugins/owner.rst Normal file
View File

@ -0,0 +1,166 @@
.. _plugin-owner:
The Owner plugin
================
.. command-load:
load [--deprecated] <plugin>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Loads the plugin *<plugin>* from any of the directories in
conf.supybot.directories.plugins; usually this includes the main
installed directory and 'plugins' in the current directory.
*--deprecated* is necessary if you wish to load deprecated plugins.
.. command-rename:
rename <plugin> <command> <new name>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Renames *<command>* in *<plugin>* to the *<new name>*.
.. command-enable:
enable [<plugin>] <command>
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Enables the command *<command>* for all users. If *<plugin>*
if given, only enables the *<command>* from *<plugin>*. This command is
the inverse of disable.
.. command-defaultcapability:
defaultcapability {add|remove} <capability>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Adds or removes (according to the first argument) *<capability>* from the
default capabilities given to users (the configuration variable
supybot.capabilities stores these).
.. command-reloadlocale:
reloadlocale takes no argument
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Reloads the locale of the bot.
.. command-ircquote:
ircquote <string to be sent to the server>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sends the raw string given to the server.
.. command-disable:
disable [<plugin>] <command>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Disables the command *<command>* for all users (including the owners).
If *<plugin>* is given, only disables the *<command>* from *<plugin>*. If
you want to disable a command for most users but not for yourself, set
a default capability of -plugin.command or -command (if you want to
disable the command in all plugins).
.. command-upkeep:
upkeep [<level>]
^^^^^^^^^^^^^^^^
Runs the standard upkeep stuff (flushes and gc.collects()). If given
a level, runs that level of upkeep (currently, the only supported
level is "high", which causes the bot to flush a lot of caches as well
as do normal upkeep stuff.
.. command-flush:
flush
^^^^^
Runs all the periodic flushers in world.flushers. This includes
flushing all logs and all configuration changes to disk.
.. command-unrename:
unrename <plugin>
^^^^^^^^^^^^^^^^^
Removes all renames in *<plugin>*. The plugin will be reloaded after
this command is run.
.. command-reset:
reset
^^^^^^
.. command-quit:
quit [<text>]
^^^^^^^^^^^^^
Exits the bot with the QUIT message *<text>*. If *<text>* is not given,
the default quit message (supybot.plugins.Owner.quitMsg) will be used.
If there is no default quitMsg set, your nick will be used.
.. command-unload:
unload <plugin>
^^^^^^^^^^^^^^^
Unloads the callback by name; use the 'list' command to see a list
of the currently loaded callbacks. Obviously, the Owner plugin can't
be unloaded.
.. command-reload:
reload <plugin>
^^^^^^^^^^^^^^^
Unloads and subsequently reloads the plugin by name; use the 'list'
command to see a list of the currently loaded plugins.
.. command-announce:
announce <text>
^^^^^^^^^^^^^^^
Sends *<text>* to all channels the bot is currently on and not
lobotomized in.
.. command-defaultplugin:
defaultplugin [--remove] <command> [<plugin>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sets the default plugin for *<command>* to *<plugin>*. If *--remove* is
given, removes the current default plugin for *<command>*. If no plugin
is given, returns the current default plugin set for *<command>*. See
also, supybot.commands.defaultPlugins.importantPlugins.
.. command-logmark:
logmark <text>
^^^^^^^^^^^^^^
Logs *<text>* to the global Supybot log at critical priority. Useful for
marking logfiles for later searching.

62
use/plugins/plugin.rst Normal file
View File

@ -0,0 +1,62 @@
.. _plugin-plugin:
The Plugin plugin
=================
.. command-help:
help <plugin>
^^^^^^^^^^^^^
Returns a useful description of how to use *<plugin>*, if the plugin has
one.
.. command-contributors:
contributors <plugin> [<nick>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Replies with a list of people who made contributions to a given plugin.
If *<nick>* is specified, that person's specific contributions will
be listed. Note: The *<nick>* is the part inside of the parentheses
in the people listing.
.. command-plugin:
plugin <command>
^^^^^^^^^^^^^^^^
Returns the name of the plugin that would be used to call *<command>*.
If it is not uniquely determined, returns list of all plugins that
contain *<command>*.
.. command-author:
author <plugin>
^^^^^^^^^^^^^^^
Returns the author of *<plugin>*. This is the person you should talk to
if you have ideas, suggestions, or other comments about a given plugin.
.. command-list:
list
^^^^
Returns a list of the currently loaded plugins.
.. command-plugins:
plugins <command>
^^^^^^^^^^^^^^^^^
Returns the names of all plugins that contain *<command>*.

View File

@ -0,0 +1,22 @@
.. _plugin-plugindownloader:
The PluginDownloader plugin
===========================
.. command-install:
install <repository> <plugin>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Downloads and installs the *<plugin>* from the *<repository>*.
.. command-repolist:
repolist [<repository>]
^^^^^^^^^^^^^^^^^^^^^^^
Displays the list of plugins in the *<repository>*.
If *<repository>* is not given, returns a list of available
repositories.

16
use/plugins/praise.rst Normal file
View File

@ -0,0 +1,16 @@
.. _plugin-praise:
The Praise plugin
=================
.. command-praise:
praise [<channel>] [<id>] <who|what> [for <reason>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Praises *<who|what>* (for *<reason>*, if given). If *<id>* is given, uses
that specific praise. *<channel>* is only necessary if the message isn't
sent in the channel itself.

13
use/plugins/protector.rst Normal file
View File

@ -0,0 +1,13 @@
.. _plugin-protector:
The Protector plugin
====================
.. command-demote:
demote
^^^^^^^

15
use/plugins/quote.rst Normal file
View File

@ -0,0 +1,15 @@
.. _plugin-quote:
The Quote plugin
================
.. command-random:
random [<channel>]
^^^^^^^^^^^^^^^^^^
Returns a random quote from *<channel>*. *<channel>* is only necessary if
the message isn't sent in the channel itself.

View File

@ -0,0 +1,74 @@
.. _plugin-quotegrabs:
The QuoteGrabs plugin
=====================
.. command-ungrab:
ungrab [<channel>] <number>
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Removes the grab *<number>* (the last by default) on *<channel>*.
*<channel>* is only necessary if the message isn't sent in the channel
itself.
.. command-get:
get [<channel>] <id>
^^^^^^^^^^^^^^^^^^^^
Return the quotegrab with the given *<id>*. *<channel>* is only necessary
if the message isn't sent in the channel itself.
.. command-quote:
quote [<channel>] <nick>
^^^^^^^^^^^^^^^^^^^^^^^^
Returns *<nick>*'s latest quote grab in *<channel>*. *<channel>* is only
necessary if the message isn't sent in the channel itself.
.. command-random:
random [<channel>] [<nick>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns a randomly grabbed quote, optionally choosing only from those
quotes grabbed for *<nick>*. *<channel>* is only necessary if the message
isn't sent in the channel itself.
.. command-list:
list [<channel>] <nick>
^^^^^^^^^^^^^^^^^^^^^^^
Returns a list of shortened quotes that have been grabbed for *<nick>*
as well as the id of each quote. These ids can be used to get the
full quote. *<channel>* is only necessary if the message isn't sent in
the channel itself.
.. command-search:
search [<channel>] <text>
^^^^^^^^^^^^^^^^^^^^^^^^^
Searches for *<text>* in a quote. *<channel>* is only necessary if the
message isn't sent in the channel itself.
.. command-grab:
grab [<channel>] <nick>
^^^^^^^^^^^^^^^^^^^^^^^
Grabs a quote from *<channel>* by *<nick>* for the quotegrabs table.
*<channel>* is only necessary if the message isn't sent in the channel
itself.

39
use/plugins/relay.rst Normal file
View File

@ -0,0 +1,39 @@
.. _plugin-relay:
The Relay plugin
================
.. command-nicks:
nicks [<channel>]
^^^^^^^^^^^^^^^^^
Returns the nicks of the people in the channel on the various networks
the bot is connected to. *<channel>* is only necessary if the message
isn't sent on the channel itself.
.. command-part:
part <channel>
^^^^^^^^^^^^^^
Ceases relaying between the channel *<channel>* on all networks. The bot
will part from the channel on all networks in which it is on the
channel.
.. command-join:
join [<channel>]
^^^^^^^^^^^^^^^^
Starts relaying between the channel *<channel>* on all networks. If on a
network the bot isn't in *<channel>*, he'll join. This commands is
required even if the bot is in the channel on both networks; he won't
relay between those channels unless he's told to join both
channels. If *<channel>* is not given, starts relaying on the channel
the message was sent in.

50
use/plugins/reply.rst Normal file
View File

@ -0,0 +1,50 @@
.. _plugin-reply:
The Reply plugin
================
.. command-notice:
notice <text>
^^^^^^^^^^^^^
Replies with *<text>* in a notice. Use nested commands to your benefit
here. If you want a private notice, nest the private command.
.. command-private:
private <text>
^^^^^^^^^^^^^^
Replies with *<text>* in private. Use nested commands to your benefit
here.
.. command-replies:
replies <str> [<str> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^
Replies with each of its arguments *<str>* in separate replies, depending
the configuration of supybot.reply.oneToOne.
.. command-action:
action <text>
^^^^^^^^^^^^^
Replies with *<text>* as an action. use nested commands to your benefit
here.
.. command-reply:
reply <text>
^^^^^^^^^^^^
Replies with *<text>*. Equivalent to the alias, 'echo $nick: $1'.

73
use/plugins/rss.rst Normal file
View File

@ -0,0 +1,73 @@
.. _plugin-rss:
The RSS plugin
==============
.. command-info:
info <url|feed>
^^^^^^^^^^^^^^^
Returns information from the given RSS feed, namely the title,
URL, description, and last update date, if available.
.. command-remove:
remove <name>
^^^^^^^^^^^^^
Removes the command for looking up RSS feeds at *<name>* from
this plugin.
.. command-add:
add <name> <url>
^^^^^^^^^^^^^^^^
Adds a command to this plugin that will look up the RSS feed at the
given URL.
.. command-announce-list:
announce list [<channel>]
^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the list of feeds announced in *<channel>*. *<channel>* is
only necessary if the message isn't sent in the channel itself.
.. command-announce-remove:
announce remove [<channel>] <name|url> [<name|url> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Removes the list of feeds from the current list of announced feeds
in *<channel>*. Valid feeds include the names of registered feeds as
well as URLs for RSS feeds. *<channel>* is only necessary if the
message isn't sent in the channel itself.
.. command-announce-add:
announce add [<channel>] <name|url> [<name|url> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Adds the list of feeds to the current list of announced feeds in
*<channel>*. Valid feeds include the names of registered feeds as
well as URLs for RSS feeds. *<channel>* is only necessary if the
message isn't sent in the channel itself.
.. command-rss:
rss <url> [<number of headlines>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Gets the title components of the given RSS feed.
If *<number of headlines>* is given, return only that many headlines.

52
use/plugins/scheduler.rst Normal file
View File

@ -0,0 +1,52 @@
.. _plugin-scheduler:
The Scheduler plugin
====================
.. command-repeat:
repeat <name> <seconds> <command>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Schedules the command *<command>* to run every *<seconds>* seconds,
starting now (i.e., the command runs now, and every *<seconds>* seconds
thereafter). *<name>* is a name by which the command can be
unscheduled.
.. command-die:
die
^^^^
.. command-list:
list
^^^^
Lists the currently scheduled events.
.. command-add:
add <seconds> <command>
^^^^^^^^^^^^^^^^^^^^^^^
Schedules the command string *<command>* to run *<seconds>* seconds in the
future. For example, 'scheduler add [seconds 30m] "echo [cpu]"' will
schedule the command "cpu" to be sent to the channel the schedule add
command was given in (with no prefixed nick, a consequence of using
echo). Do pay attention to the quotes in that example.
.. command-remove:
remove <id>
^^^^^^^^^^^
Removes the event scheduled with id *<id>* from the schedule.

65
use/plugins/seen.rst Normal file
View File

@ -0,0 +1,65 @@
.. _plugin-seen:
The Seen plugin
===============
.. command-user:
user [<channel>] <name>
^^^^^^^^^^^^^^^^^^^^^^^
Returns the last time *<name>* was seen and what *<name>* was last seen
saying. This looks up *<name>* in the user seen database, which means
that it could be any nick recognized as user *<name>* that was seen.
*<channel>* is only necessary if the message isn't sent in the channel
itself.
.. command-seen:
seen [<channel>] <nick>
^^^^^^^^^^^^^^^^^^^^^^^
Returns the last time *<nick>* was seen and what *<nick>* was last seen
saying. *<channel>* is only necessary if the message isn't sent on the
channel itself. *<nick>* may contain * as a wildcard.
.. command-any:
any [<channel>] [--user <name>] [<nick>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the last time *<nick>* was seen and what *<nick>* was last seen
doing. This includes any form of activity, instead of just PRIVMSGs.
If *<nick>* isn't specified, returns the last activity seen in
*<channel>*. If *--user* is specified, looks up name in the user database
and returns the last time user was active in *<channel>*. *<channel>* is
only necessary if the message isn't sent on the channel itself.
.. command-last:
last [<channel>]
^^^^^^^^^^^^^^^^
Returns the last thing said in *<channel>*. *<channel>* is only necessary
if the message isn't sent in the channel itself.
.. command-die:
die
^^^^
.. command-since:
since [<channel>] <nick>
^^^^^^^^^^^^^^^^^^^^^^^^
Returns the messages since *<nick>* last left the channel.

95
use/plugins/services.rst Normal file
View File

@ -0,0 +1,95 @@
.. _plugin-services:
The Services plugin
===================
.. command-disabled:
disabled
^^^^^^^^^
.. command-identify:
identify
^^^^^^^^
Identifies with NickServ using the current nick.
.. command-nicks:
nicks
^^^^^
Returns the nicks that this plugin is configured to identify and ghost
with.
.. command-unban:
unban [<channel>]
^^^^^^^^^^^^^^^^^
Attempts to get unbanned by ChanServ in *<channel>*. *<channel>* is only
necessary if the message isn't sent in the channel itself, but chances
are, if you need this command, you're not sending it in the channel
itself.
.. command-reset:
reset
^^^^^^
.. command-invite:
invite [<channel>]
^^^^^^^^^^^^^^^^^^
Attempts to get invited by ChanServ to *<channel>*. *<channel>* is only
necessary if the message isn't sent in the channel itself, but chances
are, if you need this command, you're not sending it in the channel
itself.
.. command-password:
password <nick> [<password>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sets the NickServ password for *<nick>* to *<password>*. If *<password>* is
not given, removes *<nick>* from the configured nicks.
.. command-ghost:
ghost [<nick>]
^^^^^^^^^^^^^^
Ghosts the bot's given nick and takes it. If no nick is given,
ghosts the bot's configured nick and takes it.
.. command-voice:
voice [<channel>]
^^^^^^^^^^^^^^^^^
Attempts to get voiced by ChanServ in *<channel>*. *<channel>* is only
necessary if the message isn't sent in the channel itself.
.. command-op:
op [<channel>]
^^^^^^^^^^^^^^
Attempts to get opped by ChanServ in *<channel>*. *<channel>* is only
necessary if the message isn't sent in the channel itself.

37
use/plugins/shrinkurl.rst Normal file
View File

@ -0,0 +1,37 @@
.. _plugin-shrinkurl:
The ShrinkUrl plugin
====================
.. command-xrl:
xrl <url>
^^^^^^^^^
Returns an xrl.us version of *<url>*.
.. command-die:
die
^^^^
.. command-tiny:
tiny <url>
^^^^^^^^^^
Returns a TinyURL.com version of *<url>*
.. command-ln:
ln <url>
^^^^^^^^
Returns an ln-s.net version of *<url>*.

70
use/plugins/status.rst Normal file
View File

@ -0,0 +1,70 @@
.. _plugin-status:
The Status plugin
=================
.. command-status:
status
^^^^^^
Returns the status of the bot.
.. command-cmd:
cmd
^^^
Returns some interesting command-related statistics.
.. command-commands:
commands
^^^^^^^^
Returns a list of the commands offered by the bot.
.. command-uptime:
uptime
^^^^^^
Returns the amount of time the bot has been running.
.. command-threads:
threads
^^^^^^^
Returns the current threads that are active.
.. command-net:
net
^^^
Returns some interesting network-related statistics.
.. command-server:
server
^^^^^^
Returns the server the bot is on.
.. command-cpu:
cpu
^^^
Returns some interesting CPU-related statistics on the bot.

100
use/plugins/string.rst Normal file
View File

@ -0,0 +1,100 @@
.. _plugin-string:
The String plugin
=================
.. command-soundex:
soundex <string> [<length>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the Soundex hash to a given length. The length defaults to
4, since that's the standard length for a soundex hash. For unlimited
length, use 0.
.. command-xor:
xor <password> <text>
^^^^^^^^^^^^^^^^^^^^^
Returns *<text>* XOR-encrypted with *<password>*. See
http://www.yoe.org/developer/xor.html for information about XOR
encryption.
.. command-re:
re <regexp> <text>
^^^^^^^^^^^^^^^^^^
If *<regexp>* is of the form m/regexp/flags, returns the portion of
*<text>* that matches the regexp. If *<regexp>* is of the form
s/regexp/replacement/flags, returns the result of applying such a
regexp to *<text>*.
.. command-levenshtein:
levenshtein <string1> <string2>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the levenshtein distance (also known as the "edit distance"
between *<string1>* and *<string2>*)
.. command-decode:
decode <encoding> <text>
^^^^^^^^^^^^^^^^^^^^^^^^
Returns an un-encoded form of the given text; the valid encodings are
available in the documentation of the Python codecs module:
*<http://docs.python.org/library/codecs.html#standard-encodings>*.
.. command-sha:
sha <text>
^^^^^^^^^^
Returns the SHA hash of a given string. Read
http://www.secure-hash-algorithm-md5-sha-1.co.uk/ for more information
about SHA.
.. command-chr:
chr <number>
^^^^^^^^^^^^
Returns the character associated with the 8-bit value *<number>*
.. command-len:
len <text>
^^^^^^^^^^
Returns the length of *<text>*.
.. command-encode:
encode <encoding> <text>
^^^^^^^^^^^^^^^^^^^^^^^^
Returns an encoded form of the given text; the valid encodings are
available in the documentation of the Python codecs module:
*<http://docs.python.org/library/codecs.html#standard-encodings>*.
.. command-ord:
ord <letter>
^^^^^^^^^^^^
Returns the 8-bit value of *<letter>*.

13
use/plugins/success.rst Normal file
View File

@ -0,0 +1,13 @@
.. _plugin-success:
The Success plugin
==================
.. command-die:
die
^^^^

71
use/plugins/time.rst Normal file
View File

@ -0,0 +1,71 @@
.. _plugin-time:
The Time plugin
===============
.. command-ctime:
ctime [<seconds since epoch>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the ctime for *<seconds since epoch>*, or the current ctime if
no *<seconds since epoch>* is given.
.. command-seconds:
seconds [<years>y] [<weeks>w] [<days>d] [<hours>h] [<minutes>m] [<seconds>s]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the number of seconds in the number of *<years>*, *<weeks>*,
*<days>*, *<hours>*, *<minutes>*, and *<seconds>* given. An example usage is
"seconds 2h 30m", which would return 9000, which is '3600*2 + 30*60'.
Useful for scheduling events at a given number of seconds in the
future.
.. command-time:
time [<format>] [<seconds since epoch>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the current time in *<format>* format, or, if *<format>* is not
given, uses the configurable format for the current channel. If no
*<seconds since epoch>* time is given, the current time is used.
.. command-elapsed:
elapsed <seconds>
^^^^^^^^^^^^^^^^^
Returns a pretty string that is the amount of time represented by
*<seconds>*.
.. command-at:
at <time string>
^^^^^^^^^^^^^^^^
Returns the number of seconds since epoch *<time string>* is.
*<time string>* can be any number of natural formats; just try something
and see if it will work.
.. command-tztime:
tztime <region>/<city>
^^^^^^^^^^^^^^^^^^^^^^
Takes a city and its region, and returns the locale time.
.. command-until:
until <time string>
^^^^^^^^^^^^^^^^^^^
Returns the number of seconds until *<time string>*.

67
use/plugins/todo.rst Normal file
View File

@ -0,0 +1,67 @@
.. _plugin-todo:
The Todo plugin
===============
.. command-die:
die
^^^^
.. command-search:
search [--{regexp} <value>] [<glob> <glob> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Searches your todos for tasks matching *<glob>*. If *--regexp* is given,
its associated value is taken as a regexp and matched against the
tasks.
.. command-remove:
remove <task id> [<task id> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Removes *<task id>* from your personal todo list.
.. command-add:
add [--priority=<num>] <text>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Adds *<text>* as a task in your own personal todo list. The optional
priority argument allows you to set a task as a high or low priority.
Any integer is valid.
.. command-setpriority:
setpriority <id> <priority>
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sets the priority of the todo with the given id to the specified value.
.. command-todo:
todo [<username>] [<task id>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Retrieves a task for the given task id. If no task id is given, it
will return a list of task ids that that user has added to their todo
list.
.. command-change:
change <task id> <regexp>
^^^^^^^^^^^^^^^^^^^^^^^^^
Modify the task with the given id using the supplied regexp.

208
use/plugins/topic.rst Normal file
View File

@ -0,0 +1,208 @@
.. _plugin-topic:
The Topic plugin
================
.. command-restore:
restore [<channel>]
^^^^^^^^^^^^^^^^^^^
Restores the topic to the last topic set by the bot. *<channel>* is only
necessary if the message isn't sent in the channel itself.
.. command-set:
set [<channel>] [<number>] <topic>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sets the topic *<number>* to be *<text>*. If no *<number>* is given, this
sets the entire topic. *<channel>* is only necessary if the message
isn't sent in the channel itself.
.. command-shuffle:
shuffle [<channel>]
^^^^^^^^^^^^^^^^^^^
Shuffles the topics in *<channel>*. *<channel>* is only necessary if the
message isn't sent in the channel itself.
.. command-lock:
lock [<channel>]
^^^^^^^^^^^^^^^^
Locks the topic (sets the mode +t) in *<channel>*. *<channel>* is only
necessary if the message isn't sent in the channel itself.
.. command-replace:
replace [<channel>] <number> <topic>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Replaces topic *<number>* with *<topic>*.
.. command-topic:
topic [<channel>]
^^^^^^^^^^^^^^^^^
Returns the topic for *<channel>*. *<channel>* is only necessary if the
message isn't sent in the channel itself.
.. command-unlock:
unlock [<channel>]
^^^^^^^^^^^^^^^^^^
Unlocks the topic (sets the mode +t) in *<channel>*. *<channel>* is only
necessary if the message isn't sent in the channel itself.
.. command-redo:
redo [<channel>]
^^^^^^^^^^^^^^^^
Undoes the last undo. *<channel>* is only necessary if the message isn't
sent in the channel itself.
.. command-fit:
fit [<channel>] <topic>
^^^^^^^^^^^^^^^^^^^^^^^
Adds *<topic>* to the topics for *<channel>*. If the topic is too long
for the server, topics will be popped until there is enough room.
*<channel>* is only necessary if the message isn't sent in the channel
itself.
.. command-swap:
swap [<channel>] <first topic number> <second topic number>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Swaps the order of the first topic number and the second topic number.
*<channel>* is only necessary if the message isn't sent in the channel
itself.
.. command-reorder:
reorder [<channel>] <number> [<number> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Reorders the topics from *<channel>* in the order of the specified
*<number>* arguments. *<number>* is a one-based index into the topics.
*<channel>* is only necessary if the message isn't sent in the channel
itself.
.. command-get:
get [<channel>] <number>
^^^^^^^^^^^^^^^^^^^^^^^^
Returns topic number *<number>* from *<channel>*. *<number>* is a one-based
index into the topics. *<channel>* is only necessary if the message
isn't sent in the channel itself.
.. command-undo:
undo [<channel>]
^^^^^^^^^^^^^^^^
Restores the topic to the one previous to the last topic command that
set it. *<channel>* is only necessary if the message isn't sent in the
channel itself.
.. command-add:
add [<channel>] <topic>
^^^^^^^^^^^^^^^^^^^^^^^
Adds *<topic>* to the topics for *<channel>*. *<channel>* is only necessary
if the message isn't sent in the channel itself.
.. command-change:
change [<channel>] <number> <regexp>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changes the topic number *<number>* on *<channel>* according to the regular
expression *<regexp>*. *<number>* is the one-based index into the topics;
*<regexp>* is a regular expression of the form
s/regexp/replacement/flags. *<channel>* is only necessary if the message
isn't sent in the channel itself.
.. command-insert:
insert [<channel>] <topic>
^^^^^^^^^^^^^^^^^^^^^^^^^^
Adds *<topic>* to the topics for *<channel>* at the beginning of the topics
currently on *<channel>*. *<channel>* is only necessary if the message
isn't sent in the channel itself.
.. command-default:
default [<channel>]
^^^^^^^^^^^^^^^^^^^
Sets the topic in *<channel>* to the default topic for *<channel>*. The
default topic for a channel may be configured via the configuration
variable supybot.plugins.Topic.default.
.. command-die:
die
^^^^
.. command-list:
list [<channel>]
^^^^^^^^^^^^^^^^
Returns a list of the topics in *<channel>*, prefixed by their indexes.
Mostly useful for topic reordering. *<channel>* is only necessary if the
message isn't sent in the channel itself.
.. command-remove:
remove [<channel>] <number>
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Removes topic *<number>* from the topic for *<channel>* Topics are
numbered starting from 1; you can also use negative indexes to refer
to topics starting the from the end of the topic. *<channel>* is only
necessary if the message isn't sent in the channel itself.
.. command-separator:
separator [<channel>] <separator>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sets the topic separator for *<channel>* to *<separator>* Converts the
current topic appropriately.

93
use/plugins/unix.rst Normal file
View File

@ -0,0 +1,93 @@
.. _plugin-unix:
The Unix plugin
===============
.. command-fortune:
fortune
^^^^^^^
Returns a fortune from the *nix fortune program.
.. command-errno:
errno <error number or code>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the number of an errno code, or the errno code of a number.
.. command-spell:
spell <word>
^^^^^^^^^^^^
Returns the result of passing *<word>* to aspell/ispell. The results
shown are sorted from best to worst in terms of being a likely match
for the spelling of *<word>*.
.. command-pid:
pid
^^^
Returns the current pid of the process for this Supybot.
.. command-call:
call <command to call with any arguments>
Calls any command available on the system, and returns its output.
Requires owner capability.
Note that being restricted to owner, this command does not do any
sanity checking on input/output. So it is up to you to make sure
you don't run anything that will spamify your channel or that
will bring your machine to its knees.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. command-wtf:
wtf [is] <something>
^^^^^^^^^^^^^^^^^^^^
Returns wtf *<something>* is. 'wtf' is a *nix command that first
appeared in NetBSD 1.5. In most *nices, it's available in some sort
of 'bsdgames' package.
.. command-crypt:
crypt <password> [<salt>]
^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the resulting of doing a crypt() on *<password>* If *<salt>* is
not given, uses a random salt. If running on a glibc2 system,
prepending '$1$' to your salt will cause crypt to return an MD5sum
based crypt rather than the standard DES based crypt.
.. command-progstats:
progstats
^^^^^^^^^
Returns various unix-y information on the running supybot process.
.. command-ping:
ping [--c <count>] [--i <interval>] [--t <ttl>] [--W <timeout>] <host or ip>
Sends an ICMP echo request to the specified host.
The arguments correspond with those listed in ping(8). --c is
limited to 10 packets or less (default is 5). --i is limited to 5
or less. --W is limited to 10 or less.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

29
use/plugins/url.rst Normal file
View File

@ -0,0 +1,29 @@
.. _plugin-url:
The URL plugin
==============
.. command-stats:
stats [<channel>]
^^^^^^^^^^^^^^^^^
Returns the number of URLs in the URL database. *<channel>* is only
required if the message isn't sent in the channel itself.
.. command-last:
last [<channel>] [--{from,with,without,near,proto} <value>] [--nolimit]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Gives the last URL matching the given criteria. *--from* is from whom
the URL came; *--proto* is the protocol the URL used; *--with* is something
inside the URL; *--without* is something that should not be in the URL;
*--near* is something in the same message as the URL; If *--nolimit* is
given, returns all the URLs that are found. to just the URL.
*<channel>* is only necessary if the message isn't sent in the channel
itself.

177
use/plugins/user.rst Normal file
View File

@ -0,0 +1,177 @@
.. _plugin-user:
The User plugin
===============
.. command-username:
username <hostmask|nick>
^^^^^^^^^^^^^^^^^^^^^^^^
Returns the username of the user specified by *<hostmask>* or *<nick>* if
the user is registered.
.. command-set-password:
set password [<name>] <old password> <new password>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sets the new password for the user specified by *<name>* to *<new
password>*. Obviously this message must be sent to the bot
privately (not in a channel). If the requesting user is an owner
user (and the user whose password is being changed isn't that same
owner user), then *<old password>* needn't be correct.
.. command-set-secure:
set secure <password> [<True|False>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sets the secure flag on the user of the person sending the message.
Requires that the person's hostmask be in the list of hostmasks for
that user in addition to the password being correct. When the
secure flag is set, the user *must* identify before he can be
recognized. If a specific True/False value is not given, it
inverts the current value.
.. command-stats:
stats
^^^^^
Returns some statistics on the user database.
.. command-hostmask-hostmask:
hostmask hostmask [<nick>]
^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the hostmask of *<nick>*. If *<nick>* isn't given, return the
hostmask of the person giving the command.
.. command-hostmask-list:
hostmask list [<name>]
^^^^^^^^^^^^^^^^^^^^^^
Returns the hostmasks of the user specified by *<name>*; if *<name>*
isn't specified, returns the hostmasks of the user calling the
command.
.. command-hostmask-add:
hostmask add [<name>] [<hostmask>] [<password>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Adds the hostmask *<hostmask>* to the user specified by *<name>*. The
*<password>* may only be required if the user is not recognized by
hostmask. *<password>* is also not required if an owner user is
giving the command on behalf of some other user. If *<hostmask>* is
not given, it defaults to your current hostmask. If *<name>* is not
given, it defaults to your currently identified name. This message
must be sent to the bot privately (not on a channel) since it may
contain a password.
.. command-hostmask-remove:
hostmask remove <name> <hostmask> [<password>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Removes the hostmask *<hostmask>* from the record of the user
specified by *<name>*. If the hostmask given is 'all' then all
hostmasks will be removed. The *<password>* may only be required if
the user is not recognized by his hostmask. This message must be
sent to the bot privately (not on a channel) since it may contain a
password.
.. command-unregister:
unregister <name> [<password>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Unregisters *<name>* from the user database. If the user giving this
command is an owner user, the password is not necessary.
.. command-register:
register <name> <password>
^^^^^^^^^^^^^^^^^^^^^^^^^^
Registers *<name>* with the given password *<password>* and the current
hostmask of the person registering. You shouldn't register twice; if
you're not recognized as a user but you've already registered, use the
hostmask add command to add another hostmask to your already-registered
user, or use the identify command to identify just for a session.
This command (and all other commands that include a password) must be
sent to the bot privately, not in a channel.
.. command-list:
list [--capability=<capability>] [<glob>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Returns the valid registered usernames matching *<glob>*. If *<glob>* is
not given, returns all registered usernames.
.. command-capabilities:
capabilities [<name>]
^^^^^^^^^^^^^^^^^^^^^
Returns the capabilities of the user specified by *<name>*; if *<name>*
isn't specified, returns the capabilities of the user calling the
command.
.. command-unidentify:
unidentify
^^^^^^^^^^
Un-identifies you. Note that this may not result in the desired
effect of causing the bot not to recognize you anymore, since you may
have added hostmasks to your user that can cause the bot to continue to
recognize you.
.. command-identify:
identify <name> <password>
^^^^^^^^^^^^^^^^^^^^^^^^^^
Identifies the user as *<name>*. This command (and all other
commands that include a password) must be sent to the bot privately,
not in a channel.
.. command-whoami:
whoami
^^^^^^
Returns the name of the user calling the command.
.. command-changename:
changename <name> <new name> [<password>]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changes your current user database name to the new name given.
*<password>* is only necessary if the user isn't recognized by hostmask.
This message must be sent to the bot privately (not on a channel) since
it may contain a password.

80
use/plugins/utilities.rst Normal file
View File

@ -0,0 +1,80 @@
.. _plugin-utilities:
The Utilities plugin
====================
.. command-ignore:
ignore requires no arguments
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Does nothing. Useful sometimes for sequencing commands when you don't
care about their non-error return values.
.. command-shuffle:
shuffle <arg> [<arg> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^
Shuffles the arguments given.
.. command-success:
success [<text>]
^^^^^^^^^^^^^^^^
Does nothing except to reply with a success message. This is useful
when you want to run multiple commands as nested commands, and don't
care about their output as long as they're successful. An error, of
course, will break out of this command. *<text>*, if given, will be
appended to the end of the success message.
.. command-echo:
echo <text>
^^^^^^^^^^^
Returns the arguments given it. Uses our standard substitute on the
string(s) given to it; $nick (or $who), $randomNick, $randomInt,
$botnick, $channel, $user, $host, $today, $now, and $randomDate are all
handled appropriately.
.. command-sample:
sample <num> <arg> [<arg> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Randomly chooses *<num>* items out of the arguments given.
.. command-countargs:
countargs <arg> [<arg> ...]
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Counts the arguments given.
.. command-last:
last <text> [<text> ...]
^^^^^^^^^^^^^^^^^^^^^^^^
Returns the last argument given. Useful when you'd like multiple
nested commands to run, but only the output of the last one to be
returned.
.. command-apply:
apply <command> <text>
^^^^^^^^^^^^^^^^^^^^^^
Tokenizes *<text>* and calls *<command>* with the resulting arguments.

76
use/plugins/web.rst Normal file
View File

@ -0,0 +1,76 @@
.. _plugin-web:
The Web plugin
==============
.. command-urlunquote:
urlunquote <text>
^^^^^^^^^^^^^^^^^
Returns the text un-URL quoted.
.. command-netcraft:
netcraft <hostname|ip>
^^^^^^^^^^^^^^^^^^^^^^
Returns Netcraft.com's determination of what operating system and
webserver is running on the host given.
.. command-urlquote:
urlquote <text>
^^^^^^^^^^^^^^^
Returns the URL quoted form of the text.
.. command-size:
size <url>
^^^^^^^^^^
Returns the Content-Length header of *<url>*. Only HTTP urls are valid,
of course.
.. command-title:
title <url>
^^^^^^^^^^^
Returns the HTML *<title>*...*</title>* of a URL.
.. command-doctype:
doctype <url>
^^^^^^^^^^^^^
Returns the DOCTYPE string of *<url>*. Only HTTP urls are valid, of
course.
.. command-headers:
headers <url>
^^^^^^^^^^^^^
Returns the HTTP headers of *<url>*. Only HTTP urls are valid, of
course.
.. command-fetch:
fetch <url>
^^^^^^^^^^^
Returns the contents of *<url>*, or as much as is configured in
supybot.plugins.Web.fetch.maximum. If that configuration variable is
set to 0, this command will be effectively disabled.