The Grubby Admin Manual
Josef Spillner, 2001-10-12 Updated 2002-08-18


Table Of Contents:
Installation
Admin commands
Exec module
Embed module
News module (modexec)
Dictionary module (modexec)
Meeting module (modexec)
Translation module (modexec)




Installation

Grubby consists of the binary "grubby", the perl script "grubby-config", lots of plugins (shared libraries), scripts for modexec and modembed, and data and translation files. Everything should install fine. All you have to do then is to call grubby-config, which gives you a full default installation. You might want to cut the options down, just edit the configuration files under $HOME/.ggz. Then launch the bot while having a ggzd running somewhere. If it fails, make sure you didn't cut too much options. Read docs/Setup for a sample file.


Admin Commands

The owner of grubby, as specified in the configuration, may issue some more commands than the other players. Here's a list of what the admin can do:



Exec Module

This plugin executes external scripts and programs, writes to their stdin and reads from their stdout. It should be noted that the more external processes are spawned in serial order, the more time it consumes, and grubby may not react fast enough. Whereever available, a native plugin (shared library) should be preferred.


Embed Module

Similar to modexec, save it embeds the scripts directly. This works for python and ruby so far and requires that support for those languages has been enabled at compile time. One advantage is that all commands are executed much faster.


News Module (modexec)

Several news sites offer RDF files which contain all headlines and links to the articles in XML format. Now when the user requests news from one of those sites, the module first fetches the latest RDF file from the target host (needs the perl module Net::Telnet installed), and randomly seeks one of the headlines which is to be returned.


Dictionary Module (modexec)

This module is presentated by the perl script "dict.pl", which in turn needs several dictionaries installed, or at least one of them. Under Unix, those are mostly under /usr/share/trans/X-Y, where X and Y are lowercase language letters, like "en" for English. The dictionary files contain key:value pairs of words. Now when a search is done, the module simply opens the appropriate file and scans it. In the case of inverse search, key and value are swapped. The module returns a concatenated string which contains all translations it found for the key word.


Meeting Module (modexec)

This one needs Ruby installed, preferably version 1.6+. Its configurable database goes normally to /tmp/meetings, you might want to change that. It uses an interesting technique to store its data: Instead of writing key-value pairs, it dumps the whole object so one can transfer it from one host to another :)


Translation Module (modexec)

In case common shell tools (cut, grep, ...) and wget are available, the script webtrans.sh can be used for translations. It stores translated pairs of sentences into its cache (~/.ggz/grubby/google).


This documentation is Copyright (C) 2001 Josef Spillner.
Published under the GNU Free Documentation License.