├── LICENSE
├── README.md
├── conf
├── infobot-are.txt
├── infobot-is.txt
├── infobot.channels
├── infobot.config-dist
├── infobot.crontab
├── infobot.help
├── infobot.help-dist
├── infobot.users
├── infobot.users-dist
├── magic8.txt
├── sane-are.txt
├── sane-ignore.txt
└── sane-is.txt
├── doc
├── how_to_fix_files_uploaded_from_windows_to_unix.txt
├── infobot_guide.html
├── intro.bit
└── makemanual.pl
├── extras
├── ANSI.pl
├── Aviation.pl
├── DNS.pl
├── Extras.pl
├── Internic.pl
├── Math.pl
├── NOAA.pl
├── RDF.pl
├── Slashdot3.pl
├── Speller.pl
├── Traceroute.pl
├── W3Search.pl
├── Zippy.pl
├── babel.pl
├── exchange.pl
├── excuse.pl
├── insult.pl
├── module-template
├── myRoutines.pl
├── nickometer.pl
├── purldoc.pl
├── stockquote.pl
└── storeNickMessage.pl
├── infobot
├── scripts
├── README.scripts
├── curl
├── dump_db
├── flock-test
├── get_entries_from_log
├── make_password
├── make_snap
├── restore_snap
├── run_if_needed.pl
├── track2fact
├── unupdate_dbs
└── update_db
├── src
├── CTCP.pl
├── Channel.pl
├── DBM.pl
├── Help.pl
├── Irc.pl
├── IrcExtras.pl
├── IrcHooks.pl
├── Misc.pl
├── Norm.pl
├── Params.pl
├── Process.pl
├── Question.pl
├── Reply.pl
├── Search.pl
├── Setup.pl
├── Statement.pl
├── Update.pl
├── User.pl
├── Util.pm
└── w3c_utils.pl
└── w3c.json
/LICENSE:
--------------------------------------------------------------------------------
1 |
2 | Copyright (c) Kevin Lenzo, 1996-2000, except where noted
3 | otherwise.
4 |
5 | The Infobot is covered under the same terms as Perl itself
6 | (the Artistic License). This software is meant to be freely
7 | available under those terms in perpetuity.
8 |
9 |
10 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 | # W3C's own infobot
3 |
4 | ## Introduction
5 |
6 | This bot is based on [infobot](http://www.infobot.org/), written by Kevin Lenzo .
7 | It adds the *inform* feature, which lets you leave a message to someone offline.
8 |
9 | ## Syntax
10 |
11 | ```
12 | botie, inform [that|to|about]
13 | ```
14 |
15 | * `inform` may also be any of these other keywords:
16 | `tell`, `notify`, `advise`, `alert`, `advise`, `enlighten`, `send word to`, `ping`, `remind`, `ask`, `beseech`, `beg` or `say`.
17 | * A comma after the nickname is OK, too.
18 | * `that`, `to` and `about` before the message are entirely optional.
19 |
20 | ## Examples
21 |
22 | ```
23 | botie, alert joe123 that wings are on fire
24 | botie, ask laureen to please re-send the previous version of that doc
25 | botie, ping McNulty, The Bunks called!
26 | botie, inform susan32 Done! :)
27 | ```
28 |
29 | ## Dependencies
30 |
31 | Perl 5
32 |
33 |
--------------------------------------------------------------------------------
/conf/infobot-are.txt:
--------------------------------------------------------------------------------
1 | roses => red
2 | violets => blue
3 |
--------------------------------------------------------------------------------
/conf/infobot-is.txt:
--------------------------------------------------------------------------------
1 | oznoid => at mailto:lenzo@cs.cmu.edu or at http://www.cs.cmu.edu/~lenzo
2 | infobot => at http://www.cs.cmu.edu/~infobot
3 |
--------------------------------------------------------------------------------
/conf/infobot.channels:
--------------------------------------------------------------------------------
1 | # Channel File (c) 1999 Infobot & Associates
2 |
3 | ChannelEntry #test {
4 | fallback yes;
5 | addressing REQUIRE;
6 | shutup TRUE;
7 | msgonly TRUE;
8 | continuity 0;
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/conf/infobot.config-dist:
--------------------------------------------------------------------------------
1 | # parameter settings file for the infobot
2 | # kevin lenzo (lenzo@cs.cmu.edu)
3 |
4 | # note:
5 | # '$var' means a parameter that has been named; it is interpolated.
6 | # By convention, things with '.ext' (extensions) are text files, and
7 | # things with hyphens in them are DBM file prefixes, used for run-time
8 | # learning or state maintenance.
9 | #
10 | # Nota Bene: Comment out attributes you don't want. Note that the
11 | # word "false" is actually a true value! use 0 or comment
12 | # out options you don't want.
13 |
14 | # the internal name for this bot
15 | ident i-bot
16 |
17 | # the nickname we want
18 | wantNick $ident
19 |
20 | # the prefix of the dbm files
21 | dbname $ident
22 |
23 | # where to put logging info
24 | logfile $dbname.log
25 |
26 | # plusplus, an idea hijacked from CMU zephyr community,
27 | # and dkindred++ in particular. Otherwise known
28 | # as 'karma'. this is persistant between shutdowns.
29 |
30 | plusplus $dbname-karma
31 |
32 | # persistant "seen" db
33 | seen $dbname-seen
34 |
35 | # do we have an ignore database? uncomment this if not.
36 | ignore $dbname-ignore
37 |
38 | # inform messages database
39 | informdb $dbname-inform.db
40 |
41 | # should we ALWAYS close and reopen dbm on update?
42 | # some systems don't do commitment until quit.
43 | #
44 | # 0 => never force sync
45 | # 1 => force sync on every update
46 | # N => force sync every Nth update
47 |
48 | commitDBM 5
49 |
50 | # Explicitly set the database module. The default is AnyDBM_File. If
51 | # you want to use any shared database files (via sharedDBMs) you have to
52 | # set this to DB_File.
53 |
54 | DBMModule DB_File
55 |
56 | # Specify an extension which should be added to all database names. By
57 | # default this is empty.
58 |
59 | DBMExt .db
60 |
61 | # Specify which databases will be shared among multiple infobots on the
62 | # same machine, and so require locking. By default none are shared. If
63 | # you use this at all you have to set DBMModule to DB_File. This can be
64 | # a list of database names, or /all (which means every database), or
65 | # /all-but-ignore (which means every database except the ignore list).
66 | #
67 | # As of this writing, the databases are:
68 | #
69 | # is main database, for singular factoids
70 | # are main database, for plural factoids
71 | # ignore ignored nicks and user/host patterns
72 | # plusplus karma
73 | # seen last seen info by each nick
74 |
75 | #sharedDBMs is are plusplus
76 | #sharedDBMs /all
77 | #sharedDBMs /all-but-ignore
78 |
79 | # X is Y
80 | # max length of X (the key,
81 | # the 'left hand side' (LHS) of an assignment,
82 | # or the first argument)
83 |
84 | maxKeySize 50
85 |
86 |
87 | # max length of Y (value or data, the 'right hand side', or 2nd argument)
88 | maxDataSize 400
89 |
90 | # REQUIRE, OPTIONAL, REJECT for different behaviour with URLs
91 | # REQUIRE means it will need to be a url type (e.g. file:, http:)
92 | # OPTIONAL will take anything
93 | # REJECT will not accept any urls. this makes it easy to
94 | # run 2 with different nicks and styles.
95 |
96 | acceptUrl OPTIONAL
97 |
98 | # IRC-related params
99 | ircuser $ident
100 | realname $ident
101 | server irc.infobot.org
102 | port 6667
103 | allowed_channels #infobot #$ident #test
104 |
105 | # channels to join
106 | # use #channel,key (thanks to tile++) for keyed channels
107 |
108 | join_channels #infobot #$ident
109 |
110 | # server password, if needed
111 | # server_pass myserverpassword
112 |
113 | # vhost support... if you have a vhost, you can use this,
114 | # otherwise it won't work.
115 | # inm++, elph++ for this :)
116 | # vhost_name f00.bar.org
117 |
118 | # nickServ_pass foo
119 | # chanServ_pass bar
120 |
121 | # addressing is when you name the bot. if this is REQUIRE,
122 | # the bot should only speak when spoken to. BUT it may listen.
123 | # anything else will mean it can barge in when it thinks it
124 | # knows something.
125 | # "shutup" determines whether you can switch modes on the
126 | # fly with the bot. if you use REQUIRE for addressing, you
127 | # probably want to comment out the shutup line.
128 |
129 | addressing OPTIONAL
130 | # shutup TRUE
131 |
132 | # ansi screen control is available from 0.32 onwards
133 | # value of 1 means to use ANSI, 0 means generic bold
134 | ansi_control 1
135 |
136 | # things we may or may not want to allow. 1 = allow, 0 otherwise.
137 | # do you want to be a desktop calc?
138 | perlMath 1
139 | fortranMath 0
140 |
141 | # do you want to allow DNS lookup/Internic/Traceroute?
142 | allowDNS 1
143 | allowTraceroute 1
144 | allowInternic 1
145 |
146 | # ord/chr etc
147 | allowConv 1
148 |
149 | # tell so-and-so about such-and-such
150 | # allowTelling 1
151 |
152 | # let any old joe update stuff. if this is 0, you'll have to
153 | # either change some code, do everything with e.g. update_db,
154 | # or do something else arcane to get factoids in.
155 | allowUpdate 1
156 |
157 | # How much verbage to display on the console
158 | VERBOSITY 1
159 |
160 | # the magic hack word to unignore everyone
161 | unignoreWord unignore-everyone
162 |
163 | # where configuration and help files and such live, the default is the
164 | # files subdir of the main directory
165 | confdir conf
166 |
167 | # my help file. this will get confdir prepended
168 | # you may want to change this to $ident.help
169 |
170 | helpfile infobot.help
171 |
172 | srcdir src
173 | extradir extras
174 |
175 | # within how long of getting the same reply should
176 | # we not respond (irc mode only). in seconds.
177 |
178 | repeatIgnoreInterval 8
179 |
180 | # in what contexts do we let people make the bot leave a
181 | # channel (this is an or'd list; public private)
182 |
183 | allowLeave public
184 |
185 | # our user list default file (in miscdir)
186 | # you may want to change this to $ident.users
187 |
188 | userList infobot.users
189 |
190 | # channel list, specifies options which differ from the defaults, by
191 | # channel.
192 |
193 | channelList infobot.channels
194 |
195 | # default quit message
196 | quitMsg regrouping; bbiab
197 |
198 |
199 | # how long does something have to be before we'll just volunteer
200 | # the answer without a question mark, question, or being addressed
201 | minVolunteerLength 8
202 |
203 | # other bots to ask for help
204 |
205 | # friendlyBots url purl script mrapi
206 |
207 | # sane defines that ALWAYS overwrite existing values at startup
208 | # this is a prefix for the files (sane-is.txt, sane-are.txt)
209 |
210 | sanePrefix sane
211 |
212 | # allow weather and METAR lookups, respectively. These should
213 | # actually be turned into a user modes. mendel++. Require
214 | # LWP and metar requires Geo::METAR.
215 | # weather true
216 | # metar true
217 |
218 | # babelfish translator. jdf++. requires LWP, not included.
219 | # babel true
220 |
221 | # slashdot headlines. requires LWP, not included. get it from CPAN.
222 | # slash true
223 |
224 | # insult and excuse servers
225 | # insult true
226 | # excuse true
227 |
228 | # google search.. simon++ . expanded to www search using several
229 | # engines since it was so easy once you have WWW::Search.
230 | # use "update" if you want it to update the db, or comment
231 | # out if you don't want it. requires WWW::Search, not included.
232 | # use "forceupdate" to force a db update on every google search.
233 | wwwsearch update
234 |
235 | # general headline-getter. uses RDF. (LotR++)
236 | # rss true
237 |
238 | # purldoc perl documentation lookup DMasque++, HJ++
239 | purldoc true
240 | purldoc_trigger purldoc
241 | purldoc_max_public 3
242 |
243 | # speller. requires the ispell program.
244 | ispell true
245 |
246 | #zippy quotes (infobot, yow or infobot, be zippy)
247 | zippy true
248 |
249 | # the magic 8ball (divine)
250 | magic8_answers $miscdir/magic8.txt
251 |
252 | # exchange rates (exchange 233 DEM to USD)
253 | # exchange true
254 |
255 | # stock quotes
256 | # stockquotes true
257 |
258 |
--------------------------------------------------------------------------------
/conf/infobot.crontab:
--------------------------------------------------------------------------------
1 | */5 * * * * /usr/users/you/infobot0.1b/run_infobots.pl > /dev/null
2 |
3 |
--------------------------------------------------------------------------------
/conf/infobot.help:
--------------------------------------------------------------------------------
1 | main: i learn mainly by observing declarative statements such as "x is at http://www.xxx.com", and then reply when people ask things like "where can i find x?"
2 |
3 | author: oznoid (mailto:lenzo@ri.cmu.edu) is my author.
4 |
5 | corrections: If I come back with "...but x is at http://xx.xx.xx" or something like that, and you want to change the entry, use "no, x is at http://sdfsdfsdf". The "No," tells me to supercede the existing value.
6 | corrections: You can add to an entry with "also". "X is also at ..."
7 |
8 | reply: There is a special tag, , that is used to override the usual response. Usually, a response is "X is Y", but it can be made "Y" by making the entry "X is Y".
9 | reply: This is a good way to close junk entries; use "X is " with nothing after it.
10 |
11 | alternation: The | symbol in an entry causes an infobot to choose one of the replies at random. "X is Y|Z" will produce "X is Y" or "X is Z" randomly.
12 |
13 | karma: Karma is a community rating system. use "X++" to increase the karma, or "X--" to decrease it. Ask for ratings using "karma for X?"
14 |
--------------------------------------------------------------------------------
/conf/infobot.help-dist:
--------------------------------------------------------------------------------
1 | main: i learn mainly by observing declarative statements such as "x is at http://www.xxx.com", and then reply when people ask things like "where can i find x?"
2 |
3 | author: oznoid (mailto:lenzo@ri.cmu.edu) is my author.
4 |
5 | corrections: If I come back with "...but x is at http://xx.xx.xx" or something like that, and you want to change the entry, use "no, x is at http://sdfsdfsdf". The "No," tells me to supercede the existing value.
6 | corrections: You can add to an entry with "also". "X is also at ..."
7 |
8 | reply: There is a special tag, , that is used to override the usual response. Usually, a response is "X is Y", but it can be made "Y" by making the entry "X is Y".
9 | reply: This is a good way to close junk entries; use "X is " with nothing after it.
10 |
11 | alternation: The | symbol in an entry causes an infobot to choose one of the replies at random. "X is Y|Z" will produce "X is Y" or "X is Z" randomly.
12 |
13 | karma: Karma is a community rating system. use "X++" to increase the karma, or "X--" to decrease it. Ask for ratings using "karma for X?"
14 |
--------------------------------------------------------------------------------
/conf/infobot.users:
--------------------------------------------------------------------------------
1 | #
2 | # User File (c) 1998 Infobot & Associates
3 | #
4 | # FLAGS
5 | # ----------------------
6 | # i Ignored Flag
7 | # f MLF Usage Allowed
8 | # t Teaching Allowed
9 | # r Removing Allowed
10 | # m Modifying Allowed
11 | # c Part/Join Allowed
12 | # s Searching Allowed (possibly computationally expensive)
13 | # S user can make bot Say things
14 | # e Extra Privs [ not implemented robustly: AVOID ]
15 | # p oP on channel by public request
16 | # ----------------------
17 | # o Owner Flag
18 | # ----------------------
19 | #
20 | # recommended default user flags: +trmc
21 |
22 | UserEntry default {
23 | flags +trmcs;
24 | }
25 |
26 | # here's an example entry
27 |
28 | UserEntry oznoid {
29 | name "Kevin A. Lenzo";
30 | title "that guy";
31 | flags +ftrmcsSope;
32 | pass rrmrxB6U4ryRk;
33 | mask *!lenzo@*.speech.cs.cmu.edu;
34 | }
35 |
36 | UserEntry plonk {
37 | name "Eep Malloy"
38 | title "that guy II";
39 | flags +trmcspo;
40 | pass rrmrxB6U4ryRk;
41 | mask *!*@*.static.telerama.com
42 | }
43 |
--------------------------------------------------------------------------------
/conf/infobot.users-dist:
--------------------------------------------------------------------------------
1 | #
2 | # User File (c) 1998 Infobot & Associates
3 | #
4 | # FLAGS
5 | # ----------------------
6 | # i Ignored Flag
7 | # f MLF Usage Allowed
8 | # t Teaching Allowed
9 | # r Removing Allowed
10 | # m Modifying Allowed
11 | # c Part/Join Allowed
12 | # s Searching Allowed (possibly computationally expensive)
13 | # S user can make bot Say things
14 | # e Extra Privs [ not implemented robustly: AVOID ]
15 | # p oP on channel by public request
16 | # ----------------------
17 | # o Owner Flag
18 | # ----------------------
19 | #
20 | # recommended default user flags: +trmc
21 |
22 | UserEntry default {
23 | flags +trmcs;
24 | }
25 |
26 | # here's an example entry
27 |
28 | UserEntry oznoid {
29 | name "Kevin A. Lenzo";
30 | title "that guy";
31 | flags +ftrmcsSope;
32 | pass rrmrxB6U4ryRk;
33 | mask *!lenzo@*.speech.cs.cmu.edu;
34 | }
35 |
36 | UserEntry plonk {
37 | name "Eep Malloy"
38 | title "that guy II";
39 | flags +trmcspo;
40 | pass rrmrxB6U4ryRk;
41 | mask *!*@*.static.telerama.com
42 | }
43 |
--------------------------------------------------------------------------------
/conf/magic8.txt:
--------------------------------------------------------------------------------
1 | original => Outlook Not So Good
2 | original => My Reply Is No
3 | original => Don't Count On It
4 | original => You May Rely On It
5 | original => Ask Again Later
6 | original => Most Likely
7 | original => Cannot Predict Now
8 | original => Yes
9 | original => Yes Definitely
10 | original => Better Not Tell You Now
11 | original => It Is Certain
12 | original => Very Doubtful
13 | original => It Is Decidedly So
14 | original => Concentrate and Ask Again
15 | original => Signs Point to Yes
16 | original => My Sources Say No
17 | original => Without a Doubt
18 | original => Reply Hazy, Try Again
19 | original => As I See It, Yes
20 | sarcastic => NOT
21 | sarcastic => What do YOU think
22 | sarcastic => Obviously
23 | sarcastic => Ask me if I care
24 | sarcastic => Yeah, and I'm the Pope
25 | sarcastic => That's ridiculous
26 | sarcastic => Who cares
27 | sarcastic => Forget about it
28 | sarcastic => You wish
29 | sarcastic => Yeah, right
30 | sarcastic => Sure
31 | sarcastic => Get a clue
32 | sarcastic => In your dreams
33 | sarcastic => Oh, please
34 | sarcastic => Whatever
35 | sarcastic => As if
36 | sarcastic => You've got to be kidding
37 | sarcastic => Dumb question. Ask another
38 | sarcastic => Not a chance
39 | userdef => Outlook Sucks
40 | userdef => THIS SPACE FOR RENT
41 | userdef => Bugger Off
42 | userdef => How appropriate, you fight like a cow
43 | userdef => Eat more cheese, then ask again
44 | userdef => When hell freezes over
45 |
--------------------------------------------------------------------------------
/conf/sane-are.txt:
--------------------------------------------------------------------------------
1 | what =>
2 | who =>
3 | when =>
4 | where =>
5 | why =>
6 | it =>
7 |
--------------------------------------------------------------------------------
/conf/sane-ignore.txt:
--------------------------------------------------------------------------------
1 | *cthulhu!hastur@*unspeakable.net # an example nick!user@host ban
2 | *!*@*nan*direct.ca
3 | *!*@200.38.211.*
4 |
--------------------------------------------------------------------------------
/conf/sane-is.txt:
--------------------------------------------------------------------------------
1 | what =>
2 | who =>
3 | when =>
4 | where =>
5 | why =>
6 | it =>
7 | how =>
8 | infobot guide => http://www.cs.cmu.edu/~infobot/infobot_guide.html
9 |
--------------------------------------------------------------------------------
/doc/how_to_fix_files_uploaded_from_windows_to_unix.txt:
--------------------------------------------------------------------------------
1 | FIXING PERL AND TEXT FILES THAT HAVE BEEN UPLOADED FROM WINDOWS
2 |
3 | OK when you upload a file from Windows, it contains all
4 | these nasty control-M's on each line that screw everything
5 | up.
6 |
7 | To see them, use
8 |
9 | cat -vet
10 |
11 | where is the name of some file you want to check.
12 | You should see the control-M's.
13 |
14 | To get rid of them, use
15 |
16 | perl -pi -e 's/\cM//g'
17 |
18 | while is the file name. This does an in-place edit
19 | that removes all the control-Ms. You can do this to a bunch
20 | of files at once:
21 |
22 | perl -pi -e 's/\cM//g'
23 |
24 | or even
25 |
26 | perl -pi -e 's/\cM//g' *
27 |
28 | if all the files in the directory are text (like they ARE in
29 | the files/ directory of the infobot).
30 |
31 | perl -pi -e 's/\cM//g' files/* src/* infobot
32 |
33 | from inside the infobot directory should clean everything up.
34 | You should also clean any factpacks or factoid files or logs
35 | that you use for processing.
36 |
37 | kevin
38 |
--------------------------------------------------------------------------------
/doc/intro.bit:
--------------------------------------------------------------------------------
1 |
2 | The canonical source for the infobot source and documentation is
3 | http://www.infobot.org/.
4 |
5 |
6 | The infobot connects to an Internet Relay Chat (IRC) server,
7 | joins some channels (maybe), and begins accumulating factoids.
8 | To run one, download the source, uncompress it, untar it,
9 | edit the config files, and it up.
10 |
11 | Interacting with the bot is pretty straightforward. Most of
12 | the commands and variables available to users are listed below.
13 | The bot will interact via message or on-channel.
14 |
15 |
16 |
17 |
Interacting with an infobot
18 |
19 |
20 |
setting factoids: X is Y
21 |
22 | Saying something like "X is Y" somewhere that the infobot
23 | can see it will cause the bot to store a factoid, unless
24 | X is already defined. It sets the value of X to Y.
25 |
26 |
accessing factoids: What is X?
27 |
28 | You can ask an infobot about something in a number of
29 | different ways, including "what is X?", "where is X?",
30 | or just plain "X?".
31 |
32 |
altering factoids: s/A/B/
33 |
34 | if you just want to change a part of a factoid, use
35 | the s///operator. you have to address the bot
36 | or use a private medium to do this.
37 |
38 | MyBot, X =~ s/A/B/
39 |
40 | will change the first occurence of A to B in the factoid
41 | called X.
42 |
43 |
44 |
appending to existing entries: also
45 |
46 | One can extend an existing factoid using the
47 | keyword also
48 |
49 |
50 |
51 | poink is also a silly word
52 |
53 |
54 |
55 |
56 |
erasing a factoid: forget
57 |
58 | A factoid can easily be deleted by using
59 |
60 |
61 |
62 | infobot, forget poink
63 |
64 |
65 |
66 |
67 |
changing a factoid: no, ...
68 |
69 | You can change the entry for a factoid completely using
70 |
71 |
72 |
73 | no, infobot, x is wugga wugga.
74 |
75 |
76 |
77 | which deletes the prior entry (if possible)
78 | and replaces it with the new one.
79 |
80 |
81 |
having the bot tell someone else something: tell
82 |
83 | A user can ask an infobot to tell someone else something.
84 |
85 |
86 |
87 | infobot, tell fimmtiu about no web
88 |
89 |
90 |
91 |
92 |
karma / plusplus
93 |
94 | karma for a concept may be incremented or decremeted using
95 | ++ and --. You can get the
96 | current karma 'score' for something by asking for it.
97 |
98 |
99 |
100 | oznoid++
101 |
102 | oznoid--
103 |
104 | karma for oznoid
105 |
106 |
107 |
108 |
109 |
status
110 |
111 | infobots reply to status requests.
112 |
113 |
114 | -> [url] status
115 | [url!infobot@ALF5.SPEECH.CS.CMU.EDU] Since Fri Mar 26 06:42:27 1999, there have been 409
116 | modifications and 2604 questions. I have been awake for 5 days, 4 hours, 24 minutes,
117 | 18 seconds this session, and currently reference 47529 factoids.
118 |
119 |
120 |
121 |
122 |
joining an allowed channel: join #infobot
123 |
124 | On IRC, you can tell the infobot to join a channel
125 | that it's allowed to join with
126 |
127 |
128 |
129 | infobot, join #infobot
130 |
131 |
132 |
133 | If it is allowed to (in its paramter settings), it
134 | will try to join the channel.
135 |
136 |
137 |
138 |
leaving a channel: part #infobot
139 |
140 | This causes the bot to leave the given channel
141 |
142 |
143 |
144 | infobot, part #infobot
145 |
146 |
147 |
148 | leave is a synonym for part.
149 |
150 |
151 |
random responses with |
152 |
153 | You can set a list from which to pick a random response by
154 | using |
155 |
156 |
157 |
158 | x is a|b|c|d
159 |
160 |
161 |
162 | When x is asked about, the infobot will randomly choose from
163 | the |-spearated list.
164 |
165 |
166 |
The <reply> factoid tag.
167 |
168 | Normally, when the infobot replies to "What is X", it says
169 | "X is Y". This form makes it just reply "Y".
170 |
171 |
172 |
173 | X is <reply> Y
174 |
175 |
176 |
177 |
178 |
The <action> factoid tag (as of 0.43.5)
179 |
180 | This causes the bot to respond as with except
181 | as an ACTION.
182 |
183 |
184 |
185 | X is <action> Y
186 |
187 |
188 |
189 |
190 |
backwacking
191 |
192 | Use \ to protect items from evaluation.
193 |
194 |
195 |
196 | x is y is y
197 |
198 |
199 |
200 | will normally set x =is=> y is y, but
201 |
202 |
203 |
204 | x \is y is y
205 |
206 |
207 |
208 | will set
209 |
210 |
211 | x is y =is=> y
212 |
213 |
214 | The forget
215 | and no (update) operators apply before checking
216 | for this. This is also useful for getting around the
217 | dereferencing of "i" and "me" and so on.
218 |
219 |
220 |
the $who variable
221 |
222 | Contains the nickname person currently addressing the bot.
223 | It can be used effectively in replies.
224 |
225 |
226 |
227 | nice day is <reply> you betcha, $who.
228 |
229 |
230 |
231 |
232 |
the $date variable
233 |
234 | Contains the current date and time, at the bot's host.
235 |
236 |
237 |
literal foo
238 |
239 | returns the value without the usual post-processing.
240 |
245 | Users with the P (oP) flag can tell the bot
246 | to ignore people or hostmasks. And 'unignore'.
247 | use 'ignorelist' to get the current list of ignored masks,
248 | if you have the P flag.
249 |
250 |
op on channel
251 |
252 | The 'p' (oP) flag in the userfile allows this
253 | to work. You'll need to set a hostmask. See
254 | files/infobot.users Also uses a
255 | crypted password.
256 |
289 | will add the factoids in code_to_country.txt
290 | to the infobot-is DBM.
291 |
292 |
dump_db
293 |
294 | The converse. It dumps out the DBM file to a flat
295 | ascii file. Note there is no extension on the DBM name,
296 | even though the system may use one.
297 |