]> git.donarmstrong.com Git - infobot.git/blob - doc/infobot.config.pod
* New pod doc for infobot.config
[infobot.git] / doc / infobot.config.pod
1 =pod
2
3 =head1 NAME
4
5 infobot.config - Main infobot configuration file
6
7 =head1 SYNOPSIS
8
9 B<set> E<lt>B<variable>E<gt> E<lt>B<value>E<gt>
10
11 =head1 DESCRIPTION
12
13 This file is the main configuration file for your bot. Empty lines are ignored
14 as usual, and any lines which start with a C<#> are treated as comments.
15
16 When you first setup your infobot, you should start by copying the sample file,
17 found in S<F</path/to/bot/files/sample/infobot.config>> to the
18 S<F</path/to/bot/files>> directory. Once this is done, start up your favorite
19 editor and carefully go over the settings one by one, before you attempt to
20 start your bot.
21
22 Fields that are commented out by default, are typically not needed. Use your
23 own judgement.
24
25 =head1 OPTIONS
26
27 Below is a list of the variables that infobot currently recognises, along with
28 a short blurb about each.
29
30 =head2 Basic IRC info
31
32 =over
33
34 =item B<set ircNick> E<lt>B<nick>E<gt>
35
36 The name that you want your infobot to appear as on B<IRC>.
37
38 =item B<set ircUser> E<lt>B<user>E<gt>
39
40 The ident reply that you want your infobot to send if you don't already have a
41 running ident daemon on your system.
42
43 =item B<set ircName> E<lt>B<description of your bot>E<gt>
44
45 This sets the name that appears as "Real Name" when someone does a C</WHOIS> on
46 your infobot's nick on B<IRC>.
47
48 =item B<set ircPasswd> E<lt>B<your_password>E<gt>
49
50 If this variable is set, then the server will send it when connecting to the
51 B<IRC> server. Most networks only use this for server administrators to gain
52 their operator status. However, B<Freenode> (B<http://www.freenode.net/>) uses
53 this server password to identify you automatically to nickserv on connect.
54
55 =item B<set ircUMode> E<lt>B<+>|B<->E<gt>E<lt>B<modes>E<gt>[E<lt>B<+>|B<->E<gt>E<lt>B<modes>E<gt>...]
56
57 This is a list of user modes that the infobot should attempt to set after it
58 has established a connection with the B<IRC> server.
59
60 =item B<set ircHost> E<lt>B<ip address>|B<dns name>E<gt>
61
62 Typically this setting isn't used. However, if you have a muti-homed server
63 (multiple network cards), and you don't want your bot to use the default route
64 out of the network, you can set this to the B<IP Address> or B<hostname> of the
65 interface that you want it to use when connecting to B<IRC>.
66
67 =item B<set owner> E<lt>B<owners_user_name>E<gt>
68
69 Set this to the nick that matches the name of the account that you set in the
70 F<infobot.users> file for yourself.
71
72 I<FIXME: Does this actually do anything yet?>
73
74 =item B<set nickServ_pass> E<lt>B<password>E<gt>
75
76 If the server your bot is connecting to supports nick services, you can set the
77 password here that will be used to identify itself with.
78
79 =item B<set chanServ_ops> E<lt>B<#chan1>E<gt> [E<lt>B<#chan2>E<gt> ... E<lt>B<#chanN>E<gt>]
80
81 If the server your bot is connecting to supports channel services, you can set
82 a space seperated list of channels that the bot should automatically request
83 B<OP> in. Currently, the bot uses the format: S<C</msg chanserv OP #channel>>
84 for each channel in the list, after it has sucessfully joined the channel.
85
86 =item B<set quitMsg> E<lt>B<quit message>E<gt>
87
88 When your bot intentionally disconnects from a server, it will display the
89 following quit reason to users who see it quit.
90
91 I<Note: some servers can optionally, or forcefully, hide this message>
92
93 =item B<set tempDir> E<lt>B</path/to/directory>E<gt>
94
95 This sets a path to a temporary directory which infobot can use. Most people
96 find this best set to F</tmp>.
97
98 =back
99
100 =head2 Factoid database configuration
101
102 =over
103
104 =item B<set DBType> E<lt>B<none>|B<mysql>|B<SQLite>|B<SQLite2>|B<pgsql>E<gt>
105
106 If you have enabled factoid support, this setting will control the backend
107 database that you use to save factoids and other various information.
108
109 If you choose SQLite or SQLite2, you will need to ensure that you have
110 installed S<libdbd-sqlite-perl> on your system. Also, SQLite will support a
111 version 2 or 3 of the library, where as SQLite2 will force the bot to use
112 version 2 specifically.
113
114 I<FIXME: Does C<none> type actually work without breaking non factoid related>
115 I<db saves?>
116
117 =item B<set DBName> E<lt>B<DB name>|B</path/to/store/sqlite>E<gt>
118
119 If you have database support enabled, this setting will tell the bot what
120 database it should use. If you are using SQLite, it should be set to the
121 directory where you want to store the database files on disk.
122
123 I<FIXME: Is this a file or a directory?>
124
125 =item B<set SQLHost> E<lt>B<hostname>|B<IP address>E<gt>
126
127 If you are using a database, this specifies the name of the host that the
128 database resides on. If you are using SQLite, this value should be commented
129 out.
130
131 I<FIXME: If using SQLite, does it need to be commented out, or is it ignored?>
132
133 =item B<set SQLUser> E<lt>B<username>E<gt>
134
135 If you are using a database, this specifies the user name that the bot should
136 use to login with. If you are using SQLite, this value should be commented out.
137
138 I<FIXME: If using SQLite, does it need to be commented out, or is it ignored?>
139
140 =item B<set SQLPass> E<lt>B<password>E<gt>
141
142 If you are using a database, this specifies the password that the bot should
143 use to login with. If you are using SQLite, this value should be commented out.
144
145 I<FIXME: If using SQLite, does it need to be commented out, or is it ignored?>
146
147 =item B<set SQLDebug> E<lt>B<filename>E<gt>
148
149 If you are using a database, this specifies the filename that you wish to log
150 all B<SQL> commands to. On some platforms, you may be able to use a "-" to
151 specify B<stdout> so that it displays on the console instead.
152
153 =back
154
155 =head2 Logfile configuration
156
157 These settings control the various aspects of how the bot logs the console.
158
159 =over
160
161 =item B<set logfile> E<lt>B<directory>|B<filename>E<gt>
162
163 This setting tells the bot where to log everything you see on the console
164 screen.  You can optionally use a variable such as B<$ircUser> in the filename
165 if you want to name the logs after the name of the bot. If this setting is left
166 out, logging is disabled.
167
168 I<FIXME: What if it is a directory?>
169
170 =item B<set logType> E<lt>B<DAILY>|B<DEFAULTE><gt>
171
172 If you have enabled logging, this setting will determine if the log file should
173 be rotated on a daily basis, or use on continuous file.
174
175 I<FIXME: What happens if it is unset?>
176
177 =item B<set maxLogSize> E<lt>B<max size in bytes>E<gt>
178
179 If you have enabled logging, this setting will determine the maximum size of
180 the log file. The size should be specified in bytes. A reasonable size is
181 10000000 (10MB).
182
183 I<FIXME: What happens when the maximum is reached? What if its unset?>
184
185 =back
186
187 =head2 Factoid-related configuration
188
189 These settings govern how factoids are managed.
190
191 =over
192
193 =item B<set factoids> E<lt>B<true>|B<false>E<gt>
194
195 This is a boolean value that decides if you want factoid support enabled for
196 your bot. Typically you want you leave this enabled.
197
198 =item B<set factoidDeleteDelay> E<lt>B<number of days>E<gt>
199
200 When you delete a factoid, it isn't immediately removed. Instead, the factoid
201 key is renamed with a "#DEL#" appended to it. This allows you to undelete
202 factoids that were erased by accident.
203
204 If you have factoid support enabled, this setting will determine how long
205 deleted factoids stay in the database before they are automatically purged. A
206 value of B<0> will disable auto purging of deleted factoids.
207
208 =item B<set maxKeySize> E<lt>B<integer>E<gt>
209
210 If you have factoid support enabled, this value determines the maximum length
211 of the factoid key.
212
213 =item B<set maxDataSize> E<lt>B<number of bytes>E<gt>
214
215 If you have factoid support enabled, this value determines the maximum length
216 of the value for a factoid key.
217
218 =item B<set learn> E<lt>B<ADDRESSED>|B<HUNGRY>E<gt>
219
220 If you have factoid support enabled, this value determines how the bot reacts
221 to public chatter.
222
223 In B<ADDRESSED> mode, the bot will only learn the factoid if you address it
224 specifically by name S<(eg: Botname: ...)>, or by B<!trigger>. This is the
225 recommended mode.
226
227 In B<HUNGRY> mode, the bot will take assuming everything said is an attempt to
228 talk with the bot. This includes things like welcoming you when you say thanks
229 and other various spam. This will also tend to catch useless garbage in your
230 database since the word "is" will be recognised as an attempt to teach it a new
231 factoid. Use at your own risk. ;)
232
233 =item B<set acceptUrl> E<lt>B<REQUIRE>|B<OPTIONAL>|B<REJECT>E<gt>
234
235 The bot has the ability to recognize B<URL>'s. This setting will control what
236 it accepts as a B<URL>.
237
238 In B<REQUIRE> mode, the bot will need the protocol to be specifically mentioned
239 for it to be considered (eg: file://, http://).
240
241 In B<OPTIONAL> mode, the bot will accept just about anything.
242
243 In B<REJECT> mode, the bot will not accept any B<URL>'s. This makes it easy to
244 run with different nicks and styles.
245
246 I<FIXME: What is the point of REJECT?>
247
248 =item B<set profanityCheck> E<lt>B<true>|B<false>E<gt>
249
250 This determines if the bot should accept or reject factoids which contain foul
251 language.
252
253 =item B<set allowTelling> E<lt>B<true>|B<false>E<gt>
254
255 The the has the ability for people to ask the bot to tell someone else about
256 one of its factoids. This setting controls if that is allowed or not.
257
258 =item B<set friendlyBots> [B<botname> [B<bot2> ... B<botN>]]
259
260 An infobot has a built in protocol which allows them to communicate with each
261 other. If a user asks your bot for a factoid that doesnt exist, the bot will
262 attempt to ask each bot in this space seperated list for it.  If one of the
263 bots has an answer, your bot will save it to its database, and tell it to the
264 person who requested it.
265
266 I<NOTE: Many bots are set to require that your bot be in a channel with it>
267 I<before they will allow your bot to talk to it.>
268
269 =back
270
271 =head2 Factoid related and unrelated features, mainly Extras.
272
273 These settings are basically stuff that doesn't fit anywhere else.
274
275 =over
276
277 =item B<set addressing> E<lt>B<REQUIRE>|B<OPTIONAL>E<gt>
278
279 This setting controls how your bot responds (not related to learning factoids)
280 to people saying stuff in a channel. With B<REQUIRE>, the bot will only say
281 something if it is addressed (via nick or trigger). With B<OPTIONAL>, the bot
282 will respong (not learn) irrelevent of addressing.
283
284 =item B<set talkMethod> E<lt>B<PRIVATE>|B<DEFAULT>E<gt>
285
286 This setting controls how the bot should send messages. With B<PRIVATE>, the
287 bot will reply to private messages only, rejecting public messags. With
288 B<DEFAULT>, the bot will reply to publid and private queries.
289
290 =item B<set minLengthBeforePrivate> E<lt>B<integer>E<gt>
291
292 This will determine how long the output string of a reply should be before it
293 is changed from public response, to a private message. A value of B<192> is
294 recommended. You can disable this feature by commenting out the setting.
295
296 =item B<set disallowOutsiders> E<lt>B<true>|B<false>E<gt>
297
298 This setting, if enabled, will allow people outside and channels that your bot
299 is on to use the bot.
300
301 =item B<set ignoreAutoExpire> E<lt>B<minutes>E<gt>
302
303 This setting controls the amount of time for auto-ignore (flooding) to expire.
304
305 =item B<set ignoreTempExpire> E<lt>B<minutes>E<gt>
306
307 This controls the amount of time for forced-online ignore to expire in minutes.
308
309 =back
310
311 =head2 Internal (simple) bot commands
312
313 =over
314
315 =item B<set forking> E<lt>B<true>|B<false>E<gt>
316
317 The controls forking in the bot. This should be disabled for non-nix operating
318 systems, or to reduce memory usage. Disabling should also make the bot work on
319 Win32 and MacOS.
320
321 =item B<set backlog> E<lt>B<number lines>E<gt>
322
323 This controls the maximum number of lines to use for a backlog buffer on the
324 console.  Fairly handy for looking back a page or two to see what the bot is
325 doing. Typically not needed when used with screen sessions.
326
327 =back
328
329 =head2 Extra features
330
331 =over
332
333 =item B<set httpProxy> E<lt>B<http://HOSTNAME:PORT/>E<gt>
334
335 This proxy is used for any module in the bot which requires LWP + http proxy.
336
337 =item B<set countdown> E<lt>B<true>|B<false>E<gt>
338
339 This determines if the bot should use the countdown file to remember and
340 announce special dates.
341
342 =item B<set Debian> E<lt>B<true>|B<false>E<gt>
343
344 This setting controls the Debian module for file and package searching. If it
345 is enabled, users of the bot will be allowed to search, otherwise it will be
346 completly disabled.
347
348 =item B<set freshmeat> E<lt>B<true>|B<false>E<gt>
349
350 The bot has the ability to search B<freshmeat.net> for packages. This setting
351 controls if that is enabled or not.
352
353 =item B<set freshmeatRefreshInterval> E<lt>B<hours>E<gt>
354
355 If the B<freshmeat.net> search is enabled, this setting will control how often
356 the bot should update the index in hours.
357
358 =item B<set freshmeatForFactoid> E<lt>B<true>|B<false>E<gt>
359
360 If B<freshmeat.net> is enabled as well as this setting, the bot will search
361 freshmeat for factoids which do not exist.
362
363 =item B<set Uptime> E<lt>B<true>|B<false>E<gt>
364
365 This controls if the bot should store uptime records or not.
366
367 =back
368
369 =head2 Miscellaneous configuration options
370
371 =over
372
373 =item B<set VERBOSITY> E<lt>B<0>|B<1>|B<2>E<gt>
374
375 Controls how verbose the console output should be. A setting of B<0> will
376 disable verbosity. A setting of B<1> will give standard information. And a
377 setting of B<2> will give you extra information.
378
379 =item B<set WARN> E<lt>B<true>|B<false>E<gt>
380
381 This setting controls if the bot console will display warning messages or not.
382
383 =item B<set DEBUG> E<lt>B<true>|B<false>E<gt>
384
385 If the bot console should display debugging messages or not.
386
387 =item B<set WIP> E<lt>B<true>|B<false>E<gt>
388
389 If the bot should activate work in progress (experimental) features.
390
391 I<FIXME: Likely to be removed.>
392
393 =item B<set useStrict> E<lt>B<true>|B<false>E<gt>
394
395 This setting controls if the bot should "use strict" in its code. Handy to have
396 enabled for catching problems in the code. Best leave this enabled.
397
398 =item B<set Interface> E<lt>B<IRC>|B<CLI>E<gt>
399
400 This controls the interface that the bot should use. Most people will want to
401 use B<IRC> which connects the bot to an IRC server. Optionally, you can setup a
402 standalone bot by setting this to B<CLI>. In B<CLI> mode, the bot will not
403 connect to a server, but instead allow you to use it on the console as if it
404 were being used in a private message on IRC.
405
406 =item B<set topicAuthor> E<lt>B<true>|B<false>E<gt>
407
408 This setting controls how the bot adds topic's in a channel. If enabled, topics
409 managed with !topic add foo, will show the nick of the person who set it with
410 the format: "foobar (nick)" in ()'s. If it is disabled, only the topic will be
411 added, not the creator.
412
413 =back
414
415 =head2 Debugging
416
417 =over
418
419 =item B<set DumpVars> E<lt>B<true>|B<false>E<gt>
420
421 If the bot should dump its variables or not.
422
423 =item B<set dumpvarsAtExit> E<lt>B<true>|B<false>E<gt>
424
425 If the bot should dump its variables when it shuts down.
426
427 =item B<set dumpvarsLogFile> E<lt>B<filename.log>E<gt>
428
429 If the dumped variables should go to a sepcific log file.
430
431 =item B<set DumpVars2> E<lt>B<true>|B<false>E<gt>
432
433 If the bot should dump extra variables.
434
435 =item B<set symdumpLogFile> E<lt>B<filename.log>E<gt>
436
437 The file the extra variables should be dumped to.
438
439 =back
440
441 =head1 BUGS
442
443 There is a lot of upper/lower case issues with some of the variables. It is not
444 know if and or all of them are case sensitive. Also, Many of the original
445 settings ask for "[0|1]", and depending on how the code is written, a B<TRUE>
446 or B<FALSE> may not work for certain variables. This is considered a B<BUG>,
447 and should be reported as such.
448
449 =head1 CONTACT
450
451 If you need to contact us to submit patches or whatever, please try out mailing
452 list available at S<B<infobot-devel@lists.sourceforge.net>>. If you would
453 rather a more realtime conversation with us, we can be found in the B<#infobot>
454 channel on the B<Freenode> network (B<irc://irc.freenode.net>).
455
456 =cut
457