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 ¶ms so people can see the settings 682 e.g. /msg in4m mysecretword ¶ms(); 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