Go to file
Neale Pickett 491c65415c fix forum for privmsg 2012-01-06 17:14:45 -06:00
cobalt fix a run bug 2011-09-20 10:39:41 -05:00
.gitignore Fix a few bugs 2011-01-07 15:38:20 -07:00
COPYING Import OCS, add COPYING file 2009-03-02 18:49:21 -07:00
Makefile fix forum for privmsg 2012-01-06 17:14:45 -06:00
README Change to bot directories 2011-06-09 22:27:24 -05:00
bot Change to bot directories 2011-06-09 22:27:24 -05:00
connect-handler fix forum for privmsg 2012-01-06 17:14:45 -06:00
dispatch.c Fix a few bugs 2011-01-07 15:38:20 -07:00
dump.h C version 2011-01-06 21:08:21 -07:00
firebot Merge commit 'origin/master' 2011-01-10 14:11:31 -06:00
infobot Change to bot directories 2011-06-09 22:27:24 -05:00
irc-filter.c fix forum for privmsg 2012-01-06 17:14:45 -06:00
notes make notes case-insensitive 2011-09-20 11:08:14 -05:00
rollforinitiative.py Make lots more happen in a script 2010-12-14 17:13:52 -07:00
run fix a run bug 2011-09-20 10:39:41 -05:00
whuffie One more change 2011-01-10 14:11:58 -06:00

README

bot
===

This is a suite of simple programs which allow you to write an IRC bot.
It is based on the Unix principle that one program should do one thing,
and makes extensive use of pipes, child processes, and passing of file
descriptors.

Unless you are a seasoned Unix programmer or are willing to become one,
this is not the bot you're looking for.


dispatch
--------

Reads lines from stdin (or fd 6).  Each line causes a fork and exec of a
specified program; the line is sent as the last argument.  Any output
from children is passed through to stdout (or fd 7), optionally rate
limited.  A fifo can optionally be specified on the command line;
anything written to it is treated identically to child output.


irc
---

Parses its last argument as a line from IRC.  Determines prefix,
command, sender, forum (channel or user), and text; then invokes a
specified program with these as arguments.  Also responds to server
pings as a convenience.


run
---

[run BOTDIR] will run the bot contained in $BOTDIR.  It should contain
the following files (see cobalt in the distribution for examples):

* connect : program to open connection
* login   : program to log in to IRC
* handler : program to handle IRC messages


firebot
-------

A private message handler providing a few handy commands.


infobot
-------

A private message handler providing infobot-like functionality.


notes
-----

A private message handler allowing users to leave notes for each other.


whuffie
-------

A private message handler keeping track of whuffe (also known as karma),
which is really just a meaningless number associated with your nick,
which other people can manipulate but you can't.



Putting it all together
=======================

A full chain of programs would look something like

    tcpclient -> connect-handler -> dispatch -> handler

and would be invoked as

    $ tcpclient irc.host.org 6667 ./connect-handler cobalt


Author
------

Neale Pickett <neale@woozle.org>