ubottu and all derivatives of it run Limnoria, a fork and the continued work of the original Supybot. In addition to the core bot 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. Encyclopedia
Stores and retrieves factoids. Also adds ignore/unignore capabilities to factoid editors.
1.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/delete factoids, a user must have the editfactoids capability; to add editors, a user must have the addeditors capability.
1.1.1. Retrieving factoids
<tsimpson> !factoid <ubottu> Hi! I'm #ubuntu's favorite infobot. You can search my brain at https://ubottu.com/factoids.cgi | General info and channels at https://wiki.ubuntu.com/IRC/Bots | Make a clone of me, see !botclone
1.1.2. Adding factoids
<tsimpson> !foo <ubottu> Factoid 'foo' not found <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
1.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 =~ operator, this works similarly to the sed command-line tool:
<tsimpson> !foo <ubottu> bar <tsimpson> !foo =~ s/$/./ <ubottu> I'll remember that, tsimpson <tsimpson> !foo <ubottu> bar.
Alternatively, the is <sed> syntax can be used here.
1.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> Factoid 'foobar' not found <tsimpson> !foobar is <alias> foo <ubottu> I'll remember that, tsimpson <tsimpson> !foobar <ubottu> bar. <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
1.1.5. Forgetting factoids
If you want to disable a factoid, use the forget keyword:
<tsimpson> !foo <ubottu> FOO! <tsimpson> !forget foo <ubottu> I'll forget that, tsimpson <tsimpson> !foo <ubottu> Factoid 'foo' not found
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> Factoid 'foo' not found <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 <tsimpson> !foo <ubottu> bar
1.1.6. Deleting factoids
If you want to actually remove a factoid, use the delete keyword:
<tsimpson> !foo <ubottu> FOO! <tsimpson> !delete foo <ubottu> I'll delete that, tsimpson <tsimpson> !foo <ubottu> Factoid 'foo' not found
1.1.7. Searching factoids
If you are looking for a specific factoid but cannot remember its name, you can search the factoid database by name or fact:
!search <string>
You can also browse and search the factoids online.
Sorted by:
1.1.8. Factoid modifiers
Getting factoid information
Some information on factoids can be retrieved by using the - modifier when calling a factoid. This includes information on if the factoid is an alias to another, what factoids are aliased to it, when it was created, when it was last modified, and how often it was called so far.
You can see this information by adding the - modifier before the factoid name:
<User> !-bot <Bot> bot@ubotu - no aliases - added by SomeNick on 2006-06-18 00:41:01 - last edited by AnotherNick on 2010-09-02 10:30:22 - requested 999 times <User> !-ubotu <Bot> ubotu - aliases: yourself, bot, usage, factoid, brain, add, help me, syntax, factoids, everything, me, ubottu, bots, fact, triggers, trigger - added by SomeNick on 2006-06-19 12:15:56 - last edited by AnotherNick on 2016-11-26 07:25:56 - requested 18812 times
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 this can be useful, 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 at https://ubottu.com/factoids.cgi | General info and channels at https://wiki.ubuntu.com/IRC/Bots | Make a clone of me, see !botclone <User> !+lts <Bot> <reply> LTS means Long Term Support. LTS versions are supported for 5 years on the desktop and server. The latest LTS version of Ubuntu is !$curLTS ($curLTSLong $curLTSNum). Ubuntu !flavors may have different support durations, check their release notes for information.
1.1.9. 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 are supported for 5 years on the desktop and server. The latest LTS version of Ubuntu is !$curLTS ($curLTSLong $curLTSNum). Ubuntu !flavors may have different support durations, check their release notes for information. <Bot> I'll remember that, User <User> !lts <Bot> LTS means Long Term Support. LTS versions are supported for 5 years on the desktop and server. The latest LTS version of Ubuntu is !Jammy (Jammy Jellyfish 22.04). Ubuntu !flavors may have different support durations, check their release notes for information.
$nick
This variable will be replaced with the nickname of the bot, e.g. ubottu
$who
This variable will be replaced with the nickname of the person who called the factoid, e.g. tsimpson
$chan
This variable will be replaced with the name of the 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. Mantic
$curStableLong
This variable will be replaced with the long name of the current stable version of Ubuntu, e.g. Mantic Minotaur
$curStableLower
Same as $curStable, but lowercase.
$curStableNum
This variable will be replaced with the version number of the current stable version of Ubuntu, e.g. 23.10
$curLTS
This variable will be replaced with the name of the current LTS version of Ubuntu, e.g. Jammy
$curLTSLong
This variable will be replaced with the long name of the current LTS version of Ubuntu, e.g. Jammy Jellyfish
$curLTSLower
Same as $curLTS, but lowercase.
$curLTSNum
This variable will be replaced with the version number of the current LTS version of Ubuntu, e.g. 22.04
$curDevel
This variable will be replaced with the name of the current development version of Ubuntu, e.g. Noble
$curDevelLong
This variable will be replaced with the long name of the current development version of Ubuntu, e.g. Noble Numbat
$curDevelLower
Same as $curDevel, but lowercase.
$curDevelNum
This variable will be replaced with the version number of the current development version of Ubuntu, e.g. 24.04
1.2. Commands
Command | Arguments | Description |
---|---|---|
editor add |
<name> |
Adds the user with the name <name> to the list of editors. |
editor remove |
<name> |
Removes the user with the name <name> from the list of editors. |
editors |
Lists all the users who are in the list of editors. |
|
moderators |
Lists all the users who can add users to the list of editors. |
|
ignore add |
[<channel>] <hostmask|nick> [<expires>] |
Ignores commands/requests from <hostmask> or <nick>. If <expires> is given, the ignore will expire after that amount of seconds. If <channel> is given, the ignore will only apply in that channel. |
ignore remove |
[<channel>] <hostmask|nick> |
Removes an ignore previously set by @ignore. If <channel> was given in the original @ignore command, it must be given here. |
ignores |
[<channel>] |
Lists all ignores set by @ignore. If <channel> is given, this will only list ignores set in that channel. |
lookup |
[<channel>] [<author>] |
Lists factoids created or edited by <author>, <author> defaults to you. |
review |
[<channel>] [<id>] |
Lists edit requests. If <id> is given, prints the suggested new value. |
sync |
[<channel>] |
Downloads a copy of the database from the remote server. Set the server with the channel variable supybot.plugins.Encyclopedia.remotedb. If <channel> is not set, it will default to the channel the command is given in or the global value. |
1.3. Configuration
Settings can be configured with the command config <configname> <newvalue>. For the case of channel-specific configuration, the command is config channel <channelname> <configname> <newvalue>
Setting | Description | Channel-specific | Default value |
---|---|---|---|
supybot.plugins.Encyclopedia.enabled |
Enable Encyclopedia |
Yes |
True |
supybot.plugins.Encyclopedia.datadir |
Directory containing factoid databases |
No |
|
supybot.plugins.Encyclopedia.database |
Name of database to use |
Yes |
ubuntu |
supybot.plugins.Encyclopedia.relaychannel |
Channel to forward edit requests and alerts to |
Yes |
#ubuntu-ops |
supybot.plugins.Encyclopedia.editchannels |
Channels where edits of restricted editors are allowed |
Yes |
#ubuntu-ops |
supybot.plugins.Encyclopedia.logchannel |
Channel to notify about edits |
Yes |
|
supybot.plugins.Encyclopedia.notfoundmsg |
Reply when factoid is not found |
Yes |
Factoid %s is not found |
supybot.plugins.Encyclopedia.prefixchar |
Character the bot will respond to factoid requests with |
Yes |
! |
supybot.plugins.Encyclopedia.alerts |
Factoid names used for alerts |
Yes |
ops op kops calltheops |
supybot.plugins.Encyclopedia.remotedb |
Remote location of database |
Yes |
|
supybot.plugins.Encyclopedia.ignores |
Factoid names to ignore |
Yes |
info depends find more |
supybot.plugins.Encyclopedia.repeatdelay |
Number of seconds to wait between repeated factoid calls |
Yes |
60 |
supybot.plugins.Encyclopedia.privateNotFound |
Send notfoundmsg in private rather than in the channel |
Yes |
False |
supybot.plugins.Encyclopedia.noticeMonitoring |
Send monitoring messages as notices rather than normal messages |
Yes |
False |
supybot.plugins.Encyclopedia.forcedFactoid |
Factoids in kick reason will be sent to the user in private |
Yes |
False |
supybot.plugins.Encyclopedia.curStable |
Current stable release name |
Yes |
Mantic |
supybot.plugins.Encyclopedia.curStableLong |
Current stable release long name |
Yes |
Mantic Minotaur |
supybot.plugins.Encyclopedia.curStableNum |
Current stable release version number |
Yes |
23.10 |
supybot.plugins.Encyclopedia.curLTS |
Current LTS release name |
Yes |
Jammy |
supybot.plugins.Encyclopedia.curLTSLong |
Current LTS release long name |
Yes |
Jammy Jellyfish |
supybot.plugins.Encyclopedia.curLTSNum |
Current LTS release version number |
Yes |
22.04 |
supybot.plugins.Encyclopedia.curDevel |
Current development release name |
Yes |
Noble |
supybot.plugins.Encyclopedia.curDevelLong |
Current development release long name |
Yes |
Noble Numbat |
supybot.plugins.Encyclopedia.curDevelNum |
Current development release version number |
Yes |
24.04 |