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