10.45.3
2
3Really fix the stuff in DBM.pl for the %param hash.
4
50.45.1,2
6
7Fixed some path names, made a new tarball.
8
90.45.0
10
11Renamed the miscdir parameter to confdir (in 'infobot')
12Renames 'files' directory to 'conf'
13Seperated src/ into src/ and extras/
14Changed default name to 'i-bot' in the infobot.config file
15Rationalized the names of the dbs to use dbname as a prefix
16
170.44.5
18
19Push ./src onto the path so Util.pm gets in.
20New Airport.pl replaces METAR2 with a lot nicer stuff.
21  mendel++.  Very nice example of a module with forking,
22  etc.
23Fixed excuse.pl's return codes.
24Roderick++'s extensive factoid locking patches for
25  sharing DBs between infobots.
26Added scripts/make_snap and scripts/restore_snap , which
27  make and restore ASCII snapshots of the databases,
28  respectively.  This is good to do periodically as a
29  backup.
30Added stockquote.pl to get stock quotes (LotR++) and added
31  a boolean parameter ('stockquotes') to turn it on or off.
32Fixed a bug in the http proxy in the RDF fetching code (LotR++)
33Messages no longer record the apparent last channel
34  when given in private.
35Changed src/excuse.pl to guard against the server being
36  down, though i'm afraid the server is never going
37  to come back up.
38Cleaned extra white space off the end of parameter values
39  during the read of the config file.
40Currency exchance is now case-insensetive.
41There were several other small bugfixes that didn't make it
42  into this file during a move.
43
440.44.4
45
46Removed 'factpacks' subdirectory.  These packs are all on
47    the web site (http://www.infobot.org), and more.
48Tidying of purldoc code.
49Tidying of W3Search triggers
50Tidying of IMDB, Websters, etc.
51Splitting lines in say()/msg()
52HTTP proxy support
53Little tidying of the Math code.
54More informative return values from Process
55Better support for `no, $nick, ...'
56Much increased `tell' support
57perlfaq' support: uses RSS to get faqtoids from perlfaqprime
58Much needed fixes to Zippy factoids
59Babelfish rewritten
60Net::Telnet timeout fix to insult
61Fixed `exchange' typo in infobot.config.
62\| for quoting pipes in factoids, Avi++
63Added the channels patch. infobot.channels now sets channel-specific
64    options. The format is pretty much the same as the users file.
65Documented all the extensions.
66Fixed the `eval' command, which you shouldn't be using anyway.
67Removed spurious line breaks in Zippy's data.
68The `msgonly' parameter, if set, will see a question on channel and
69    respond to it via /msg
70The `continuity' parameter controls how many seconds must elapse before
71    the infobot assumes you have stopped addressing it. Set this to 0,
72    and the infobot will never assume that it is being addressed.
73Added a warning to Babel.pl if target language is `en'
74Close `karma' and `seen' databases in &killed, now karma doesn't
75    get reset.
76
770.44.3
78
79NOTE: You must update WWW::Search to the latest version
80    for the Google search to work.
81NOTE: As usual, the new features (mostly) have new
82    parameters that need to be defined in
83    files/infobot.config -- to update, you'll need
84    to move your dbm files into the new source
85    tree and edit infobot.config.  this is the best way.
86Made return values from myRoutines.pl said or messaged
87    rather than using &say and &msg inside myRoutines.
88    Use 'NOREPLY' to override this if you want to
89    use msg and/or say yourself (such as in a callback
90    or when forking).
91Moved the current myRoutines.pl file to a file called
92    Extras.pl.  myRoutines.pl is reserved for local
93    user extensions, and Extras.pl is now where the
94    add-ons in the distribution are.  They both
95    behave the same as the old myRoutines.pl did.
96    Extras is called after myRoutines.
97Moved several redirects out of Reply.pl and into Extras.
98Added 'literal' query -- 'literal foo' will show the
99    factoid for the key foo, with tags and |s literally.
100Added RDF/RSS support (LotR++) in RDF.pl.  Uses the tag
101    <rss="http://path/to/rdf/file"> and replaces it in-line.
102    RSS is RDF Site Summary; many sites now use this
103    standard format to encode their headlines/topics.
104    Requires XML::RSS.
105Added currency exchange module (exchange.pl) from
106    bobby@bofh.dk (thanks!)
107Added excuse module (excuse.pl), also from bobby@bofh.dk!
108Added 'purldoc' -- ^Masque++ -- which searches through
109    perl FAQ question titles.
110Removed usair module. They changed the interface and
111    this should just be re-written more gerally.
112Added support for Zippy.pl, which provides Zippy witticisms.
113    i made it require to be addressed. "infobot, yow" or
114    "infobot, be zippy" is the trigger.  (mendel++)
115    the parameter is "zippy" in infobot.config.
116Added 'divine (.*)', a magic 8-ball (boojum++)
117Made Search work again for users with the +s user flag set.
118    I still don't recommend this for bots with very big
119    dbs.
120Another pass at getting the 'reload' code to work (Simon++).
121Target adressing in 'tell' made more consistent (Simon++).
122Now works with MD5 passwords also (thanks to Bobby Billingsley).
123Added timeouts to LWP-using modules.
124Fixed CTCP ping reply.
125Started RIPE whois to complement Internic whois, moved the
126    whois stuff into myRoutines.  This is getting to be
127    a mess and still needs work. (Thanks to Bo Krosgaard for
128    this suggestion).
129
1300.44.2
131
132Added USAir flight information: 'usair flight 781'. requires LWP.
133    This should be replaced with a more general one.
134Added keyed channel patch from Eden Li (tile).
135Added new slashdot headline retrieval code care of Richard Hoelscher
136    (Rahga). It makes Chris Tessone's code go to the XML file on /.
137    Also restricted its recongized form to "slashdot" or "slashdot
138    headlines". Now called "Slashdot3".
139Added a factpack on Security to factopacks/ submitted by Peter
140    Johnson (rottz), and one that has all the ports listed for tcp
141    and udp from Samy Kamkar (CommPort5). Keep it up! :)
142Applied a patch to the insult server code from michael@limit.org.
143    should fix the function as well as "insult x in german".
144    btw, i can't send email to limit.org, so i hope he sees this :)
145Modified METAR code from Lazarus Long <lazarus@frontiernet.net>
146    and added a status line so it tells the owner it requires
147    LWP and Geo::METAR.
148Added Simon Cozens' Google search. Requires WWW::Search::Google.
149    "google for foo", "search google for foo".
150Expanded the Google search to do everything WWW::Search knows about,
151    and to fork so it wouldn't block the bot. Dejanews, Google,
152    Gopher, Excite, Infoseek, HotBot, Lycos, AltaVista, Magellan,
153    PLweb, SFgate, and Verity. try 'search <engine> for <keywords>'.
154    But you really need to install WWW::Search to use this.
155Added "shut up" (which changes Addressing to "REQUIRE"),
156    "wake up" (changes it to "OPTIONAL"), and "showmode" that
157    tells which mode it's in. Aldebaran++ for this. the param
158    "shutup" controls whether this is on; turn it off if you always
159    want it to be REQUIRE.
160Made the output of "seen" nicer; reports how long it's been.
161By the way, the Nickometer code is due to Adam Spiers, and it
162    was one of the earlier, relatively undocumented add-ons that
163    made an example for others to start off with. Added comment.
164
165
1660.44.1
167
168Fixed the CTCP bug which people were exploiting to crash. Thanks!
169Wrapped the babelfish translation code 'use's in evals so
170    lack of URI::Escape won't stop you from running the bot.
171Added Chris Tessone's slashdot headlines module with a few minor
172    changes (the same eval trick as above).
173Added some documentation to infobot_guide.html (gasp!)
174Added some factpacks in factpacks/ that were on the web site.
175
1760.44.0
177
178WARNING: many changes have been undocumented, but
179    i'm getting lots of requests to release the current
180    state -- warts and all.  Here it is, 6:35 AM Jun 24 99,
181    an hour before yapc 99 opens.
182many small things, as usual.
183babel code (jdf++) for using babelfish to translate
184    things. 'translate to german: hello'. this
185    can be shortened to 'x to de hello'.  *note:
186    LWP must be installed for this to work.
187'insult server' code; probably not very useful.
188    Also requires LWP.
189
190
1910.43.6
192
193freeside++ for code to clean up the imbd redirect.
194fimmtiu++ for 'your' patches. blame him now.
195fixed the text of the foldoc redirect (TorgoX++)
196added passwords for servers with passwords (ksiero++)
197    including server_pass in infobot.config
198made s/// case-insensetive (mendel++)
199added vhost support and vhost_name to infobot.config (elph++)
200changed some trivial status messages to be prettier
201made miscdir fully qualified, and changed it to ./files in
202    the default infobot.config file.
203moved stray help setup code into a subroutine and call it
204    from Setup.pl
205added "say" for +o (/msg <botname> say #channel foo)
206made it so that +o can make the bot join any channel
207added NOAA.pl, inspired by geniusj's sh script
208    to myRoutines.pl
209added METAR support (mendel++ for metar.pl), and this
210    plus the weather routine make nice examples
211
2120.43.5
213
214added <action> as a species of <reply>: X is <action> foo!
215added murrayb++'s patches for an ignore list file
216made help path relative (also murrayb++)
217renamed "scripts/make_db" to "scripts/update_db"
218added "scripts/unupdate_dbs" to back out all changes by nick
219    from a log file or part of a log file. good for removing
220    vandalism.
221made 'forget' logging more friendly to reversing it
222moved all the setup stuff more cleanly into Setup.pl
223made the ignore list modifiab;e at run-time with the P flag
224    and added 'ignore' and 'unignore' commands via msg
225added substitutions: X =~ s/A/B/
226
2270.43.4
228
229made private messages not respoken under the persistant
230    "seen" -- this was allowing people to get private
231    information on 0.43.3.  0.43.3 was only available for
232    a few hours, so i hope this impact is minimal.
233
2340.43.3
235
236many undocumented little things.  fixes, of course!
237fixed the reply after seen.
238made seen persistant.  added the infobot.config line 'seen'
239    for the seen-db location
240added what the last thing seen was.
241made the karma path fully specified.
242
2430.43.2
244
245fixed the learning from other bots based on URL policy
246
2470.43.1
248
249minor fixes here and there.
250fixed the math bug (finally! i think!)
251several NL patches.  Small CTCP fix.
252some statement and question changes.  nothing major.
253wanted to get this version out before i tried getting
254    things working on a few more platforms.  seems
255    pretty stable.
256
2570.43.0
258
259* UPDATE YOUR irc.params to infobot.config FILES *
260* UPDATE YOUR userfile.txt files to infobot.users FILES *
261* SOME DOCUMENTATION is now in doc/infobot_guide.html
262
263changed DEBUG parameter name to VERBOSITY
264removed the broken STANDALONE mode for now
265    and eviscerated the code for it
266removed some lint from the params file
267files/irc.params IS NOW CALLED files/infobot.config
268removed vestigial paramdbm code.
269removed MacOS-specific code.  this needs-writing.
270fixed the "out-loud" comment "you are not a bot owner"
271    to be silent
272removed the vesitigial and misleading infobot.doc
273    and created some documentation ! in doc/infobot.html
274    and children
275renamed userfile.txt to files/infobot.users
276added variable interpolation to infobot.config so
277    you can use $ident and all previously-defined
278    parameter values in the assignent of subsequent
279    paramters.
280moved userfile diagnostics into User.pl (!) from
281    top level infobot script
282renamed crontab.infobot to infobot.crontab
283converted all prints to status() for uniform logging
284    and console output
285removed other vesitigal logging code (Log.pl)
286redid the ansi color by type and status
287made internic reply via msg only
288removed MLF's -- these need rewriting
289moved the addressing code ALL out of Irc*.pl
290cleared initial negative on statements when the entry
291    doesn't yet exist (less weird factoids)
292added 'also |' to add disjuncts easily
293allowed coherent protection of any word from
294    processing using \. e.g. \is for
295    x \is y is y
296added %channels, %seen, %verified hashes
297added password + hostmask protection and command-on-request
298    with the syntax   /msg <bot> <password> <command>
299    where <command> is {eval (mode e), op (mode p), die (mode o)}
300previously public bot commands are now private message only or
301    privmsg + password
302added "sane" files (sane-is.txt amd sane-are.txt) that
303    will be loaded into the -is and -are dbs at startup
304    and will set some items to sane values.  put things
305    that you want to be permanent in these.
306isolated statement rejection code
307moved math into Math.pl
308moved search code into Search.pl
309rolled the requires in the top level script into a
310    single loop that automatically loads all the perl
311    files in the src directory
312fixed the interaction between addressing and volunteering.
313    minVolunteerLength applies only if addressing is not REQUIRED
314fixed the grotty math bug in perlMath that prevented negative
315    numbers from evalling properly
316
3170.42.1
318
319made it go for the _first_ verb rather than
320    the first verb in the list.  cleaned up the
321    debug info.
322fixed the underscore-erasing bug.
323there was a problem is \b$verb\b missing
324    things like .is; fixed.
325karma fix... allow "me", tolerate whitespace
326    (thanks fimmtiu and SirGawain)
327
3280.42
329
330fixed an interaction between marked questions,
331    minimum volunteering length, and addressing.
332allowed talk between friendly bots
333rationalized some of the logging, so you can see
334    who did everything ('is also' updates, in
335    particular).
336fixed the traceroute calling syntax
337for some, karma didn't work with 0.41.5; it may now :)
338
3390.41.5
340
341closed the traceroute hole
342fixed the reverse DNS
343fixed some 'huh?' replies -- made sure to return
344    the NOREPLY token in Update.pl
345* desire: cut confirmation replies (mode)
346* desire: silent mode (learn only)
347
348rev 0.41.0 - 0.41.4
349
350many minor things, mostly natural language,
351    some infrastructure. allowed "forget" to
352    end with final punctuation.
353added factpack subdirectory.  use these to
354    load up the bot with things.  more to come.
355fixed "addressing" -> REQUIRE.
356
357revision 0.41
358
359added "karma".  now "x++" or "x--" will change x's karma.
360    "karma for x" will show it's current standing.  This
361    idea came from dkindred@cs.cmu.edu and his plusplus
362    Zephyr bot.  Darrel Kindred is the mastermind here;
363    I just liked the idea and added it.
364added e mode in userfile to expose eval.  this is not
365    recommended.  requires a crypted pass, then
366    /msg bot <pass> eval <perl code>
367
368revision 0.40.1
369
370replaced default userfile and fixed a tiny bit of NL where
371    it would say "OK" even when X already was Y.
372the next rev will be the one for MacPerl etc., i hope. this
373    was just a quick fix because 0.40 wasn't letting people
374    teach by default.
375
376revision 0.40
377
378several small fixes -- fixed a big with article deletion,
379    made it so it doesn't echo when told to die by a non-master,
380    fixed a few NL things, removed the CTCP die command.
381Mailing list opens.
382I plan one more rev to make sure this pre-version works
383    with MacPerl, then we'll switch to the new model.
384
385revision 0.39
386
387integrated wf's changes with my own NL stuff from
388    purl exploits.  this is a quick-turnaround rev to
389    get things in place for an upcoming major rev.
390since nslookup, etc are now keyworded, removed
391    ipmatch and dmatch regexen from their preconditions.
392added param for default signoff message
393
394revision 0.38
395
396user system reworked flags are settable to limit
397    access to the bot's features.  Examples can
398    be found in files/userfile.txt.
399non-blocking sockets added to allow use of DCC
400    and other various functions to come soon.
401
402revision 0.37
403
404Standalone mode works again after an oops in the
405hooks by wildy... :)
406
407revision 0.36
408
409NL stuff, some fixes from purl.
410
411revision 0.35
412
413new option;  multiline factoids. you can use the
414    following syntax to teach infobot facts on
415    multiple lines:
416        <mynick> infobot: something is <multi>
417    anything said from there on will be recorded
418    as part of the fact.  make sure you designate
419    the end of the fact or it will continue adding
420    everything you say into the fact.
421        <mynick> <end>
422    this will end the fact and store it in the db.
423    made MLFs work with repeatIgnoreInterval to prevent
424        some nasty abuse potential; added status
425        line for repeat ignore
426
427revision 0.34
428
429fixed the addressing bug found in Irc.pl
430removed the "okay" message when it doesn't replace
431    a key with the same message; this makes it nicer
432    when more than one is on the same channel, though
433    they still all reply
434changed the default params to make urls optional
435fixed the "the" bug, and expanded the "can" grammar
436    to handle cases more flexibly.
437undid some bug that were introduced in handing the
438    code back and forth
439folded in code that got out of sync in parallel revs.
440
441revision 0.33.3
442
443added the formatting of public channel messages and
444    changed the hook code to be a bit more sane
445
446revision 0.33.2
447
448re changed infobot to OPTIONAL listening/learning
449    instead of just url's as default
450
451revision 0.33.1
452
453added a few irc operator things in param file
454fixed the math routines
455commented out the dotwise domain thing in Question.pl
456    because its regex didn't function correctly, etc
457    maybe just use the one nslookup so it doesnt get
458    confused with messages.
459
460cleaned up for a hopefully stable-ish 0.33
461
462revision 0.32b
463
464infobot doesn't require perl 5.004 anymore, you
465    can run safely with perl 5.001 i'm pretty sure.
466added support for ANSI Color -- enjoy, you
467    can turn this on/off in the params file. also
468    might ansi-fy a few more parts. not much though.
469fixed bugs with irc code where infobot
470    couldn't join &channels (local) or channels
471    with weird things like '!'.
472-patrick
473
474fixed the :) bug
475fixed non-default param file to files/irc.params
476-kevin
477
478revision 0.31b
479
480ok, reintegrating the irc modules.
481re-added $nuh support so that users can use their
482    passwords, etc.
483made numbers with more than 16 digits "a very big
484    number" in the math handling.
485it's indentation wars!  now that the tabs are gone,
486    most things indent nicely.
487cut out a few vestigial lines from the inlet code,
488    such as the hard-coded dbs (not used now anyway).
489i'm still torn about the copyright/license thing. have
490    to figure out how to handle that.
491changed the default nick back the Newbie.
492removed the #$%#$% param db that was bugging me so
493    much.  just read in the param file and be
494    happy.
495renamed "run_infobots.pl" to "run_if_needed.pl" and
496    made a couple of minor changes in it.
497
498
499revision 0.30b
500
501thanks, patrick!  Patrick Cole (wildfire) did
502    everything for rev 029b... many many thanks.
503made the irc version the default
504changed the default server to cmu
505changed the default channel to #infobot
506will do more in the near future...
507NOTE infobot now requires perl 5.004
508
509
510revision 0.29b
511
512the first and greatest appearance of the inlet code rolled
513    into infobot.   new look makes it easier to see what's
514    going on and gives it a greater feel to it.  All irc
515    code rewritten by Patrick Cole graciously
516added a traceroute command for lazy people, etc
517nslookup for domain lookups
518reindented all the code by hand (ugh) because it was in an
519    "Eight Megs and Constantly Swapping" kind of way :)
520infobot can now reconnect split servers ...
521    "/ctcp infobot autorecon on"
522internic whois querys should work now hopefully
523
524
525revision 0.28b
526
527the first appearance of "curl", the command-line url.
528    useful for one-line queries and updates of the db.
529    not as full-featured as the standalone url --
530    these will probably merge.
531fixed a minor bug in writeParamFile
532woops.  it was set to userLevel > 100 for the eval
533    instead of >= 100.
534
535
536revision 0.27b
537
538aha! there was a bug in the argument parser; used pop
539    instead of shift.  this ought to work better now.
540added absolute path to url in in4m.  use this if you're
541    going to invoke url from anywhere other than the
542    home directory.
543cleaned up in4m (top level) somewhat
544added mkpasswd and ckpasswd in anticipation of userlevels
545added writeParamFile in urlParams.pl.  I still would like
546    to get away from the param db and just read and write
547    a flat file.
548allowed $date, $time variables in values, e.g. "date is $date"
549allowed \i \me \my in values that prevents "person-switching",
550    e.g. "x is go ahead and tell \me" so it doesn't turn me
551    into "in4m" or whatever on output
552moved $safeWho generation into &purifyNick, which makes a
553    nick safe to use in a regex (among other things).  it
554    really just removes 'bad' characters.
555lifted the 'forget' code above most of the text processing
556    so it's more wysiwyf ('what you see is what you forget').
557stamped out what i hope is the last nick bracket bug
558lifted the normalize query and switch person calls into urlQuestion
559    so that they don't cause weird interaction problems
560fixed a bug in 'you' (in switchPerson) referring to the bot
561added a 'chomp' on reading init files to keep out extra \n's
562added more stuff in urlUser.pl
563removed the secretWord potential nightmare and replaced it
564    with the userlist potential nightmare
565addusers, readUserFile, writeUserFile, ckuser, users, etc
566    etc. in urlUser.pl
567userList parameter in irc.params, standalone.params
568userlevel 100 exposes eval (!), userlevel 10 lets you
569    override the 'REQUIRE' option for urls.  come to
570    think of it, REQUIRE could be a number...
571allowed 'allowUrls' to be a number, in which case it is
572    interpreted as the min userlevel to enter a non-url
573
574
575revision 0.26b
576
577added a '<reply>' prepended tag to allow simple responses
578    (thanks, scuzzi_)
579made the default behaviour not to whine about things that
580    are already defined (...but x is y...) unless addressed
581    which makes it nicer when more than one are on the same
582    channel
583
584
585revision 0.25b
586
587mucked around with run_infobots.pl to get it working with
588    cron more obviously
589urlProcess had an old-style %params ; changed to %param
590moved a check for null paramfile names into loadParams loop
591fixed a bracketing error that led to irc mode overriding
592made it optional to use the parameter dbm; it's actually
593    reasonable to just read the irc.params file only
594    and not go for the "persistant parameters"
595
596
597revision 0.24b
598
599added a "commitDBM every Nth transaction" form of the parameter
600made dbm retry 10 times to open if it fails
601changed the default standalone params to point to the right files dir
602added a 'usage' output to dump_db to match make_db
603added param allowLeave, which lets people make the bot leave a chan
604changed the top-level name to just in4m.
605added args to the command line: -p, -i, -s, -h
606added a src/myRoutines.pl file so people can customize easily
607
608
609revision 0.23b
610
611fixed dump_db :/ silly me
612fixed another little problem in urlDBM.pl
613
614
615revision 0.22b
616
617set up params as a db.  it's still a hack and needs work,
618    but it allows for persistant params that you can set
619    within a session.
620fixed various problems in referring to the right dbs
621removed gratuitous accesses to the dbs
622exposed more stuff in the standalone version.  see standalone.txt.
623set up initialization of dbs within in4m.pl
624removed RUN_ME_FIRST
625changed %params to %param to make set look nicer
626moved make_db and dump_db into scripts/ subdir
627    and cleaned them up slightly
628renamed params/ to files/
629made a doc dir and put the README for standalone in there
630added 'where is x at' form (thanks, scuzzi)
631
632
633revision 0.21b
634
635got rid of the question count access to the db.
636made -w happier.  someday i'll make -s happy too.
637added parameter files to make life better.
638the first appearance of the standalone desktop interactive
639    version that doesn't depend on irc.
640added params and hooks for the standalone version.
641params{nick} behaviour made consistant (urlSetup was overriding).
642@allowed_channels fixed to $params{'allowed_channels'}.
643fixed the if (($params{'addressing'} eq 'REQUIRE') && $addressed)
644    to !addressed in urlStatement (thanks again, cburnett).
645made it open and close dbm files on each update unless
646    told otherwise. some implementations did not guarantee
647    commit.  you can check your implementation and set
648    this to null or something else if you have a smart dbm.
649added params for maxKeyLength and maxDataLength.
650added params and fixed the help files. help files are
651    still ugly in the standalone mode.
652added allowUpdate parameter so you can have strictly answerbots;
653    this will tie in to having restricted lists of users + levels.
654made it so by default the irc version has no output.  turn
655    up the debug level if you need more insight into what's
656    going in.
657
658
659revision 0.20b
660
661this was a quick rev.
662fixed some of the gratuitous named stuff in urlProcess.pl
663made it so dns wouldn't try to fork under macperl
664got the tracking back up
665
666
667revision 0.19b:
668
669changed the default db's to be infobot-is and infobot-are
670changed RUN_ME_FIRST to deal with that and renamed the .txt files
671made a wantNick param
672make it so dbs are created if don't exist (as option)
673fixed $addressed so it didn't just look for prefixes
674fixed a couple of the parameters that weren't referring to the hash
675changed $urlCount to $factoidCount
676
677
678revision 0.18b:
679
680moved a bunch of params into the global hash %params
681added &params so people can see the settings
682   e.g. /msg in4m mysecretword &params();
683added some parameters up-front for server, port, etc.
684changed the bad nickname code
685the burnett fix (:$realname)
686added infobot.help as a default help file
687
688