ubottu plugins

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.

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 Sends you a message with a link to login to the Bantracker web interface. (Requires the Bantracker capability.)
comment <id>[,<id> …] [<comment>][, <duration>] If <comment> is given, adds the comment to the action with the ID(s) <id>; If not, then retrieve the comment(s) for the action with ID(s) <id>. The ID for an action can be retrieved with the bansearch command. The <duration> argument is described in the duration command below.
duration [<id>[,<id> …]] [<duration>] Sets the duration of a ban. If <duration> isn't given show when a ban expires. If no <id> is given shows the ids of bans/quiets set to expire.
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 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
supybot.plugins.Bantracker.review Enable/disable reviews per channel. Yes True
supybot.plugins.Bantracker.review.ignore List of nicks for which the bot won't request a review. Is case insensative and the wildcards * and ? are accepted. Yes
supybot.plugins.Bantracker.review.forward List of nicks for which the bot will forward the reviews to the channels/nicks defined in forwards.channels option. Is case insensitive and the wildcards * and ? are accepted. Yes FloodBot? FloodBotK? ChanServ
supybot.plugins.Bantracker.review.when Days after which the bot will request for review a ban. Can be an integer or decimal value. Zero disables reviews globally. No 7.0
supybot.plugins.Bantracker.review.forward.channels List of channels/nicks to forward the request if the op is in the forward list. Yes
supybot.plugins.Bantracker.autoremove Enable/disable auto-removal of bans and quiets. Yes False
supybot.plugins.Bantracker.autoremove.notify Enable/disable notifications of removal of bans and quiets. Yes True
supybot.plugins.Bantracker.autoremove.notify.channels List of channels/nicks to notify about automatic removal of bans and quiets. Yes

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:

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:

<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
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:

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

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)
$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

Command Arguments Detailed information
addeditor <name> Adds the user with the name <name> to the list of editors.
editors 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 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 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 Allows users who are identified to NickServ to login without a password. The user must also be in the bots user database.
reloadusers 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 Update the user database from Launchpad. Retrieves all the users IRC nicks from the Ubuntu IRC Operator team and processes the database (as reloadusers)
Print/export