Plugins
From UbuntuBots
ubotu, ubottu and all derivatives of ubottu run supybot. In addition to the core supybot code, ubottu runs a number of plugins—some official, some custom-built.
This page is supposed to give a listing of the plugins used with ubottu, and what their purpose is.
Contents
|
Bantracker
This plugin us used to manage bans. It logs every ban/mute/kick/remove done in a channel and saves a log preceding that action, it also allows comments to be stored by operators and access to this information via a web-based interface.
Commands
| Command | Arguments | Detailed information |
|---|---|---|
| banlink | <id> [<highlight>]
| Returns a link to the raw log of the action with id <id>. If <highlight> is given then lines containing that term will be highlighted.
|
| banlog | <nick|hostmask> [<channel>]
| Shows the last 5 messages from the <nick|host> logged before an action, the nick or host has to have an active ban, mute or mark against it. If <channel> is not given, the search will include all channels.
|
| bansearch | <nick|hostmask> [<channel>]
| Search bans database for a ban or mark on <nick|hostmask>, if <channel> is not given, the search will include all channels.
|
| btlogin | Takes no arguments
| Sends you a message with a link to login to the Bantracker web interface. (Requires the Bantracker capability) |
| comment | <id> [<comment>]
| If <comment> is given, adds the comment to the action with the ID <id>; If not, then retrieve the comment(s) for the action with ID <id>. The ID for an action can be retrieved with the bansearch command.
|
| mark | [<channel>] <nick|hostmask> [<comment>]
| Creates an entry in the Bantracker as if <nick|hostmask> was kicked from <channel> with the comment <comment>, if <comment> is not given the comment will be "**MARK**". <channel> is only needed when sent in a /msg or the command is given in another channel.
|
| updatebt | [<channel>]
| Update the Bantracker database by synchronising with the <channel>s ban list, marking removed bans as removed, and adding new bans. If <channel> is not given then the synchronisation will occur in all channels.
|
| banreview | Takes no arguments
| Shows a list of operators with ban reviews in queue. |
Config
Configs can be configured with the command "@config <config name> <new value>". For the case of channel specific configs, the command is "@config channel <channel name> <config name> <new value>"
| Variable | Details | Channel Specific | Default Value |
|---|---|---|---|
| supybot.plugins.Bantracker.enabled | Enable the Bantracker | Yes | False |
| supybot.plugins.Bantracker.database | File name of the bans database | No | |
| supybot.plugins.Bantracker.bansite | Website for the Bantracker, without the "bans.cgi" appended | No | |
| supybot.plugins.Bantracker.request | Enable messages from the bot | Yes | False |
| supybot.plugins.Bantracker.request.type | List of events for which the bot should request comments | Yes | removal ban quiet |
| supybot.plugins.Bantracker.request.ignore | List of nicks for which the bot won't request a comment or review. Is case insensible and wildcards '?' and '*' are accepted | Yes | FloodBot? FloodBotK? ChanServ |
| supybot.plugins.Bantracker.request.forward | List of nicks for which the bot will forward the request to the channels/nicks defined in supybot.plugins.Bantracker.forwards.channels option. This is useful for bans set by ChanServ, were the operator that issued the command isn't known. Is case insensible and wildcards '?' and '*' are accepted | Yes | |
| supybot.plugins.Bantracker.request.forward.channels | List of channels/nicks to forward the request if the op is in the forward list | Yes | |
| supybot.plugins.Bantracker.request.reviews | Days after which the bot will request for review a ban. Can be an integer or decimal. Zero disables reviews. Allows decimal values with one hour resolution | No | 7 |
Encyclopedia
Stores and retrieves factoids. Also adds ignore/unignore capabilities to factoid editors
Using
The Encyclopedia plugin is used to store, retrieve and edit factoids; short pieces of information triggered by a specific term.
In order to add/edit/forget factoids, a user must have the editfactoids capability; to add editors, a user must have the addeditors capability.
Retrieving a factoid
<tsimpson> !factoid <ubottu> Hi! I'm #ubuntu's favorite infobot, you can search my brain yourself at http://ubottu.com/factoids.cgi - Usage info: http://wiki.ubuntu.com/UbuntuBots
Adding a factoid
<tsimpson> !foo <ubottu> Sorry, I don't know anything about foo <tsimpson> !foo is bar <ubottu> I'll remember that tsimpson <tsimpson> !foo <ubottu> foo is bar
If the format "<term> is <factoid>" is not suitable, you can use the <reply> keyword:
<tsimpson> !bar is <reply> baz <ubottu> I'll remember that tsimpson <tsimpson> !bar <ubottu> baz
Editing factoids
Editing existing factoids is done with the no keyword:
<tsimpson> !foo is <reply> bar <ubottu> But foo already means something else. <tsimpson> !no foo is <reply> bar <ubottu> I'll remember that tsimpson <tsimpson> !foo <ubottu> bar
Factoids can also be edited with the <sed> keyword, this works similarly to the sed command-line tool:
<tsimpson> !foo <ubottu> bar <tsimpson> !foo is <sed> /$/./ <ubottu> I'll remember that tsimpson <tsimpson> !foo <ubottu> bar.
Aliasing one factoid to another
You can alias a factoid to another with the <alias> keyword, this is useful when you want more than one term to refer to the same information:
<tsimpson> !foobar <ubottu> Sorry, I know nothing about foobar <tsimpson> !foobar is <alias> foo <ubottu> I'll remember that tsimpson <tsimpson> !foobar <ubottu> baz <tsimpson> !no foo is <reply> FOO! <ubottu> I'll remember that tsimpson <tsimpson> !foobar <ubottu> FOO!
When editing a factoid, always edit what the alias points to, so in the example above you edit "foo", not "foobar".
Forgetting factoids
If you want to remove a factoid you use the forget keyword:
<tsimpson> !foo <ubottu> FOO! <tsimpson> !forget foo <ubottu> I'll forget that tsimpson <tsimpson> !foo <ubottu> Sorry, I don't know anything about foo
The factoid is not deleted, just marked as forgotten. This means that attempting to add a new factoid with the same name will not work:
<tsimpson> !foo <ubottu> Sorry, I don't know anything about foo <tsimpson> !foo is <reply> bar <ubottu> But foo already means something else!
You must first unforget a factoid to edit it:
<tsimpson> !unforget foo <ubottu> I suddenly remember foo again, tsimpson <tsimpson> !no foo is <reply> bar <ubottu> I'll remember that tsimpson
Looking for Factoids
If you are looking for a specific factoid but cannot remember which one, you can search the factoid database by factoid name or fact:
!search <string>
You can also browse and search the factoids on-line Here
Sorted by:
* Most popular first * By date * Alphabetical
Variables
Ubottu also understands some variables and will substitute them when the factoid is called.
<User> !lts is <reply> LTS means Long Term Support. LTS versions of Ubuntu will be supported for 3 years on the desktop, and 5 years on the server. The current LTS version of Ubuntu is !$curLTS ($curLTSLong $curLTSNum) <Bot> I'll remember that, User <User> !lts <Bot> LTS means Long Term Support. LTS versions of Ubuntu will be supported for 3 years on the desktop, and 5 years on the server. The current LTS version of Ubuntu is !Hardy (Hardy Herron 8.04)
$chan
This variable will be replaced with the current channel the factoid is called in. E.g: #ubuntu
$curStable
This variable will be replaced with the name of the current stable version of Ubuntu. E.g: Jaunty
$curStableLong
This variable will be replaced with the long name of current stable version of Ubuntu. E.g: Jaunty Jackalope
$curStableLower
Same as $curStable, but lower-case.
$curStableNum
This variable will be replaced with the version number of the current stable version of Ubuntu. E.g: 9.04
$curLTS
This variable will be replaced with the name of the current stable version of Ubuntu. E.g: Hardy
$curLTSLong
This variable will be replaced with the long name of current stable version of Ubuntu. E.g: Hardy Heron
$curLTSLower
Same as $curLTS, but lower-case.
$curLTSNum
This variable will be replaced with the version number of the current stable version of Ubuntu. E.g: 8.04
$curDevel
This variable will be replaced with the name of the current stable version of Ubuntu. E.g: Karmic
$curDevelLong
This variable will be replaced with the long name of current stable version of Ubuntu. E.g: Karmic Koala
$curDevelLower
Same as $curDevel, but lower-case.
$curDevelNum
This variable will be replaced with the version number of the current stable version of Ubuntu. E.g: 9.10
Commands
| Command | Arguments | Detailed information |
|---|---|---|
| addeditor | <name>
| Adds the user with the name <name> to the list of editors.
|
| editors | Takes no arguments
| Lists all the users who are in the list of editors. |
| ignore | <hostmask|nick> [<expires>] [<channel>]
| Ignores commands/requests from <hostmask> or <nick>. If <expires> is given the ignore will expire after that amount of time in seconds. If <channel> is given, the ignore will only apply in that channel. <channel> defaults to the channel the command is given in, use /msg to apply ignores globally.
|
| ignorelist | <hostmask|nick> [<channel>]
| Lists all ignores set by ignore. If <channel> is given this will only list ignores set in that channel. <channel> defaults to the channel the command is given in, use /msg to list global ignores.
|
| moderators | Takes no arguments
| Lists all the users who can add users to the list of editors. |
| removeeditor | <name>
| Removes the user with the name <name> from the list of editors.
|
| sync | Takes no arguments
| Downloads a copy of the database from the remote server. Set the server with the configuration variable supybot.plugins.Encyclopedia.remotedb. |
| unignore | <hostmask|nick> [<channel>]
| Remove an ignore previously set by ignore. If <channel> was given in the original ignore command it must be given here too. <channel> defaults to the channel the command is given in, use /msg to remove an ignore globally.
|
Config
Configs can be configured with the command "@config <config name> <new value>". For the case of channel specific configs, the command is "@config channel <channel name> <config name> <new value>"
| Variable | Details | Channel Specific | Default Value |
|---|---|---|---|
| supybot.plugins.Encyclopedia.database | Name of the database to use, relative to supybot.plugins.Encyclopedia.datadir and without the .db extension | Yes | ubuntu |
| supybot.plugins.Encyclopedia.relaychannel | Relay channel for unauthorized edits and supybot.plugins.Encyclopedia.alert calls | Yes | #ubuntu-ops |
| supybot.plugins.Encyclopedia.notfoundmsg | Reply to use when a factoid isn't found. If the message contains a '%s', it will be replaced with the name of the requested factoid | No | Factoid %s is not found |
| supybot.plugins.Encyclopedia.prefixchar | Prefix character for factoid display/editing | Yes | ! |
| supybot.plugins.Encyclopedia.datadir | Path to the directory containing the factoid database(s) | No | |
| supybot.plugins.Encyclopedia.alert | factoid name(s) used for alert calls | Yes | ops op kops calltheops |
| supybot.plugins.Encyclopedia.remotedb | Remote location of the master database (used in @sync) | Yes | http://ubottu.com/ubuntu.db |
| supybot.plugins.Encyclopedia.ignores | factoid name(s) to ignore | Yes | info find |
| supybot.plugins.Encyclopedia.privateNotFound | If set to True, send the supybot.plugins.Encyclopedia.notfoundmsg in private rather than in channel | Yes | False |
| supybot.plugins.Encyclopedia.curStable | Current stable release name | No | Karmic |
| supybot.plugins.Encyclopedia.curStableLong | Current stable release long name | No | Karmic Koala |
| supybot.plugins.Encyclopedia.curStableNum | Current stable release version number | No | 9.10 |
| supybot.plugins.Encyclopedia.curDevel | Current development release name | No | Lucid |
| supybot.plugins.Encyclopedia.curDevelLong | Current development release long name | No | Lucid Lynx |
| supybot.plugins.Encyclopedia.curDevelNum | Current development release version number | No | 10.04 |
| supybot.plugins.Encyclopedia.curLTS | Current LTS release name | No | Hardy |
| supybot.plugins.Encyclopedia.curLTSLong | Current LTS release long name | No | Hardy Heron |
| supybot.plugins.Encyclopedia.curLTSNum | Current LTS release version number | No | 8.04 |
IRCLogin
This plugin is used to allow users to login without a password and automatically update the user list from the Ubuntu IRC Operators Launchpad team.
Commands
| Command | Arguments | Detailed information |
|---|---|---|
| login | Takes no arguments
| Allows users who are identified to NickServ to login without a password. The user must also be in the bots user database. |
| reloadusers | Takes no arguments
| Read the user database and add the users in it. This command does not update the users from Launchpad, just reprocesses the current list. |
| updateusers | Takes no arguments
| Update the user database from Launchpad. Retrieves all the users IRC nicks from the Ubuntu IRC Operator team and processes the database (as @reloadusers) |
Lart
Using
Commands
| Command | Arguments | Detailed information |
|---|---|---|
| Fill me in | Fill me in | Fill me in |
PackageInfo
Using
Commands
| Command | Arguments | Detailed information |
|---|---|---|
| Fill me in | Fill me in | Fill me in |
Stuff
Commands
| Command | Arguments | Detailed information |
|---|---|---|
| Fill me in | Fill me in | Fill me in |
Svn
This plugin can show a link to a SVN or Bzr repository as well as retrieve information about revisions.
Using
This plugin looks out for references to Svn/Bzr revisions in a channel and attempts to retrieve information on it, similar to Bugtracker.
<tsimpson> kde rev 1038907 <ubottu> http://websvn.kde.org/trunk/?rev=1038907&view=rev | svn://anonsvn.kde.org/home/kde/trunk -r 1038907 | Fixed focus handling and history navigation
Commands
| Command | Arguments | Detailed information |
|---|---|---|
| add | <name> <type> <url> [<description>]
| Add a SVN/Bzr repository <url> to the list of defined repositories. <type> is the type of the repository (currently Websvn, KDE, Bazaar, and Launchpad are known types). <name> is the name that will be used to reference the repository in all commands. Unambiguous abbreviations of <name> will be accepted also. <description> is the common name for the repository and will be listed with the repository query; if not given, it defaults to <name>.
|
| list | [<abbreviation>]
| List defined repositories. If <abbreviation> is specified, list the information for that repository instead.
|
| remove | <abbreviation>
| Remove the repository associated with <abbreviation> from the list of defined repositories.
|
| rename | <oldname> <newname>
| Rename the repository associated with <oldname> to <newname>.
|
| svn | [<name>] <id> [<path>]
| Acts like "<name> svn <id> <path>" was sent to the channel, <coode><name></code> and <path> are optional. (See Using)
|
