UbuntuBots

Differences between revisions 40 and 41
Revision 40 as of 2010-06-22 03:14:49
Size: 13254
Editor: c-98-234-77-177
Comment: changing ubottu family section to mention lubotu and refer to IRC/Bots
Revision 41 as of 2012-01-20 19:45:17
Size: 390
Editor: alanbell1
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
= Welcome to the Ubuntu Bots development wiki =
Line 3: Line 4:
||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;"><<TableOfContents>>|| Unfortunately this wiki is currently empty, so start creating and editing pages :)
Line 5: Line 6:
== Ubuntu bots ==
In the Ubuntu channels, there are several bots looming around for different purposes. If you run an Ubuntu channel and want one of them to join, please contact its maintainer. The bots are:
[[/Plugins|Plugins and usage information]] (Incomplete)
[[/Brainstorm|Share and discuss your ideas!]]
== Plugins ==
Line 8: Line 10:
=== Ubuntulog ===
Log bot operated by the Canonical system admins (rt@ubuntu.com). Its logs may be found at http://irclogs.ubuntu.com/ .
[[/Stormyfacts|Stormyfacts]]
Line 11: Line 12:
=== LoCoBot ===
Lo''''''Co''''''Bot - Log bot for LoCoTeam channels, operated by the ubuntu-eu admin team (admin@ubuntu-eu.org). Its logs can be found at http://logs.ubuntu-eu.org/freenode/ .
[[/Bt-mysql|Bantracker with MySQL]]
== Specs ==
Line 14: Line 15:
=== MootBot ===
[[ScribesTeam/MootBot]] - Meeting helper bot operated by the ScribesTeam that runs in {{{#ubuntu-meeting}}}, designed for the chairperson of a meeting to use.

=== ubottu family ===
Based on the ubotu source and factoid database. Please send all queries about them to the [[irc://irc.freenode.net/ubuntu-irc|#ubuntu-irc]] channel on Freenode.

The main bot ('''ubottu''') is run by [[https://launchpad.net/~jussi01|jussi01]]. primarily idles on the core Ubuntu channels. There are several clones of ubottu for use in LoCo channels, named lubotu1, lubotu2, and lubotu3. See [[IRC/Bots|the IRC team's bots page]] for channel assignments and contact information.

Ubottu's source code may be found [[https://code.launchpad.net/~tsimpson/ubuntu-bots/tweak|here]] and its SQLite factoids database may be downloaded from [[http://ubottu.com/ubuntu.db|this location]].

==== manualbot ====
Based approximately on ubottu. Ran by [[http://launchpad.net/~jshholland|dutchie]] - idles on #ubuntu-manual.

=== ubotu ===
 Encyclopedia/Package search/RSS/Bugtracker/Bantracker/Fun bot; usage instructions below

ubotu was operated by Dennis 'Seveas' Kaarsemaker until 2008-04-28. It was the only interactive bot allowed on the Ubuntu channels. It was running supybot 0.83.1 on Ubuntu 6.06 LTS. The source code and bugtracker can be found on [[https://code.launchpad.net/~dennis/ubuntu-bots/main|Launchpad]]. ubotu was replaced by ubottu and is based on the same code. See the Using Ubottu section below.

=== uvirtbot ===
Does Bug''''''Tracker work on channels like #ubuntu-virt. Based on ubotu. Run by Soren Hansen.

== Using Ubottu ==

Ubottu is a (somewhat) intelligent IRC bot. The idea behind ubottu is that it remembers answers to commonly asked questions and that users of #ubuntu/#kubuntu can easily recall them when needed.

Using ubottu is simple. To ask ubottu to recall an answer, simply type in #ubuntu/#kubuntu:

{{{
!<factoid>
}}}

Replace <factoid> with the actual factoid you want to recall. If ubottu doesn't currently have the factoid, it will reply by telling you it doesn't know it.

Another way to use ubottu is to ask ubottu to tell someone else about a factoid. You can accomplish this by typing:

{{{
!tell <nick> about <factoid>
!<factoid> > <nick>
}}}

Just replace <nick> with the nickname of the person you wish to tell about <factoid>. Replace <factoid> with the factoid you wish to use.

To make ubottu reply in the channel, but prefix something to the factoid, replace {{{>}}} with {{{|}}}

{{{
!<factoid> | <nick>
ubottu: <factoid> | <nick>
}}}

You can also suggest new factoids to ubottu:

{{{
!<factoid> is <fact>
}}}

or, if an incorrect factoid has been added, make ubottu replace it with new information:

{{{
!no, <factoid> is <fact>
}}}

Replace <factoid> with the name of the new factoid and <fact> with the information for that factoid. One thing to keep in mind when creating new factoids is that they should point to official Ubuntu documentation where possible.

Due to the high volume of abuse/bogus factoids people have added to the bot, adding factoids is currently limited to registered people who have been granted access. Attempts to edit the bot by unauthorized users will be forwarded to #ubuntu-ops for review so they can be submitted to the ops for review and added if appropriate.

If you just want to search the bot or lookup factoids for yourself, you should send the commands to the bot privately:
{{{
/msg ubottu <factoid>
}}}
It will then reply to you in a private message. Please use this to keep channel traffic to a minimum.

=== Advanced Factoid Manipulation ===

==== <reply> ====

Ubottu's default response to !foo is "foo is bar". To suppress the "foo is", start the factoid with <reply>. Example:

{{{
<User> !foo is <reply> bar
<User> !foo
<Bot> bar
}}}

==== also ====
{{{
!foo is foo
!foo is also bar
}}}

This will make ubottu say:

{{{
<Bot> foo is foo
<Bot> bar
}}}

This is mainly used for factoids that are partially LTR and partially RTL text.

==== <alias> ====
Several facts have multiple factoids pointing to them via aliases. To add an alias, you use the <alias> keyword in your fact. Example:

{{{
<User> !foo is bar
<User> !bar is <alias> foo
<User> !bar
<Bot> foo is bar
}}}

==== !forget and !unforget ====
To remove a factoid from the database you use the !forget command '''!forget <factoid>'''. Example:
{{{
<User> !forget foo
<Bot> I'll forget that, User
}}}
There after the bot will reply to '''!foo''' with it's not-found message. To undo the !forget you use the !unforget command '''!unforget <factoid>'''. Example:
{{{
<User> !unforget foo
<Bot> I suddenly remember foo again, User
}}}

Note: To edit a forgotten factoid you must first !unforget it:
{{{
<User> !foo
<Bot> bar
<User> !forget foo
<Bot> I'll forget that, User
<User> !foo is <reply> bar
<Bot> But foo already means something else!
<User> !no foo is <reply> bar
<Bot> I know nothing about foo yet, User
<User> !unforget foo
<Bot> I suddenly remember foo again, User
<User> !no foo is <reply> bar
<Bot> I'll remember that, User
}}}

==== !- ====
To display alias information, use !-<factoid>. This will either display which factoid <factoid> is an alias of, or it will list all aliases of <factoid>, whichever is appropriate.

==== <sed> ====

Ubottu can edit its factoids using sed-like expressions. If you made a typo and do not want to erase and replace the entire factoid, you can edit factoids contents:

{{{
!<factoid> =~ /<regex>/<replacement>/
!<factoid> ~= /<regex>/<replacement>/
!<factoid> is <sed> /<regex>/<replacement>/
}}}

The <sed>/=~/~= construct understands regular expressions (PCRE) for advanced editing.

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

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

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

===== $curDevelNum =====
This variable will be replaced with the version number of the current stable version of Ubuntu. E.g: 9.10

=== 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 online [[http://ubottu.com/factoids.cgi|Here]]

Sorted by:
 * [[http://ubottu.com/factoids.cgi?db=ubuntu&search=&order=popularity%20DESC&page=0|Most popular first]]
 * [[http://ubottu.com/factoids.cgi?db=ubuntu&search=&order=added%20DESC&page=0|By date]]
 * [[http://ubottu.com/factoids.cgi?db=ubuntu&search=&order=name%20ASC&page=0|Alphabetical]]

=== Looking for packages ===

You can also find out information about a package in the Ubuntu repositories:

{{{
!info <packagename>
!info <packagename> <ubuntu version>
}}}

Ubottu will tell the channel about <packagename>.

If you want to find a package of which you only know part of the name:

{{{
!find <string>
!find <string> <ubuntu version>
}}}

If no package similar to '''<string>''' ubottu will preform a file search of packages, looking for '''<string>''' in the packages file listing.

=== Private messages ===

Ubottu will also respond in private messages. You don't need to use the '!' in commands sent in private messages. He will also answer when addressed by his nickname in the channel, like this:

{{{
ubottu, tell User about java
ubottu: please tell User about mp3
ubottu, ati > me
}}}


{{{#!wiki comment
* RSS is disabled *
=== RSS announcements ===

In #ubuntu-offtopic and #ubuntu-fridge, ubotu will announce new posts on The Fridge, and Planet Ubuntu in -offtopic.
}}}

=== Bugtracker connection ===

Using a very complicated regex, Ubottu looks for people who mention bug numbers/urls. It understands bugs from launchpad, bugzilla, trac, debbugs, sourceforge and issuezilla. Lots of bugtrackers are known, so it can reply to both urls and text like 'bug 123' or 'kde bug 1337'. It will reply with a short summary of the bug and its status. If you know of a bugtracker that should be added to its brain, you can poke Ubottu's administrator in #ubuntu-bots or #ubuntu-ops .

=== Ban tracking ===

In several channels, Ubottu logs all kicks, removals, bans, and mutes with a log snippet preceding the action. The ban tracker is not available to public access and only viewable to the IRC operators for Ubuntu channels.

=== Other functions ===

In #ubuntu-offtopic, the following functions may or may not be enabled, depending on abuse of the functions:

==== Lart plugin ====
The Lart plugin uses the ''Luser Attitude Readjustment Tool'' on ''<nick>'' (for ''<reason>'', if given).
{{{
@lart <nick> [for <reason>]}}}

===== Adding Larts =====
This can only be done by someone who can edit factoids in Encyclopedia.
{{{
@lart add <text>}}}
Adds the Lart ''<text>'' to the Lart database. The ''<text>'' must contain the term "$who" which will be replaced when the bot Larts someone.

{{{
<me> @lart add takes $whos pony away
<ubottu> The operation succeeded.
<me> @lart nick
* ubottu takes nicks pony away
}}}

===== Editing Larts =====
This can only be done by someone who can edit factoids in Encyclopedia.
{{{
@lart change <id> <regexp>}}}
Changes the Lart with id ''<id>'' according to the regular expression ''<regexp>''. The ''<regexp>'' is in the format "s/original/new/" (the same as Perl regex).

{{{
<me> @lart change 1 s/pony/keyboard/
<ubottu> The operation succeeded.
<me> @lart nick
* ubottu takes nicks keyboard away
}}}

===== Removing Larts =====
This can only be done by someone who can edit factoids in Encyclopedia.
{{{
@lart remove <id>}}}
Removes the Lart with id <id> from the Lart database.

{{{
<me> @lart add shows $who the door
<ubottu> The operation succeeded.
<me> @lart get 2
<ubottu> Lart #2: "shows $who the door" (added by me at 17:28 PM, January 01, 2009)
<me> @lart remove 2
<ubottu> The operation succeeded.
<me> @lart get 2
<ubottu> Error: There is no Lart with id #2 in my database for #channel.
}}}

===== Getting information on Larts =====
This can only be done by someone who can edit factoids in Encyclopedia.
{{{
@lart get <id>}}}
Gets the Lart with id <id> from the Lart database. ''<id>'' is the ID of the Lart to get, IDs can be set to show when ''@lart'' is called, disabled in #ubuntu-offtopic

{{{
<me> @lart get 1
<ubottu> Lart #1: "takes $whos keyboard away" (added by me at 17:23 PM, January 01, 2009)
}}}

==== Time information ====
{{{
@now timezone}}}

Which will display the current time and next meeting in the given timezone.
Replace '''timezone''' with your timezone. A list of valid timezones can be found on http://ubottu.com/timezones.html
If '''timezone''' is omitted in either command it defaults to UTC/GMT
[[/Bantracker|Bantracker]]

Welcome to the Ubuntu Bots development wiki

Unfortunately this wiki is currently empty, so start creating and editing pages Smile :)

Plugins and usage information (Incomplete) Share and discuss your ideas!

Plugins

Stormyfacts

Bantracker with MySQL

Specs

Bantracker

UbuntuBots (last edited 2012-01-20 19:53:31 by alanbell1)