This is an old revision of the document!
Table of Contents
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 | Takes no arguments | 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 | 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 |
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
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>”
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.