webster/
Webster the Spellbot (Version 3.3, Perl)
   Hacked by Alan Schwartz (Javelin@BelgI, Paul@Dune)
   Socket and telnet code by David Noble (see files for email)
   (No warranty granted or implied :)

What's new (3.3):
	Hooks for a +suggest command, which uses webster -s to report
suggested spellings of a given (misspelled) word. Suggested by Sean Fike.

What's new (3.2):
	Players with multi-word names are handled correctly.
	spellobj.msh works right now.

What's new (3.1):
	Fixes a security problem in Webster 3.
	Webster is written in perl and is much faster, more responsive,
smaller, and better behaved.
	If disconnected, Webster will try to log back into your MUSH
every 30 minutes. Remember to kill the process if you don't want that.


Webster is a MUSH robot which provides an interface to the Unix
'spell' and 'webster' commands (spell-checking, definition, and suggestion),
as well as a way for players to dump messages into a file on the
game account (used on DuneMUSH for the +rumor command, could also
make a nice +gripe, etc.)

File list:
	web		The robot code itself
	sock.pl		Socket support
	telnet.pl	Telnet support
	addspell	Useful utility for local dictionaries
	spellobj.msh	A MUSH master room object to use as
			a safe interface to Webster.

INSTALLATION

I. From the account

Edit web to set parameters. In particular, don't set Webster's password
	($web_pass) to an English word. Most of the parameters are
	pretty self-explanatory. IF you don't have the webster program,
        comment out the line that starts with &define.
	The very first line of web and each .pl file should point to 
	perl on your system.
If you want to use British spellings, find the line in web's spell
        subroutine and add a -b to the spell command's command-line.
Be sure to chmod +x all the perl files.

II. From the MUSH

Create a character named Webster, with the appropriate password from web.h
Create a room for Webster, and put it there. Link it there. Set the
	home FLOATING, and don't make exits into it. Webster is operated
	solely by pages.
Spellobj.msh is some uploadable mush code to be used on a master room
	global commands object (it includes a little help paragraph).
If you want to use spellobj.msh, you should upload it (with a client
	or by hand) and then page-lock (@ulock) Webster to you and to
	the object that spellobj.msh is on. This prevents other players
	from somehow forcing Webster to disconnect, and sets up the
	+spell <obj>/<attr> and +spell <test> commands. Spellobj just
	handles the +spell command, not +define or +rumor, so you'll
	have to figure out how to do those yourself. It's easy.

III. From the account again:

Run webster:
	From csh, web >& web.log &
  	From sh, web 2> web.log 1>&2 &, I think.


USING WEBSTER IN THE MUSH

Once Webster is connected, anything paged to Webster will be spellchecked,
unless Webster's password is part of the page, in which case Webster
will disconnect from the MUSH and the program will stop.

Webster assumes that the player paging it is to get the answer, and that
the first word of the page is the name of an attribute. This is useful
with the +spell <obj>/* command, so that Webster can return more useful
information about spelling errors. This is also why I recommend using 
+spell and page-locking webster, rather than allowing players to page
directly - Webster is easily spoofed. (In fact, +spell works by spoofing
Webster).

THE ADDSPELL SCRIPT

The addspell script is a convenient way to add words to your local
dictionary, which, according to the spell man page, should be a sorted
list of words, one per line (you don't have to add plurals, since spell
does derivations).

Syntax: addspell <word>
Addspell will create the local dictionary (edit it to set the filename)
if it doesn't exist, and will add the word if it's not already in the
dictionary, and resort the dictionary.

FUTURE RELEASES

Maybe. In any case, don't mail me with ideas for changes and stuff, since
this is just an aside for me. Thought I'd share it, is all. Hope you 
improve it.

A really great thing to do would be a Maas-Neotek (or other exploring robot)
which walks around the MUSH and automatically spellchecks rooms as it enters
them. Maybe I'll do that. :)

 - Alan (alansz@cogsci.berkeley.edu)
   Paul@DuneMUSH
   Javelin@Belgariad
   Belkira@Belgariad II
   Indena@Mua'kaar
   Faust@Pandemonium