Menu

Using_Gribble_on_Sourceforge

Anonymous nanotube Katie Russell

This page contains documentation on using gribble, the #sourceforge bot. Gribble makes extensive use of factoids, regexp triggers, aliases, and other supybot features. We hope this page will serve as a source of helpful information for both channel regulars and occasional visitors.

For some introductory info about gribble, as well as links to other helpful documentation, see the main page of this wiki.

Quick start

Before we start: if the last part of anything gribble says is (1 more message), that means that gribble could not output everything without a break, because the text was too long for one IRC message. To see the rest of what gribble wanted to say, issue the more command, like so:

!more

Essentials (what you really need to know)

1. How to address the bot. Here's how the bot can be addressed:

  • By starting a line with an exclamation point (!).
  • By including anywhere in a line two commas followed by a one-word command (e.g., hey bot ,,ping will cause gribble to respond with "pong").
  • By including anywhere in a line two commas followed by a multi-word command in paretheses (e.g., my dear gribble ,,(echo bla) will cause the bot to say "bla").

2. Some of the most-used features of the bot are:

Exploring Further

The following will help you discover everything there is to know about using gribble.

1. How to find what commands are available. For this, use the 'list' command:

  • !list will list all loaded plugins.
  • !list <pluginname> will list all commands available in a plugin.
  • !commands will list all available commands. Please don't run it in channel, as it's quite verbose. Use it in a private message session with the bot if you want. For your reference, here is a copy of this command list, as of 2010-04-16. To use this a private message, please use this command to get the output in a new window:

    /msg gribble commands

2. How to get help on commands

  • Use the misc help command, aliased to ? for brevity, to get documentation for a command. (e.g., !? version will output the help on the "version" command.)

The rest is discoverable - so go on, discover. :)

Plugins Providing Public-Facing Features

There is a huge number of plugins available for supybot, but only a few are used by gribble.

This is a list of the plugins that are currently in use and provide visible functions to the public.

Alias

Provides a collection of aliases (short commands that do something more complex).

Below is a list of the currently available aliases. The most often used ones have descriptions.

  • ? - an alias to misc help, the function that gives help on commands.
  • about
  • bot
  • boturl
  • businesshours
  • cheer
  • ctell
  • facts - returns a list of factoids for the channel.
  • give
  • giveout
  • help
  • hug
  • oobhresponse
  • pet
  • petuser
  • pong
  • smack
  • targetproject - returns a few useful links for a sourceforge project, given the project unix name. useful to point people to project resources.
  • trigger
  • wp - returns a link to a wikipedia entry on the search string given.

ChannelStats

Provides some statistics about channel usage. It's only here for fun.

Feel free to explore the commands inside with list and misc help.

Dict

Does a look up on the supplied word on dict.org's dictd server.

The most useful commands in here are 'dict' and 'synonym', which provide the definition, and a randomly selected synonym, respectively, for the lookup word.

E.g., !dict phlegmatic returns the definition of the word "phlegmatic", and !synonym phlegmatic returns a randomly selected synonym for "phlegmatic" from the list provided by the "Moby Thesaurus II by Grady Ward, 1.0" (moby-thes) database on dict.org.

Factoids

This plugin provides the main feature that gribble is used for on a daily basis.

The plugin stores useful information associated with lookup keys (facts), so that they can be easily recalled. Saves the staff a lot of time retyping the answers to the same frequently asked questions. :)

The best way to see the list of facts along with their keys is to use the web view of #sourceforge factoids.

You can also get a list of keys in-channel with the alias facts.

Factoid lookup

Using a factoid key as a direct command will result in a lookup of that factoid. So for example, to look up the projectweb factoid on #sourceforge, just issue command:

!projectweb

If an existing command of the same name exists, however, the command will take precedence. So for example, there exists a help command, so if you create a new factoid with key help, and then try to look it up with !help, the output of the command will be shown, rather than the content of the factoid. To explicitly look up a factoid, use the whatis command. For example:

!whatis projectweb

will look up the projectweb factoid.

To search factoids, use the factoids search command. In its basic form, something like:

!factoids search web

Will show a list of factoids which contain the word 'web' in their key. You can also use simple wildcards '*' and '?'. You can search by value, if you provide the '--values' option:

!factoids search --values bla

And you can even use a full regexp search, either on keys or values, with the '--regexp' option:

!factoids search --regexp /your_regexp_here/

But generally, if you are really having trouble finding something, it's easiest just to pull up the web view of #sourceforge factoids. :)

Managing factoids

Note: factoid management functions are only available to users registered with gribble, in order to avoid database fill-up with drive-by junk.

  • To teach gribble a new factoid use the command learn

    !learn helloworld as hello world from a new factoid

  • To remove a factoid, use the forget command:

    !forget helloworld

  • You can add a new key to an existing factoid. Use the factoids alias command for this:

    !factoids alias helloworld welcomeworld

  • To change a factoid content, use the factoids change command. In order to change a factoid, you must specify the factoid number associated with a key (which would be 1 if there's only one fact associated with that key):

    !factoids change helloworld 1 s/hello world/welcome to earth/

To find out if there's more than one fact associated with a key, use the factoids info command:

!factoids info helloworld

This will return info about the fact, including the number of associated keys.

The above examples assume you are running commands from within the channel whose factoids you are managing. From within a private chat with the bot, or from another channel, you must specify the channel name explicitly. For example, using the full learn syntax, you might do the following:

!factoids learn #sourceforge helloworld2 as hello world from a second new factoid

Google

Interface to the Google API. Some of the more useful commands are:

  • google - do a search and return a list of results
  • translate - translate a string from one language to another
  • lucky - do a search and return a link to the first google result.

Later

The tell command in this plugin can be used to leave a message for a user, which will be sent in a pm to that user he is next seen. For example:

!later tell nanotube you're so cool!

will send this message to nanotube when he is next observed to join, or say something in, any channel gribble is on.

MessageParser

Allows to set regexp triggers for IRC messages. This enables the bot to respond even if the IRC message was not a command directly addressed to the bot. This enhances the usefulness of the bot in a number of ways.

Here is a list of currently enabled regexps, along with their descriptions:

  • (?i)ticket\s+#?(\d+) - Whenever someone references a ticket by number, automatically spits out a link to the ticket on sourceforge trac.
  • (?i)idea\s+#?(\d+) - Whenever someone references an idea by number, automatically spits out a link to the idea on sourceforge ideatorrent.
  • ,,(\w+) - Allows sending a one-word command (or multiple one-word commands) to the bot from in-message, without having to command it directly with "!". For example, the following message will cause the bot to respond with the 'projectweb' factoid:

    see our documentation on ,,projectweb

  • ,,\(([^\)]*?)\) - Allows sending a multi-word command (or multiple multi-word commands) to the bot from in-message, without having to command it directly with "!". For example, the following message will cause the bot respond with to the output of the alias 'targetproject':

    see the following list of resources for ,,(targetproject foo)

  • (?i)^(hello|hi|greetings)[!?.]?$ - If it is outside sourceforge business hours, and a user comes in and greets with any of popular greetings, the bot will respond with a friendly 'out of business hours' message.

A list of existing regexps can be found by issuing the following command:

!messageparser list

This will return a list of regex's with an id number in parentheses.

To see the action associated with that regexp, issue command

!messageparser show --id <id>

or include the regexp verbatim, with command

!messageparser show "regexp_here"

Misc

The most useful commands here are:

  • help
  • list
  • more
  • apropos

RSS

This Plugin is used to monitor the Sourceforge Site Status RSS Feed from http://sf.net/sitestatus The feed alias is called 'sflaconica' and a specified number of recent items can be retrieved by the command, supplying the number of most recent items to retrieve (default is one most recent item). For example:

!sflaconica 3

will retrieve the last 3 entries from the feed.

WunderWeather

Use the weather command from this plugin to get weather info for your location. Just for fun. :)

Plugins Providing Internally Used Features

Admin

Provides some administrative functions.

Anonymous

Can be used to make the bot do or say something anonymously in channel. This plugin is restricted from use by the population at large, due to potential for abuse.

Channel

Various channel management functions

ChannelLogger

Is used to keep a private log of traffic on the channel. In the event of a problem occurring with the bot this log is used to help identify what may have caused the problem.

Conditional

Allows different responses depending on input conditions. Mostly just useful in aliases/regexp triggers to make decisions about what to do at output time.

Feel free to play around with it to see if you can come up with some exciting new uses for this. :)

Config

Change gribble configuration options

Dunno

Allows customization of error responses. We use it to output a more helpful message instead of the stock "Invalid command".

Filter

Allows to send strings through various conversion filters. Generally just for fun.

Format

Performs various string manipulation functions, e.g. retrieving just one field from a string. Mostly just useful for various automatic bot responses due to regexps/aliases.

Network

Manage connections to IRC networks.

Owner

Various bot control functions.

Plugin

Some plugin info functions.

Reply

Tell bot to say/action/pm stuff.

Seen

Used to show information about when a user was last seen and what was said. It provides the following commands:

  • any - Returns the last time <nick> was seen and what <nick> was last seen saying or doing.
  • last - Returns the last thing said in <channel>
  • seen - Returns the last time <nick> was seen and what <nick> was last seen saying.
  • since - Returns the messages since <nick> last left the channel.
  • user - Returns the last time <name> was seen and what <name> was last seen saying.

NOTE: any, seen, and user are all VERY similar, checkout the help for each one for details.

Services

Used to identify to network services.

Status

Shows bot status information.

Topic

Channel topic read/write functionality.

Unix

Access to some unix utilities. Try the perennial favorite fortune. :)

User

User database management functions.

Utilities

Some other miscellaneous utilities. Try the ever-popular echo command (say stuff), as well as the ignore command (do nothing).

Web

Some web-related utilities.


Related

Wiki: Command_List
Wiki: Main_Page
Wiki: Supybot_Resources