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.

1. 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.

1.1. 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.

1.2. 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

2. Encyclopedia

Stores and retrieves factoids. Also adds ignore/unignore capabilities to factoid editors.

2.1. 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.

2.1.1. 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

2.1.2. 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

2.1.3. 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.

2.1.4. 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".

2.1.5. 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

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

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

2.1.8. 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

2.2. 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.

2.3. 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

3. 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.

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