Plugins

ubotu, ubottu and all derivatives of ubottu run [http://sourceforge.net/projects/supybot/ 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.

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

{| style="width: 100%;" border="1" ! Command ! Arguments ! Detailed information |- | banlink | <code><nowiki><id> [<highlight>]</nowiki></code> | Returns a link to the raw log of the action with id <code><id></code>. If <code><highlight></code> is given then lines containing that term will be highlighted. |- | banlog | <code><nowiki><nick|hostmask> [<channel>]</nowiki></code> | Shows the last 5 messages from the <code><nowiki><nick|host></nowiki></code> logged before an action, the nick or host has to have an active ban, mute or mark against it. If <code><channel></code> is not given, the search will include all channels. |- | bansearch | <code><nowiki><nick|hostmask> [<channel>]</nowiki></code> | Search bans database for a ban or mark on <code><nowiki><nick|hostmask></nowiki></code>, if <code><channel></code> is not given, the search will include all channels. |- | btlogin | <code>Takes no arguments</code> | Sends you a message with a link to login to the Bantracker web interface. (Requires the Bantracker capability) |- | comment | <code><nowiki><id> [<comment>]</nowiki></code> | If <code><comment></code> is given, adds the comment to the action with the ID <code><id></code>; If not, then retrieve the comment(s) for the action with ID <code><id></code>. The ID for an action can be retrieved with the bansearch command. |- | mark | <code><nowiki>[<channel>] <nick|hostmask> [<comment>]</nowiki></code> | Creates an entry in the Bantracker as if <code><nowiki><nick|hostmask></nowiki></code> was kicked from <code><channel></code> with the comment <code><comment></code>, if <code><comment></code> is not given the comment will be "**MARK**". <code><channel></code> is only needed when sent in a /msg or the command is given in another channel. |- | updatebt | <code><nowiki>[<channel>]</nowiki></code> | Update the Bantracker database by synchronising with the <code><channel></code>s ban list, marking removed bans as removed, and adding new bans. If <code><channel></code> is not given then the synchronisation will occur in all channels. |- | banreview | <code>Takes no arguments</code> | 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>"

{| style="width: 100%;" border="1" ! 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.<br /> 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

<pre> <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 </pre>

Adding a factoid

<pre> <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 </pre> If the format "<term> is <factoid>" is not suitable, you can use the <reply> keyword: <pre> <tsimpson> !bar is <reply> baz <ubottu> I'll remember that tsimpson <tsimpson> !bar <ubottu> baz </pre>

Editing factoids

Editing existing factoids is done with the no keyword: <pre> <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 </pre> Factoids can also be edited with the <sed> keyword, this works similarly to the sed command-line tool: <pre> <tsimpson> !foo <ubottu> bar <tsimpson> !foo is <sed> /$/./ <ubottu> I'll remember that tsimpson <tsimpson> !foo <ubottu> bar. </pre>

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: <pre> <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! </pre> 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: <pre> <tsimpson> !foo <ubottu> FOO! <tsimpson> !forget foo <ubottu> I'll forget that tsimpson <tsimpson> !foo <ubottu> Sorry, I don't know anything about foo </pre> 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: <pre> <tsimpson> !foo <ubottu> Sorry, I don't know anything about foo <tsimpson> !foo is <reply> bar <ubottu> But foo already means something else! </pre> You must first unforget a factoid to edit it: <pre> <tsimpson> !unforget foo <ubottu> I suddenly remember foo again, tsimpson <tsimpson> !no foo is <reply> bar <ubottu> I'll remember that tsimpson </pre>

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:

<pre> !search <string> </pre>

You can also browse and search the factoids on-line [http://ubottu.com/factoids.cgi Here]

Sorted by:

Factoid modifiers

Getting factoid information

Some information on factoids can be retrieved by using the '-' modifier when calling a factoid. This information includes information on if the factoid is an alias to another, what factoids are aliases to the factoid, when the factoid was created, and when the factoid was last modified.

You can see this information by added the '-' modifier before the factoid name: <pre> <User> !-bot <Bot> bot is <alias> ubotu - added by SomeNick on 2006-06-18 00:41:01 - last edited by AnotherNick on 2010-09-02 10:30:22 <User> !-ubotu <Bot> ubotu aliases: yourself, bot, usage, factoid, brain, add, help me, syntax, factoids, everything, me, ubottu, bots, fact - added by SomeNick on 2006-06-19 12:15:56 - last edited by AnotherNick on 2010-09-18 20:14:50 </pre>

Getting raw factoids

The raw factoid, as it is stored in the database, can be retrieved by using the '+' modifier when calling a factoid. Sometimes it can be useful to see a raw factoid as it is stored in the database, for instance when working with variable substitutions.

You can see the raw factoid by adding the '+' modifier before the factoid name: <pre> <User> !+ubotu <Bot> <reply> Hi! I'm $chan's favorite infobot, you can search my brain yourself at http://ubottu.com/factoids.cgi | Usage info: http://ubottu.com/devel/wiki/Plugins | Bot channels and general info: https://wiki.ubuntu.com/IRC/Bots <User> !+lts <Bot> <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) </pre>

Variables

Ubottu also understands some variables and will substitute them when the factoid is called.

<pre> <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) </pre>

$nick

This variable will be replaced with the nick-name of the bot. E.g: ubottu

$who

This variable will be repalced with the nick-name of the person who called the factoid. E.g: tsimpson

$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

{| style="width: 100%;" border="1" ! Command ! Arguments ! Detailed information |- | addeditor | <code><name></code> | Adds the user with the name <code><name></code> to the list of editors. |- | editors | <code>Takes no arguments</code> | Lists all the users who are in the list of editors. |- | ignore | <code><nowiki><hostmask|nick> [<expires>] [<channel>]</nowiki></code> | Ignores commands/requests from <code><hostmask></code> or <code><nick></code>. If <code><expires></code> is given the ignore will expire after that amount of time in seconds. If <code><channel></code> is given, the ignore will only apply in that channel. <code><channel></code> defaults to the channel the command is given in, use /msg to apply ignores globally. |- | ignorelist | <code><nowiki><hostmask|nick> [<channel>]</nowiki></code> | Lists all ignores set by ignore. If <code><channel></code> is given this will only list ignores set in that channel. <code><channel></code> defaults to the channel the command is given in, use /msg to list global ignores. |- | moderators | <code>Takes no arguments</code> | Lists all the users who can add users to the list of editors. |- | removeeditor | <code><nowiki><name></nowiki></code> | Removes the user with the name <code><name></code> from the list of editors. |- | sync | <code>Takes no arguments</code> | Downloads a copy of the database from the remote server. Set the server with the configuration variable supybot.plugins.Encyclopedia.remotedb. |- | unignore | <code><nowiki><hostmask|nick> [<channel>]</nowiki></code> | Remove an ignore previously set by ignore. If <code><channel></code> was given in the original ignore command it must be given here too. <code><channel></code> 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>"

{| style="width: 100%;" border="1" ! 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 |} <!-- == Forward == (not used) -->

IRCLogin

This plugin is used to allow users to login without a password and automatically update the user list from the [https://launchpad.net/~ubuntu-irc Ubuntu IRC Operators] [https://launchpad.net Launchpad] team.

Commands

{| style="width: 100%;" border="1" ! Command ! Arguments ! Detailed information |- | login | <code>Takes no arguments</code> | Allows users who are identified to NickServ to login without a password. The user must also be in the bots user database. |- | reloadusers | <code>Takes no arguments</code> | Read the user database and add the users in it. This command does not update the users from [https://launchpad.net/ Launchpad], just reprocesses the current list. |- | updateusers | <code>Takes no arguments</code> | Update the user database from [https://launchpad.net/ Launchpad]. Retrieves all the users IRC nicks from the [https://launchpad.net/~ubuntu-irc Ubuntu IRC Operator] team and processes the database (as @reloadusers) |}

Lart

Using

Commands

{| style="width: 100%;" border="1" ! Command ! Arguments ! Detailed information |- | Fill me in | Fill me in | Fill me in |}

PackageInfo

Using

Commands

{| style="width: 100%;" border="1" ! Command ! Arguments ! Detailed information |- | Fill me in | Fill me in | Fill me in |}

Stuff

Commands

{| style="width: 100%;" border="1" ! Command ! Arguments ! Detailed information |- | Fill me in | Fill me in | Fill me in |}

== Svn ==

This plugin can show a link to a [http://subversion.tigris.org/ SVN] or [http://subversion.tigris.org/ 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. <pre> <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 </pre>

Commands

{| style="width: 100%;" border="1" ! Command ! Arguments ! Detailed information |- | add | <code><name> <type> <url> [<description>]</code> | Add a SVN/Bzr repository <code><url></code> to the list of defined repositories. <nowiki><type></nowiki> is the type of the repository (currently Websvn, KDE, Bazaar, and Launchpad are known types). <code><name></code> is the name that will be used to reference the repository in all commands. Unambiguous abbreviations of <code><name></code> will be accepted also. <code><description></code> is the common name for the repository and will be listed with the repository query; if not given, it defaults to <code><name></code>. |- | list | <code>[<abbreviation>]</code> | List defined repositories. If <code><abbreviation></code> is specified, list the information for that repository instead. |- | remove | <code><abbreviation></code> | Remove the repository associated with <code><abbreviation></code> from the list of defined repositories. |- | rename | <code><oldname> <newname></code> | Rename the repository associated with <code><oldname></code> to <code><newname></code>. |- | svn | <code>[<name>] <id> [<path>]</code> | Acts like "<name> svn <id> <path>" was sent to the channel, <coode><name></code> and <code><path></code> are optional. (See Using) |}

Admin

Admin

Channel

Channel

Config

Config

Misc

Misc

Owner

Owner

== Plugin == Plugin

Services

Services

User

User

UbuntuBots/Plugins (last edited 2012-01-20 19:54:51 by alanbell)