1 This is bobot++.info, produced by makeinfo version 4.1 from
4 This file documents Bobot++ by Clinton Ebadi and Etienne Bernard
5 (original author, no longer works on program).
7 Copyright 2002 Clinton Ebadi
9 Permission is granted to copy, distribute and/or modify this document
10 under the terms of the GNU Free Documentation License, Version 1.1 or
11 any later version published by the Free Software Foundation; with no
12 Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
16 File: bobot++.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir)
18 This document describes Bobot++ by Clinton Ebadi and Etienne Bernard
19 (original author, no longer works on program).
21 This document applies to version 2.1.0 of the program named Bobot++
23 Copyright 2002 Clinton Ebadi
25 Permission is granted to copy, distribute and/or modify this document
26 under the terms of the GNU Free Documentation License, Version 1.1 or
27 any later version published by the Free Software Foundation; with no
28 Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
41 File: bobot++.info, Node: Introduction, Next: Configuration, Prev: Top, Up: Top
46 This manual feels abused and neglected because it has almost no
50 File: bobot++.info, Node: Configuration, Next: Scripting, Prev: Introduction, Up: Top
55 Bobot++ is easy to configure. The configuration file format may be
56 changing in the 2.1 series, so it is not documented for now. See the
57 `examples' directory for an example configuration.
61 * Configuration File Syntax::
62 * Configure File Placement::
65 File: bobot++.info, Node: Configuration File Syntax, Next: Configure File Placement, Prev: Configuration, Up: Configuration
67 Configuration File Syntax
68 =========================
73 File: bobot++.info, Node: Configure File Placement, Prev: Configuration File Syntax, Up: Configuration
75 Configuration File Placement
76 ============================
78 Bobot++ will look in `/etc/bobotpp/default/' for its default config
79 if none is specified on the command line. Put the configuration files
80 you want to be loaded by default in this directory. If you are not root
81 or you want to have your own personal configration, put it in
82 `~/.bobotpp/config/default/'.
85 File: bobot++.info, Node: Scripting, Next: Concept Index, Prev: Configuration, Up: Top
90 Bobot++'s most powerful feature is its scripting system. You write
91 scripts using Guile Scheme. This manual does not cover how to use Guile
92 or how to learn Scheme. *Note Guile Reference Manual: (guile)Top, for
93 the Guile reference manual and
94 <http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html> for a
95 good tutorial on Scheme.
97 Note that in previous versions the scripting commands where in the
98 form `bot-FUNCTION'. They are now in the form `bot:FUNCTION'. The old
99 names are still available, but are deprecated and will be removed in
100 Bobot++ 2.4. The command `perl -pi -e ``s/bot-/bot:/g'' YOUR-FILES'
101 should be enough to convert your code to use the new functions.
105 * Adding New Commands::
109 File: bobot++.info, Node: Adding New Commands, Next: Hooks, Prev: Scripting, Up: Scripting
117 File: bobot++.info, Node: Hooks, Prev: Adding New Commands, Up: Scripting
122 Hooks are a powerful feature of Bobot++. Hooks are a hybrid of ircII
123 hooks and tiny fugue (a MUD bot) hooks. The basic idea of a hook if
124 that you match a text against regular expression and call a function if
125 text in a message matches that regex. The different types of hooks
126 provided by Bobot++ correspond to the different classes of messages
127 that Bobot++ can recieve. A Hook also has several properties, including
128 its priority and whether or not it is a fallthrough hook. Higher
129 priority hooks are executed before lower priority hooks and fallthrough
130 hooks are executed before non-fallthrough hooks. A fallthrough hook can
131 match and processing of hooks will continue; as soon as the first
132 non-fallthrough hooks matches processing of hooks stops.
140 File: bobot++.info, Node: Creating a Hook, Next: Hook Types, Prev: Hooks, Up: Hooks
145 To add a new hook you use the function `bot:addhook'. `bot:addhook'
146 is prototyped as `(bot:addhook type regex function pri fall)'. `type'
147 specifies the type of hook (the types of hooks are listed in *Note Hook
148 Types::). `regex' is a standard regular expression. If `regex' is
149 matched, `function' will be called. `function' will take a different
150 number of args depending on the hook type. `pri' specifies the priority
151 of the hook-higher priority hooks are executed first. This argument is
152 optional and defaults to `0'. `fall' is `#t' if the hook is a
153 fallthrough hook and `#f' is the hook is not a fallthrough hook. This
154 arg is also optional and default to `#t'.
157 File: bobot++.info, Node: Hook Types, Prev: Creating a Hook, Up: Hooks
162 Here is a list of the various hooks are notes on each one. The
163 general format of a hook is:
165 * `hooks/name' (this is the Scheme variable name of the hook)
166 - Description of the hook
177 That said, here is the list of available hooks:
180 - Description of the hook
187 - Description of the hook
194 - Description of the hook
201 - Description of the hook
208 - Description of the hook
215 - Description of the hook
222 - Description of the hook
229 - Description of the hook
236 - Description of the hook
243 - Description of the hook
250 - Description of the hook
257 - Description of the hook
264 - Description of the hook
271 - Description of the hook
278 - Description of the hook
284 * `hooks/public-notice'
285 - Description of the hook
292 - Description of the hook
299 - Description of the hook
306 - Description of the hook
313 File: bobot++.info, Node: Concept Index, Next: Function Index, Prev: Scripting, Up: Top
320 File: bobot++.info, Node: Function Index, Next: Variable Index, Prev: Concept Index, Up: Top
327 File: bobot++.info, Node: Variable Index, Prev: Function Index, Up: Top
337 Node: Introduction
\7f1228
338 Node: Configuration
\7f1419
339 Node: Configuration File Syntax
\7f1801
340 Node: Configure File Placement
\7f2003
341 Node: Scripting
\7f2477
342 Node: Adding New Commands
\7f3316
344 Node: Creating a Hook
\7f4363
345 Node: Hook Types
\7f5153
346 Node: Concept Index
\7f7626
347 Node: Function Index
\7f7758
348 Node: Variable Index
\7f7897