--- /dev/null
+# CommandStubs.pl
+&addCmdHook("extra", 'd?bugs', ('CODEREF' => 'DBugs::Parse',
+&addCmdHook("extra", 'dauthor', ('CODEREF' => 'Debian::searchAuthor',
+&addCmdHook("extra", '(d|search)desc', ('CODEREF' => 'Debian::searchDescFE',
+&addCmdHook("extra", 'dnew', ('CODEREF' => 'DebianNew',
+&addCmdHook("extra", 'dincoming', ('CODEREF' => 'Debian::generateIncoming',
+&addCmdHook("extra", 'dstats', ('CODEREF' => 'Debian::infoStats',
+&addCmdHook("extra", 'd?contents', ('CODEREF' => 'Debian::searchContents',
+&addCmdHook("extra", 'd?find', ('CODEREF' => 'Debian::DebianFind',
+&addCmdHook("extra", 'insult', ('CODEREF' => 'Insult::Insult',
+&addCmdHook("extra", 'kernel', ('CODEREF' => 'Kernel::Kernel',
+&addCmdHook("extra", 'listauth', ('CODEREF' => 'CmdListAuth',
+&addCmdHook("extra", 'quote', ('CODEREF' => 'Quote::Quote',
+&addCmdHook("extra", 'countdown', ('CODEREF' => 'Countdown',
+&addCmdHook("extra", 'lart', ('CODEREF' => 'lart',
+&addCmdHook("extra", 'convert', ('CODEREF' => 'convert',
+&addCmdHook("extra", '(cookie|random)', ('CODEREF' => 'cookie',
+&addCmdHook("extra", 'u(ser)?info', ('CODEREF' => 'userinfo',
+&addCmdHook("extra", 'rootWarn', ('CODEREF' => 'CmdrootWarn',
+&addCmdHook("extra", 'seen', ('CODEREF' => 'seen', 'Identifier' =>
+&addCmdHook("extra", 'dict', ('CODEREF' => 'Dict::Dict',
+&addCmdHook("extra", 'slashdot', ('CODEREF' => 'Slashdot::Slashdot',
+&addCmdHook("extra", 'uptime', ('CODEREF' => 'uptime', 'Identifier' => 'uptime',
+&addCmdHook("extra", 'nullski', ('CODEREF' => 'nullski', ) );
+&addCmdHook("extra", '(fm|freshmeat)', ('CODEREF' => 'Freshmeat::Freshmeat',
+&addCmdHook("extra", 'verstats', ('CODEREF' => 'do_verstats' ) );
+ if ($message =~ m{
+ if ($message =~ /^($debiancmd)(\s+(.*))?$/i) {
+ if ($message =~ /^(?:search\s+)?(\S+)\s+for\s+['"]?(.*?)["']?\s*\?*$/i) {
+ if ($message =~ /^_stats(\s+(\S+))$/i) {
+ if ($message =~ /^($z)stats(\s+(\S+))?$/i) {
+ if ($message =~ /^list(\S+)(\s+(.*))?$/i) {
+ if ($message =~ /^(?:lame|nick)ometer(?: for)? (\S+)/i) {
+ if ($message =~ /^topic(\s+(.*))?$/i) {
+ if ($message =~ /^wingate$/i) {
+# Process.pl
+ if ($message =~ /^join(\s+(.*))?\s*$/i) {
+ if ($msgType =~ /private/ and $message =~ s/^identify//i) {
+ $message =~ s/^\s+|\s+$//g;
+ if ($msgType =~ /private/ and $message =~ s/^pass//i) {
+ $message =~ s/^\s+|\s+$//g;
+ if ($msgType =~ /public/ and $message =~ s/^\+//) {
+ next unless ($message =~ /^\Q$y\E\s*/);
+ if ($message =~ /how (the hell )?are (ya|you)( doin\'?g?)?\?*$/) {
+ if ($message =~ /you (rock|rewl|rule|are so+ coo+l)/ ||
+ $message =~ /(good (bo(t|y)|g([ui]|r+)rl))|(bot( |\-)?snack)/i)
+ if ($message =~ /^than(ks?|x)( you)?( \S+)?/i) {
+ return 'thank: no addr' unless ($message =~ /$ident/ or $talkok);
+ if ($message =~ /^(\S+)(--|\+\+)\s*$/ and $addressed) {
+# UserExtra.pl
+ if ($message =~ /^(asci*|chr) (\d+)$/) {
+ if ($message =~ /^ord(\s+(.*))$/) {
+ if ($message =~ /^hex(\s+(.*))?$/i) {
+ if ($message =~ /^crypt(\s+(.*))?$/i) {
+ if ($message =~ /^(cycle)(\s+(\S+))?$/i) {
+ if ($message =~ /^redir(\s+(.*))?/i) {
+ if ($message =~ /^rot13(\s+(.*))?/i) {
+ if ($message =~ /^cpustats$/i) {
+ if ($message =~ /^ircstats?$/i) {
+ if ($message =~ /^statu?s$/i) {
+ if ($message =~ /^wantNick$/i) {
+&addCmdHook("main", 'chan(stats|info)', ('CODEREF' => 'chaninfo', ) );
+&addCmdHook("main", 'cmd(stats|info)', ('CODEREF' => 'cmdstats', ) );
+&addCmdHook("main", 'factinfo', ('CODEREF' => 'factinfo',
+&addCmdHook("main", 'factstats?', ('CODEREF' => 'factstats',
+&addCmdHook("main", 'help', ('CODEREF' => 'help',
+&addCmdHook("main", 'karma', ('CODEREF' => 'karma', ) );
+&addCmdHook("main", 'i?spell', ('CODEREF' => 'ispell',
+&addCmdHook("main", 'd?nslookup', ('CODEREF' => 'DNS',
+&addCmdHook("main", 'tell|explain', ('CODEREF' => 'tell',
+&addCmdHook("main", 'news', ('CODEREF' => 'News::Parse',
+&addCmdHook("main", 'countrystats', ('CODEREF' => 'countryStats',
+# Modules/UserDCC.pl
+ if ($message =~ /^(exit|quit)$/i) {
+ if ($message =~ /^who$/) {
+ if ($message =~ /^tellme(\s+(.*))?$/i) {
+ if ($message =~ /^4op(\s+($mask{chan}))?$/i) {
+ if ($message =~ /^backlog(\s+(.*))?$/i) {
+ if ($message =~ /^dumpvars$/i) {
+ if ($message =~ /^kick(\s+(\S+)(\s+(\S+))?)?/) {
+ if ($message =~ /^mode(\s+(.*))?$/) {
+ if ($message =~ /^part(\s+(\S+))?$/i) {
+ if ($message =~ /^(lobotomy|bequiet)$/i) {
+ if ($message =~ /^(unlobotomy|benoisy)$/i) {
+ if ($message =~ /^op(\s+(.*))?$/i) {
+ if ($message =~ /^deop(\s+(.*))?$/i) {
+ if ($message =~ s/^say\s+(\S+)\s+(.*)//) {
+ if ($message =~ /^die$/) {
+ if ($message =~ m|^s([/,#])(.+?)\1(.*?)\1;?\s*$|) {
+ if ($message =~ /^jump(\s+(\S+))?$/i) {
+ if ($message =~ /^reload$/i) {
+ if ($message =~ /^reset$/i) {
+ if ($message =~ /^rehash$/) {
+ if ($message =~ /^chaninfo(\s+(.*))?$/) {
+ if ($message =~ /^(chanset|\+chan)(\s+(.*?))?$/) {
+ if ($message =~ /^(chanunset|\-chan)(\s+(.*))?$/) {
+ if ($message =~ /^newpass(\s+(.*))?$/) {
+ if ($message =~ /^chpass(\s+(.*))?$/) {
+ if ($message =~ /^chattr(\s+(.*))?$/) {
+ if ($message =~ /^chnick(\s+(.*))?$/) {
+ if ($message =~ /^([-+])host(\s+(.*))?$/) {
+ if ($message =~ /^([-+])ban(\s+(.*))?$/) {
+ if ($message =~ /^whois(\s+(.*))?$/) {
+ if ($message =~ /^bans(\s+(.*))?$/) {
+ if ($message =~ /^banlist(\s+(.*))?$/) {
+ if ($message =~ /^save$/) {
+ $message =~ s/^addignore/+ignore/;
+ $message =~ s/^(del|un)ignore/-ignore/;
+ if ($message =~ /^(\+|\-)ignore(\s+(.*))?$/i) {
+ if ($message =~ /^ignore(\s+(.*))?$/) {
+ if ($message =~ /^(\+|\-|add|del)user(\s+(.*))?$/i) {
+ if ($message =~ /^sched$/) {
-###
-# parameter settings file for blootbot
-# by the dms
+# parameter settings file for the infobot
+# kevin lenzo (lenzo@cs.cmu.edu)
+# modified by xk <xk@leguin.openprojects.net>
###
# [str] Interface: [IRC/CLI]
-# IRC -- Internet Relay Chat
-# CLI -- Command Line Interface
set Interface IRC
# IRC.
set ircName blootbot experimental bot
set ircUMode +iw
###set ircHost vh.virtualhost.org
-set join_channels #DEBIAN-bots
+
+set owner xk
# nickserv/chanserv support.
###set nickServ_pass PASSWORD
-###set chanServ_ops #chan1 #chan2
# default quit message
-set quitMsg adios amigos
+set quitMsg BEE RICHT BAK
+
+# temp directory.
+set tempDir /home/blootbot/Temp
#####
# logfile
# [str] Ability to remember/tell factoids
# none -- disable.
-# mysql -- MySQL
-# pgsql -- PostGreSQL (NOT SUPPORTED YET)
-# dbm -- Berkeley DBM
-### REQUIRED by factoids,freshmeat,karma,seen,...
+# mysql -- ...
+# pgsql -- postgresql (NOT SUPPORTED)
+# dbm -- berkeley dbm (SHOULD WORK 95%)
set DBType mysql
# [str] DBM filename prefix // MYSQL/PGSQL database.
# [str] Hostname of database server
set SQLHost localhost
-# [str] SQL user allowed to insert,update,delete stuff from tables.
+# [str] mysql user allowed to insert,update,delete stuff from tables.
set SQLUser blootbot
-# [str] SQL password.
-set SQLPass PASSWORD
+# [str] mysql password.
+set SQLPass bl00tb0t
-# [str] SQL Debug file.
+# [str] sql debug file.
###set SQLDebug SQL_debug.log
#####
# [bool] Factoid support.
set factoids true
-# [days] if not 0, number of days until factoid is deleted for good.
+# [days] After what time will deleted factoids will be deleted.
set factoidDeleteDelay 0
# [int] maximum length of factoid key.
# [bool] profanity checking.
set profanityCheck false
-# [0/1] tell so-and-so about such-and-such of a factoid.
-set allowTelling 1
-
# [str] other bots to ask for factoids which they may have.
#set friendlyBots url purl script mrapi
# addressing.
set addressing REQUIRE
-# [char] One-character easy recognition.
+# should work. FIXME.
set addressCharacter ~
# [str] how the bot should send messages.
set talkMethod DEFAULT
# [str] how long the output string should be before it is changed from
-# public to private. Value of '1' has same behaviour as superseeded
-# option 'preferReply PRIVATE'.
+# public to private.
# "+" before bot commands overrides this option temporarily.
###set minLengthBeforePrivate 192
# [int] maximum length of reply for Extras function before popping list to
# reduce number of elements.
-set maxListReplyLength 450
+set maxListReplyLength 300
# [int] maximum number of elements in list allowed for Extras function
# before popping elements to reduce total count.
# for factoids and commands.
set disallowOutsiders 1
-# [int] time, in seconds. (different messages)
-set floodMessages 10:30
-# [int] same messages.
-set floodRepeat 2:10
-
# [int] Amount of time for auto-ignore (flooding) to expire.
set ignoreAutoExpire 5
# Internal (simple) bot commands
#####
-# [0/1] irc-cli calculator.
-set perlMath 1
-
-# [0/1] ord/chr etc
-set allowConv 1
-
-# [0/1] do you want to allow DNS lookup
-set allowDNS 1
-
-# [0/1] Forking... enable for non-nix OS or to reduce mem usage.
-# This should work for Win32 and MacOS. About time, hey :)
+# [0/1] Forking... disable for non-nix OS or to reduce mem usage.
+# Disabling should make the bot work on Win32 and MacOS.
set forking 1
# [int] Backlog... ideal to see what happened to the bot on console.
# Miscellaneous...
#####
-# [bool] Display a bit too much info about stuff.
+# [int] Display a bit too much info about stuff.
# 0 -- disable.
-# 1 -- minimal.
+# 1 -- standard.
# 2 -- extra.
set VERBOSITY 1
set WARN 1
# [0/1] Debugging messages.
-set DEBUG 0
+set DEBUG 1
# [0/1] Work In Progress...
set WIP 0
# Extras
#####
+set uptime 1
+
# [str] anything which requires LWP + http proxy.
-###set httpProxy http://HOSTNAME:PORT/
-
-# [0/1] babelfish translator. jdf++. FIXME [DOES NOT WORK]
-set babelfish false
-
-# [0/1] offer free factoid cookies
-set cookie true
-
-# [0/1] Countdown to specific dates
-set countdown true
-
-# [0/1] Debian file and package search.
-set debian false
-# [int] how often to update the debian table, in days.
-set debianRefreshInterval 1
-# [0/1] extra stuff...
-set debianExtra true
-
-# [0/1] Frontend to dict.org's wordnet.
-set dict false
-
-# [0/1] Freshmeat
-set freshmeat false
-# [int] how often to update the freshmeat table, in hours.
-set freshmeatRefreshInterval 24
-# [chans|all] 10items/hour, might be annoying.
-###set freshmeatAnnounce #debian-bots
-# [bool] if factoid does not exist, check freshmeat for it.
-set freshmeatForFactoid false
-
-# [0/1] insult server
-set insult false
-
-# [0/1] karma
-set karma true
-
-# [0/1] Frontend to kernel.org
-set kernel false
-###set kernelAnnounce #debian-bots
-
-# [0/1] LART.
-set lart true
-
-# [array] Channel limit adjuster. List of channels.
-###set limitcheck #debian-bots
-# [int] Interval (or more than), in minutes.
-set limitcheckInterval 10
-# [int] Adjust channel limit to 10 above total users in channel.
-set limitcheckPlus 10
-
-# [0/1] nickometer
-set nickometer true
-
-# [0/1] Frontend to the stock market.
-set quote false
-
-# [0/1] Display random text in the channel.
-set randomQuote true
-# [str] Channels.
-set randomQuoteChannels #debian-bots
-# [int] Interval (or more than), in minutes.
-set randomQuoteInterval 60
-
-# [0/1] Display random text in the channel.
-set randomFactoid true
-# [str] Channels.
-set randomFactoidChannels #debian-bots
-# [int] Interval (or more than), in minutes.
-set randomFactoidInterval 60
-
-# [0/1] Warn users about root.
-set rootWarn false
-# passive -- be polite plus stuff, compliant to OPN, heh.
-# aggressive -- ...
-set rootWarnMode passive
-
-# [0/1] Factoid search.
-set search false
-
-# [0/1] persistant "seen".
-set seen true
-# [0/1] seen statistics for online users like idle time, total message
-# count.
-set seenStats true
-# [int] if someone's been away for more than xx days, delete their info.
-# info.
-set seenMaxDays 30
-# [int] interval to flush cached seen info. in minutes.
-set seenFlushInterval 60
-# [bool] store all information, irrevelent of addressing.
-# may chew more CPU.
-# Will encourage severe leakaged (2-3x), caused by mysql-perl?
-set seenStoreAll 1
-
-# [0/1] slashdot headlines.
-set slashdot false
-###set slashdotAnnounce #debian-bots
-
-# [0/1] frontend to ispell.
-set spell false
-
-# [0/1] Advanced topic management.
-set topic true
-
-# [0/1] User Information Services.
-set userinfo true
-
-# [0/1] Uptime daemon
-set uptime true
-
-# [0/1] Wingate checking and banning mechanism. FIXME.
-###set wingate false
-# [int] seconds. minimum time to check.
-set wingateInterval 60
-# [str] Wingate.
-set wingateBan true
-# [str] Wingate.
-set wingateKick DIE DIE DIE
-
-# [0/1] google search.. simon++. requires libwww-search-perl + 5lines of
-# modifications.
-set wwwsearch false
-
-# [0/1] Unit conversion tool.
-set units true
+set httpProxy http://router.home.org:3128/
+
+####
+#### now modify blootbot.chans for per-channel specific configuration
+#### see sample.chans for info.
+####
+
+set allowConv 1
--- /dev/null
+###
+# parameter settings file for blootbot
+# by the dms
+###
+
+# [str] Interface: [IRC/CLI]
+# IRC -- Internet Relay Chat
+# CLI -- Command Line Interface
+set Interface IRC
+
+# IRC.
+set ircNick blootbot
+set ircUser blootbot
+set ircName blootbot experimental bot
+set ircUMode +iw
+###set ircHost vh.virtualhost.org
+set join_channels #DEBIAN-bots
+
+# nickserv/chanserv support.
+###set nickServ_pass PASSWORD
+###set chanServ_ops #chan1 #chan2
+
+# default quit message
+set quitMsg adios amigos
+
+#####
+# logfile
+#####
+
+# [file] where to put logging info. comment out to disable.
+set logfile log/$ircUser.log
+
+# [str] Type of logging.
+# DAILY -- Create a new log each day.
+# DEFAULT -- One continuous log file.
+set logType DAILY
+
+# [int] Maximum log size, if logfile is defined, in bytes.
+set maxLogSize 10000000
+
+#####
+# Factoid DB Configuration
+#####
+
+# [str] Ability to remember/tell factoids
+# none -- disable.
+# mysql -- MySQL
+# pgsql -- PostGreSQL (NOT SUPPORTED YET)
+# dbm -- Berkeley DBM
+### REQUIRED by factoids,freshmeat,karma,seen,...
+set DBType mysql
+
+# [str] DBM filename prefix // MYSQL/PGSQL database.
+# eg: blootbot-factoids, blootbot-seen
+# eg: /var/db/mysql/blootbot/factoids.*
+set DBName blootbot
+
+# [str] Hostname of database server
+set SQLHost localhost
+
+# [str] SQL user allowed to insert,update,delete stuff from tables.
+set SQLUser blootbot
+
+# [str] SQL password.
+set SQLPass PASSWORD
+
+# [str] SQL Debug file.
+###set SQLDebug SQL_debug.log
+
+#####
+# factoid-related configuration
+#####
+
+# [bool] Factoid support.
+set factoids true
+
+# [days] if not 0, number of days until factoid is deleted for good.
+set factoidDeleteDelay 0
+
+# [int] maximum length of factoid key.
+set maxKeySize 32
+
+# [int] maximum length of factoid value.
+set maxDataSize 450
+
+# [int] minimum length of unaddressed (message) question without question
+# before it is answered involuntarily.
+# This ignores the 'addressing' setting.
+# 0 to disable.
+set minVolunteerLength 0
+
+# [str] when should the bot bother learning new factoids.
+# ADDRESSED -- only learn when addressed.
+# HUNGRY -- learn irrelevent of addressing. this will catch
+# _everything_, use at your own risk. I tried this ages
+# ago and it caught quite funny responses but who knows
+# if my modifications will prevent this or not, perhaps
+# IsInvalid must be disabled?
+set learn ADDRESSED
+
+# [str] different behaviour with URLs.
+# REQUIRE -- means it will need to be a url type (e.g. file:, http:)
+# OPTIONAL -- will take anything
+# REJECT -- will not accept any urls. this makes it easy to
+# run 2 with different nicks and styles.
+# ^^^ what's the point of this???
+set acceptUrl OPTIONAL
+
+# [bool] profanity checking.
+set profanityCheck false
+
+# [0/1] tell so-and-so about such-and-such of a factoid.
+set allowTelling 1
+
+# [str] other bots to ask for factoids which they may have.
+#set friendlyBots url purl script mrapi
+
+#####
+# factoid related and unrelated features, mainly Extras.
+#####
+
+# [str] addressing is when you name the bot. FIXME
+# REQUIRE -- the bot only does something if addressed.
+# OPTIONAL -- the bot responds (does not learn) irrelevent of
+# addressing.
+set addressing REQUIRE
+
+# [char] One-character easy recognition.
+set addressCharacter ~
+
+# [str] how the bot should send messages.
+# PRIVATE -- reply to private messages only, rejecting public msgs.
+# DEFAULT -- reply to public _and_ private queries.
+set talkMethod DEFAULT
+
+# [str] how long the output string should be before it is changed from
+# public to private. Value of '1' has same behaviour as superseeded
+# option 'preferReply PRIVATE'.
+# "+" before bot commands overrides this option temporarily.
+###set minLengthBeforePrivate 192
+
+# [int] maximum length of reply for Extras function before popping list to
+# reduce number of elements.
+set maxListReplyLength 450
+
+# [int] maximum number of elements in list allowed for Extras function
+# before popping elements to reduce total count.
+set maxListReplyCount 15
+
+# [0/1] allow people outside any channels the bot is on to use the bot
+# for factoids and commands.
+set disallowOutsiders 1
+
+# [int] time, in seconds. (different messages)
+set floodMessages 10:30
+# [int] same messages.
+set floodRepeat 2:10
+
+# [int] Amount of time for auto-ignore (flooding) to expire.
+set ignoreAutoExpire 5
+
+# [int] Amount of time for forced-online ignore to expire. minutes.
+set ignoreTempExpire 60
+
+#####
+# Internal (simple) bot commands
+#####
+
+# [0/1] irc-cli calculator.
+set perlMath 1
+
+# [0/1] ord/chr etc
+set allowConv 1
+
+# [0/1] do you want to allow DNS lookup
+set allowDNS 1
+
+# [0/1] Forking... enable for non-nix OS or to reduce mem usage.
+# This should work for Win32 and MacOS. About time, hey :)
+set forking 1
+
+# [int] Backlog... ideal to see what happened to the bot on console.
+# maximum number of lines to backlog.
+set backlog 24
+
+#####
+# Miscellaneous...
+#####
+
+# [bool] Display a bit too much info about stuff.
+# 0 -- disable.
+# 1 -- minimal.
+# 2 -- extra.
+set VERBOSITY 1
+
+# [0/1] Warn messages.
+set WARN 1
+
+# [0/1] Debugging messages.
+set DEBUG 0
+
+# [0/1] Work In Progress...
+set WIP 0
+
+# debugging...
+###set dumpvars 1
+###set dumpvarsAtExit 1
+# log to specific file or global log file.
+###set dumpvarsLogFile dumpvars.log
+
+# [0/1] allow 'use strict', makes bot unreliable.
+set useStrict 0
+
+#####
+# Extras
+#####
+
+# [str] anything which requires LWP + http proxy.
+###set httpProxy http://HOSTNAME:PORT/
+
+# [0/1] babelfish translator. jdf++. FIXME [DOES NOT WORK]
+set babelfish false
+
+# [0/1] offer free factoid cookies
+set cookie true
+
+# [0/1] Countdown to specific dates
+set countdown true
+
+# [0/1] Debian file and package search.
+set debian false
+# [int] how often to update the debian table, in days.
+set debianRefreshInterval 1
+# [0/1] extra stuff...
+set debianExtra true
+
+# [0/1] Frontend to dict.org's wordnet.
+set dict false
+
+# [0/1] Freshmeat
+set freshmeat false
+# [int] how often to update the freshmeat table, in hours.
+set freshmeatRefreshInterval 24
+# [chans|all] 10items/hour, might be annoying.
+###set freshmeatAnnounce #debian-bots
+# [bool] if factoid does not exist, check freshmeat for it.
+set freshmeatForFactoid false
+
+# [0/1] insult server
+set insult false
+
+# [0/1] karma
+set karma true
+
+# [0/1] Frontend to kernel.org
+set kernel false
+###set kernelAnnounce #debian-bots
+
+# [0/1] LART.
+set lart true
+
+# [array] Channel limit adjuster. List of channels.
+###set limitcheck #debian-bots
+# [int] Interval (or more than), in minutes.
+set limitcheckInterval 10
+# [int] Adjust channel limit to 10 above total users in channel.
+set limitcheckPlus 10
+
+# [0/1] nickometer
+set nickometer true
+
+# [0/1] Frontend to the stock market.
+set quote false
+
+# [0/1] Display random text in the channel.
+set randomQuote true
+# [str] Channels.
+set randomQuoteChannels #debian-bots
+# [int] Interval (or more than), in minutes.
+set randomQuoteInterval 60
+
+# [0/1] Display random text in the channel.
+set randomFactoid true
+# [str] Channels.
+set randomFactoidChannels #debian-bots
+# [int] Interval (or more than), in minutes.
+set randomFactoidInterval 60
+
+# [0/1] Warn users about root.
+set rootWarn false
+# passive -- be polite plus stuff, compliant to OPN, heh.
+# aggressive -- ...
+set rootWarnMode passive
+
+# [0/1] Factoid search.
+set search false
+
+# [0/1] persistant "seen".
+set seen true
+# [0/1] seen statistics for online users like idle time, total message
+# count.
+set seenStats true
+# [int] if someone's been away for more than xx days, delete their info.
+# info.
+set seenMaxDays 30
+# [int] interval to flush cached seen info. in minutes.
+set seenFlushInterval 60
+# [bool] store all information, irrevelent of addressing.
+# may chew more CPU.
+# Will encourage severe leakaged (2-3x), caused by mysql-perl?
+set seenStoreAll 1
+
+# [0/1] slashdot headlines.
+set slashdot false
+###set slashdotAnnounce #debian-bots
+
+# [0/1] frontend to ispell.
+set spell false
+
+# [0/1] Advanced topic management.
+set topic true
+
+# [0/1] User Information Services.
+set userinfo true
+
+# [0/1] Uptime daemon
+set uptime true
+
+# [0/1] Wingate checking and banning mechanism. FIXME.
+###set wingate false
+# [int] seconds. minimum time to check.
+set wingateInterval 60
+# [str] Wingate.
+set wingateBan true
+# [str] Wingate.
+set wingateKick DIE DIE DIE
+
+# [0/1] google search.. simon++. requires libwww-search-perl + 5lines of
+# modifications.
+set wwwsearch false
+
+# [0/1] Unit conversion tool.
+set units true
+++ /dev/null
-# parameter settings file for the infobot
-# kevin lenzo (lenzo@cs.cmu.edu)
-# modified by xk <xk@leguin.openprojects.net>
-###
-
-# [str] Interface: [IRC/CLI]
-set Interface IRC
-
-# IRC.
-set ircNick blootbot
-set ircUser blootbot
-set ircName blootbot experimental bot
-set ircUMode +iw
-###set ircHost vh.virtualhost.org
-
-set owner xk
-
-# nickserv/chanserv support.
-###set nickServ_pass PASSWORD
-
-# default quit message
-set quitMsg BEE RICHT BAK
-
-# temp directory.
-set tempDir ~/Temp
-
-#####
-# logfile
-#####
-
-# [file] where to put logging info. comment out to disable.
-set logfile log/$ircUser.log
-
-# [str] Type of logging.
-# DAILY -- Create a new log each day.
-# DEFAULT -- One continuous log file.
-set logType DAILY
-
-# [int] Maximum log size, if logfile is defined, in bytes.
-set maxLogSize 10000000
-
-#####
-# Factoid DB Configuration
-#####
-
-# [str] Ability to remember/tell factoids
-# none -- disable.
-# mysql -- ...
-# pgsql -- postgresql (NOT SUPPORTED)
-# dbm -- berkeley dbm (SHOULD WORK 95%)
-set DBType mysql
-
-# [str] DBM filename prefix // MYSQL/PGSQL database.
-# eg: blootbot-factoids, blootbot-seen
-# eg: /var/db/mysql/blootbot/factoids.*
-set DBName blootbot
-
-# [str] Hostname of database server
-set SQLHost localhost
-
-# [str] mysql user allowed to insert,update,delete stuff from tables.
-set SQLUser blootbot
-
-# [str] mysql password.
-set SQLPass bl00tb0t
-
-# [str] sql debug file.
-###set SQLDebug SQL_debug.log
-
-#####
-# factoid-related configuration
-#####
-
-# [bool] Factoid support.
-set factoids true
-
-# [days] After what time will deleted factoids will be deleted.
-set factoidDeleteDelay 0
-
-# [int] maximum length of factoid key.
-set maxKeySize 32
-
-# [int] maximum length of factoid value.
-set maxDataSize 450
-
-# [int] minimum length of unaddressed (message) question without question
-# before it is answered involuntarily.
-# This ignores the 'addressing' setting.
-# 0 to disable.
-set minVolunteerLength 0
-
-# [str] when should the bot bother learning new factoids.
-# ADDRESSED -- only learn when addressed.
-# HUNGRY -- learn irrelevent of addressing. this will catch
-# _everything_, use at your own risk. I tried this ages
-# ago and it caught quite funny responses but who knows
-# if my modifications will prevent this or not, perhaps
-# IsInvalid must be disabled?
-set learn ADDRESSED
-
-# [str] different behaviour with URLs.
-# REQUIRE -- means it will need to be a url type (e.g. file:, http:)
-# OPTIONAL -- will take anything
-# REJECT -- will not accept any urls. this makes it easy to
-# run 2 with different nicks and styles.
-# ^^^ what's the point of this???
-set acceptUrl OPTIONAL
-
-# [bool] profanity checking.
-set profanityCheck false
-
-# [str] other bots to ask for factoids which they may have.
-#set friendlyBots url purl script mrapi
-
-#####
-# factoid related and unrelated features, mainly Extras.
-#####
-
-# [str] addressing is when you name the bot. FIXME
-# REQUIRE -- the bot only does something if addressed.
-# OPTIONAL -- the bot responds (does not learn) irrelevent of
-# addressing.
-set addressing REQUIRE
-
-# should work. FIXME.
-set addressCharacter ~
-
-# [str] how the bot should send messages.
-# PRIVATE -- reply to private messages only, rejecting public msgs.
-# DEFAULT -- reply to public _and_ private queries.
-set talkMethod DEFAULT
-
-# [str] how long the output string should be before it is changed from
-# public to private.
-# "+" before bot commands overrides this option temporarily.
-###set minLengthBeforePrivate 192
-
-# [int] maximum length of reply for Extras function before popping list to
-# reduce number of elements.
-set maxListReplyLength 300
-
-# [int] maximum number of elements in list allowed for Extras function
-# before popping elements to reduce total count.
-set maxListReplyCount 15
-
-# [0/1] allow people outside any channels the bot is on to use the bot
-# for factoids and commands.
-set disallowOutsiders 1
-
-# [int] Amount of time for auto-ignore (flooding) to expire.
-set ignoreAutoExpire 5
-
-# [int] Amount of time for forced-online ignore to expire. minutes.
-set ignoreTempExpire 60
-
-#####
-# Internal (simple) bot commands
-#####
-
-# [0/1] Forking... disable for non-nix OS or to reduce mem usage.
-# Disabling should make the bot work on Win32 and MacOS.
-set forking 1
-
-# [int] Backlog... ideal to see what happened to the bot on console.
-# maximum number of lines to backlog.
-set backlog 24
-
-#####
-# Miscellaneous...
-#####
-
-# [int] Display a bit too much info about stuff.
-# 0 -- disable.
-# 1 -- standard.
-# 2 -- extra.
-set VERBOSITY 1
-
-# [0/1] Warn messages.
-set WARN 1
-
-# [0/1] Debugging messages.
-set DEBUG 1
-
-# [0/1] Work In Progress...
-set WIP 0
-
-# debugging...
-###set dumpvars 1
-###set dumpvarsAtExit 1
-# log to specific file or global log file.
-###set dumpvarsLogFile dumpvars.log
-
-# [0/1] allow 'use strict', makes bot unreliable.
-set useStrict 0
-
-#####
-# Extras
-#####
-
-# [str] anything which requires LWP + http proxy.
-set httpProxy http://router.home.org:3128/
-
-####
-#### now modify blootbot.chans for per-channel specific configuration
-#### see sample.chans for info.
-####