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.
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
1. How to address the bot. Here's how the bot can be addressed:
2. Some of the most-used features of the bot are:
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:
!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
The rest is discoverable - so go on, discover. :)
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.
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.
Provides some statistics about channel usage. It's only here for fun.
Feel free to explore the commands inside with list and misc help.
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.
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.
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. :)
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
Interface to the Google API. Some of the more useful commands are:
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.
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:
,,(\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"
The most useful commands here are:
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.
Use the weather command from this plugin to get weather info for your location. Just for fun. :)
Provides some administrative functions.
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.
Various channel management functions
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.
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. :)
Change gribble configuration options
Allows customization of error responses. We use it to output a more helpful message instead of the stock "Invalid command".
Allows to send strings through various conversion filters. Generally just for fun.
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.
Manage connections to IRC networks.
Various bot control functions.
Some plugin info functions.
Tell bot to say/action/pm stuff.
Used to show information about when a user was last seen and what was said. It provides the following commands:
NOTE: any, seen, and user are all VERY similar, checkout the help for each one for details.
Used to identify to network services.
Shows bot status information.
Channel topic read/write functionality.
Access to some unix utilities. Try the perennial favorite fortune. :)
User database management functions.
Some other miscellaneous utilities. Try the ever-popular echo command (say stuff), as well as the ignore command (do nothing).
Some web-related utilities.