From: timriker Date: Fri, 18 Feb 2005 03:36:34 +0000 (+0000) Subject: start keeping a ChangeLog again X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=a1cae1cf98e66f0e99efed592e40cddf04c9591b;p=infobot.git start keeping a ChangeLog again git-svn-id: https://svn.code.sf.net/p/infobot/code/trunk/blootbot@1141 c11ca15a-4712-0410-83d8-924469b57eb5 --- diff --git a/ChangeLog b/ChangeLog index 8491f04..97869ca 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,14 +1,23 @@ + + * src/: "s/hasParam/IsChanConfOrWarn/" + * src/: add handling for channel specific factoids: + "#botpark logs" -> http://ibot.rikers.org/botpark + factoidSearch is a space delimited list of prefixes to try + * src/: kill %myModules - loadMyModule expects the CORRECT CASE basename + * .: a ton of other crap that TimRiker never documented here + 2001-04-28 22:04 dms - * src/IRC/: IrcHelpers.pl, IrcHooks.pl, Schedulers.pl: hookMode: change chan to nick. if deopped by chanserv, check it - dont change channel limits during netsplit. + * src/IRC/: IrcHelpers.pl, IrcHooks.pl, Schedulers.pl: hookMode: + change chan to nick. if deopped by chanserv, check it dont change + channel limits during netsplit. 2001-04-26 22:37 dms * src/: DynaConfig.pl, Process.pl, UserExtra.pl, core.pl, Factoids/Statement.pl, IRC/Irc.pl, IRC/IrcHelpers.pl, - IRC/IrcHooks.pl, IRC/Schedulers.pl, Modules/News.pl: "~forget blah" now works. thanks to ElectricElf - documented user flags + IRC/IrcHooks.pl, IRC/Schedulers.pl, Modules/News.pl: "~forget blah" + now works. thanks to ElectricElf documented user flags public/private/notice send limit now configurable. thanks to EE added "countrystats" command. "blootbot: are you fixed now? :)" -- fixed. found by greycat @@ -2248,3 +2257,1018 @@ src/Modules/babel.pl, src/Modules/insult.pl, src/Modules/nickometer.pl: Initial revision +v1.0.0 (20000725): bug fixes mainly. + - GmLB found that scripts/setup_*.pl didn't work. Fixed. + - Fixed warning in Modules/Uptime.pl for clean install. + - More fixes for scripts/*mysql*.pl from GmLB. + - Added command 'hex'. + - GmLB fixed mysql2txt.pl and txt2mysql.pl. You can now import and + export to inforbot 'factpacks'.- + +v1.0.0RC3 (20000720): bug fixes mainly. + - Debian.pl's infoPackages() now checks for incoming + automatically and shows the new file. + - irq/dan found the bot wouldn't run if a stale (invalid) pid + file exists. Fixed. + - Created &closeDCC(), &closePID() + - Added factoid SAR of (3-123) => 53 + +v1.0.0RC2 (20000707): + - Ported back Berkerley DBM support. 95% of it works :) + - Also added pgSQL support. Will not work out-of-the-box. + - Updated README. + - Fixed up 'modules.pl' a bit so if anything fails, it exits + gracefully. Module reloading should work better now. + - DCC CHAT commands now must have '.' prepended otherwise all text + will me broadcasted to the dcc chat arena. + - Removed command 'part'. Use 'kick' instead :) + - 'random|cookie' now takes argument to narrow down randomness. + - Merged 90% of MbM's@OPN modifications. Thanks. + => bug fixes here and there + => 'tell' fixed. + => checks for owner of factoids for delete/modify factoids + - Moved Factoids/db* to . + - Misc stuff here and there. + +v1.0.0RC1 (20000701): + - Added several hacks (run away fork) due to bot misbehaving. + - Added deop. + - Added ability to disable factoid support. + - Reorganized source tree to be more modular. + - Created dirs: IRC, Factoids. + - moved partial core.pl and PerlMod.pl to modules.pl + - renamed Modules.pl to CommandStubs.pl + - Added command 'cycle'. + - hardguy/max noted that insult was borked. It wasn't converted + to the new fork format. Fixed but untested. + - Added 'ircstats' command. forgot about DisconnectReason + - Added to-expire-time on 'ignorelist' + - Forgot to clear %ignoreList on loading the list. + - moved 'ignorelist' from DCC-only to public/private msg. + +v1.0.0pre11 (20000601): + - we call &ircloop() if we want to reconnect. Any harm to perl? + - Wingate fixed yet again. maximum time for response is 6secs in + order to cache maximum number of hosts. + - Added ban() for Wingate. + - Forgot about virtual host support when changed over to Net::IRC + - process() still calls shmCycle() just in case. + - Added limit to how many random things we can have in a factoid + to prevent endless loops from occurring. + - All debian stuff now fully forks -- good. + - Failure on &loadMyModule() now deletes $forked{$label}. + - if instructed to join a channel "manually", tell who did it on + join. + - Debian module now searches woody's non-US properly. Misc fixes + here and there. + - Removed non-working mysql table locking code. + - Freshmeat.pl now uses LWP::Simple's getstore. How to load the + file on-the-fly? + - Looked at Modules-Reload and implemented idea in the bot. + - Forgot about flushing uptime in scheduler. + - Added unit conversion feature to bot, based on Units-Convert + package (at CPAN). + - Converted several scalars to hashes. + - Added slashdot,freshmeat and kernel announcements of new stuff. + - merged chanstats into one line, added top msg stats. + - Wingate now does intelligent on-the-fly caching and flushing to + a wingate file to prevent dupes. UNTESTED + - "find pident potato" now works after few mods/hacks :) + - ... + +v1.0.0pre10 (20000523): + - Fixed minor problems in Debian.pl, I hope. + => DebianDownload now calls generateIndex() if a download is + successful. + => More clean ups. + => generateIncoming() forgot about checking stale of idxfile. + - Modules in Modules/* now dynamically loaded. Using about ~200k + less ram now. + - Added support of user modes with param{ircUMODE}. Requested by + Flugh. + - hookMsg modified, we don't check ignore list if we're not + addressed or minvollength is defined. flooding is now + configurable by repeated message and total message, expire time + and count, like eggdrop. + - nickometer didn't reset the score. noticed by greycat+others. + - &setupScheduler() scheduler is only called once. + - UIS now supports proper locking and lock check. + - verifyUser didn't set userHandle to 'default' if not found. + - Added factoid reply support of '(blah1|blah2)?' + - Added 'FAQ'. + - Added DebianExtra.pl module to list bugs. a hack and ugly! + - Finally fixed list of old topics in Topic.pl, courtesy of mux + and nicholas_. + - Removed usage of quotemeta, replaced with \Q\E pair for regex. + - Included patches to modify stock-brokeness of perl modules. + 'cd /usr/lib/perl5; cat *.patch| patch -p0' + - Setup option whether to cache user online stats. Disabling will, + for sure, won't bloat the bot by 2-4megs (but why that much?). + +v1.0.0pre9 (20000512): + - Typo for outsider checking. Noticed when #debian flooder came + back yet again :) + - seenCycle was in minutes instead of days. fixed. + - Added User Information Services module. requested by Flugh. + => 'uinfo ' + => 'uinfo set ' + => 'uinfo unset ' + - Added &IsNickInAnyChan($nick); + - Added &DCCBroadcast($txt) to broadcast messages to all members + of DCC CHAT. + - &say() now changes '0' to 'zero' due to Net::IRC bug. + - Added &GetNickInChans($nick); + - Merged fooz's wingate scanner. + - Added 'ignoreAutoExpire' to differentiate time for ignore due to + flooding instead of 'ignore' through DCC CHAT. + => remove time for 'ignore' through DCC CHAT? + - Added &debianCheck() to check state of gzip'd files. + - ... + +v1.0.0pre8 (20000505): + - usual backlash from upgrade. + - added 'useStrict' option to infobot.config. + - added 'reload', to reload Core and Extras Modules. Does it + reload only if the file has changed? + - added preliminary (debug) code for ftpGet() for truncated + downloads. regetting will be added soon afterwards. + - minor fix for Debian.pl where a package exists but an + incomplete Packages file may not have info on that package. + - Modified on-the-fly ignore to be temporary. temporary ignore + requested by jCommons. + - added 'factstats requester'. + - preliminary use of scheduler for &checkPing() in &on_init(). + no event hook on 'pong' :((( + - Timers now use Net::IRC's scheduler, woohoo. Nice change over. + Moved ProcessExtras.pl to Schedulers.pl. + - Added 'factstats deadredir'. + - Don't prevent auto-reconnecting due to disconnection. + - Forgot initialization before any new IRC connection. + - Added scheduler for checking IRC connection. + - Fixed problem in Freshmeat module, if forked to download, would + not continue with query. => now it does, nice hack. + - Debian module should generate incoming index if does not exist. + - Chatting can be done through DCC CHAT. + - ... + +v1.0.0pre7 (20000426): + - INSTALL and README updated. + - auto-request for ops after joining all channels instead of after + each channel join. + - If factoid is requested by someone, show literally (no + evaluation) if owner of factoid matches aswell as if requested + privately(good idea?) + - on_notice fixed and debugging info removed. + - Added reconnect on HUP if we're not connected. I hope that it is + set to 0 otherwise this solution is dead. + - ';' added as address char. + - maths bug found by NoNix4. + eg: 6000.0/9.000 - 6.000/9.000 - 666.00001 + - nickometer bug (pi not defined) found by ddent. 'strict' cleanup. + - Preliminary CLI code included. Good for local use. + - typo in Topic.pl, found by jCommons. Fix for NULL topic. + - minor Debian.pl update to deal with 'missing files' on download. + - multi-shmwrite support added. looks like it doesn't "refresh" + the value properly if written many times. + - &verifyUser() only used if addressed. + - Applied 'use strict' to all code. Also used 'use vars qw()'. + - Added 'backlog #' to DCC CHAT. requested by jCommons. + - ctcp version reply wrong; FIXED. found by fooz. + +v1.0.0pre6 (20000407): + - README updated. + - Added retry on failure to reconnect through on_disconnect(); + REMOVED -- this spun an endless loop. + - Found why Googling didn't work. See README for fix. + - Forgot about channel casing bugs (on_{join|part}) after + changeover to Net::IRC. + - Changed addForked() to cycle through fork list and delete stale + forks in case a forked child dies unexpectedly. + - Renamed allowOutsiders to disallowOutsiders just in case if the + option is removed from the configuration. + +v1.0.0pre5 (20000331): + - setup_users.pl. DBI*() => sql*(). + - 'topic add BLAH' on empty topic would bork. Why didn't I pick + this up before? + - Somehow I removed (or it wasn't there) 'my @results' from + searchTable(); + - nickometer now uses loadPerlModule()... another 500 kB saved :) + - repeat flood detection prevention added. + - Added el-cheapo hash key counter... possible leak detector. + - Added 'factstats lame' for short and most probably stupid + factoids. + - Weather module removed + - Renamed 'join' to 'joinchan' to due warning//conflict raised + with perl 5.005 (on potato not slink). + - Disabled syscall (removes 300 kB on slink, 3megs on potato) + +v1.0.0pre4 (20000323): pseudo AutoLoader support. + - 'infobot' now first loads core.pl and logger.pl. + - timerExpire() fixed. + - Added unique maintainer count to 'dstats'. + - Added demand-on-load of external perl modules. Now we need + dynamic(on demand) loading of 'Modules/*.pl' modules ;) + +v1.0.0pre3 (20000319): + - Fixed Freshmeat.pl not to show duplicate packages found by + 'name' and 'oneliner' search. Made showPackage() function. + - Debian modules now does multi distro. (woody's non-us appears to + be different structure so does not work :(, very crude hack... + may not even work). + - Added subfactoid randomising. eg: '(one|two|three)'. + - 'dauthor' now works! + - karma fixed... used the wrong var name. + - Fixed doubling of text when message from 'nick' is ignored. + - Added 'redir' to designate one factoid as master and duplicates + as redirectors//slaves. + - Added addressing recognition character(s) support. eg "!status". + - Seen info now cached and flushed at intervals or upon exiting. + - Added 'EXAMPLES' file to doc/. + - Removed ancient '&channel()'. + - Bug fixes after offshore installation of bot. + - Debian output of 'info' fixed. looks like 'fm', heh. + - Debian distro stats added. I'm competing with larne and his mods + to dpkg@OPN#debian :) so far so good. + - Forgot to close shm upon exit, heh :) However this does not + prevent leakage when the bot crashes. + - Parameter 'forking' now works, courtesy of generic &Forker() + function, woohoo! Now we use &Forker() for _everything_. + I had this in the todo list, removed it and decided to implement + it once and for all. + - More bug fixes when moved changes to 'apt'. Several "bug + reports" sent from #debian, thanks! + - Moved infobot communications _after_ ignore checking code. + - babelfish changed format? disabled for the time being. + - ... + +v1.0.0pre2 (20000310): BETA TEST RELEASE + - Hacked multiple mysql connection support in. + - Renamed DBI to SQL, including functions. + - Added $ishost. + - Added backup scripts to create and mirror tables. + - listauth fixed. + - Added parse_warn.pl to decipher warn messages from logs. + - shm* now works. no more fork floods ;) + - Applied fork protection on all forking modules. + - Dict feature now supports specific retrival of definition, + however, default is still random. + - Debian feature now supports multiple sub distributions. This can + be further extended to architecture (perhaps easily). + - Added (but commented) larne's regex for debian search. + - Added &hasParam() to include notification that a feature + (command) requested is disabled in configuration. + - Added dumping of memory stats. + - Fixed broken timerExpire(). + - Added auto shutdown of bot if too much ram is used. + - Modified seen feature, set to off by default. + - UPDATE: fixed, about time. + - Improved parse_warn.pl to be like "diff". + - Dollar variable addition?? suggestions by ddent. + - 'factstats dupe' now ignores ' see'. + - UPDATE: fixed. + - Added random factoid timer. + - Don't redownload file via getFTP() if local and remote sizes are + the same. + - Added $count{'Dunno'} for unanswered questions. + - Fixed 'blah is also or' since we didn't allow 'or'. + - Added 'factstats redir' to display factoid redirections. + - Grep nick from list of nicks in IsNickInChan(). Bug found by + Mercury. + - Time taken and final xfer rate displayed in FTP. + - Fixed bug where 'or' is eval'd in Math.pl. Return '' if eval() + is not done. Bug found by dent. + - Added 'factstats redir' to list working and non-working + redirected (symlink) factoids. + - cmdstats now sorted by highest->lowest usage. + - ... + +v1.0.0pre1 (20000130): + - Mostly converted to Net::IRC, quite nice, like the dbm to mysql + change over :) + - Removed IrcHooks.pl and CTCP.pl. + - Moved hooks stuff to IrcHooks.pl. + - Moved IrcExtras.pl to Irc.pl. + - Removed ansi_control option. colors can be stripped within + &status() anyway, like for logging. + - Added DCC CHAT and DCC SEND support base. + - DCC SEND: null file. due to fork()? Fixed anyway. + - DCC CHAT: person's responsibility to close DCC CHAT. + +v0.99pre12 (20000125): + - Added intelligent flood protection and removed factoid + repetition prevention. + - Modified Math.pl... + - Unified tell code in Process.pl. + - Moved variable fix and addresing code to IrcHooks.pl + - Moved tell code from Question.pl to UserExtra.pl. + - Found that % and \ were double backslashed; added it to invalid + factoids. May have been caused by whoever unbacked up 'apt', + cerb? :) May want to add a function to automatically fix badly + formed factoids. + - Added 'factstats profanity', with &hasProfanity($str). + - Added functions for shared memory usage. + Uses: prevent exploitation of forked processes. + - Added 'factstats unrequested'. + - stale variables (vhost_name) forgotten in changeover. + - UPDATE: + - Fixed major leak with cycling of flood messages, typo :) + +v0.99pre11 (20000123): + - Fixes here and there... + - Debian find now searches Package names. Fallback automatically + to contents file search. + - Fixed typo related to log cycling. + - Added netsplit detection code. + - Started DCC support... very early stages. + - Replaced several 'foreach' statements with 'if' for efficiency. + About 5 instances of code... + - Debian contents search ignores man pages (unless search string + obvious for man page). Suggested by sgore. + - 'factstats locked' returns list instead of only count. + - &DoModes() bug found by larne. + - Used '$nick' instead of 'lc $nick' for $channels. + Found by larne. + +v0.99pre10 (20000119): + - Fixed bugs found when moved code to 'apt': + - added '^' and '|' to $isnick. + - removed 'local' and 'my' for some global vars. + - Typos of some variable names. + - More typos. + - Debian.pl contents search is better now. + - UPDATE: made changes suggested by greycat. + - Added Packages query now... + - Added &getRandomLineFromFile() + - Added LART, random text, Channel limit adjuster. + TODO => Wingate checker (NOT COMPLETED)... + - Added &iseq() and &isne(). + - Help info is not cached any more => loaded each time help() is + called. + - Added %timer hash, timestamp when something was last done. The + hash name is incorrectly named, eh? + - Moved parts of Process.pl to ProcessExtra.pl. + - Moved parts of User.pl to UserExtra.pl. + - Moved myRoutines.pl to UserExtra.pl. + - Moved Extras.pl to Modules.pl. + - Removed fortran math due to poor code style. + - Moved parts of Question.pl to UserExtra.pl. + +v0.99pre9 (20000115): + - Added messagecount column for 'seen'. Not used as yet. It + appears to be pointless, yes? + - Cleaned up DBI.pl: made use of $dbh->quote(); added + &DBIRawReturn(), &DBIInsert(), &DBIUpdate(). + - Forgot to clear $tell_obj after successful 'tell'. Founded by + solomon. + - Extra modules loaded only if enabled in config, may save some + ram. + - Math.pl cleaned up. + - Added DumpVars.pl, now we know where things are being leaked. + - Removed duplicate 'use IO::Socket'. + - Typo in "disabled" locking code which didn't work :) Founded by + washort. + +v0.99pre8 (20000110): + - Bailout if critical configuration variables are not found. + - Dict.pl works well now. + - Topic.pl now uses %topic or @topic. Added 'topic info' which + contains who and time info. How does @{$hash{$key}} work? + - Used 'use diagnostics;'. Fixed most warnings. + - Added &WARN(). + - Minor typo in &IsInvalid() on last statement, heh. + - Fixed (DAILY) logging, finally. Was broken too many times. + - Added &getLineFromFile() for debugging purposes. BROKEN + - Added Debian search-engine frontend => Debian.pl. + UPDATE: forget mysql, takes too long. + - Added Countdown => Countdown.pl. + - Made use of 'unless' instead of 'if !'. + - Added &DBIRaw(). + - Addressing required on all commands. + - Added &fixFileList() to simplify files with common directories. + - RevHippie stumped me with the best method to write this, + heh. Why do I always try to do things in 1 loop instead + of 2 loops? + +v0.99pre7 (19991230): + - Renamed some setup/DBI calls. + - Simplified nickserv/chanserv code. chanserv opping may break + though. Experimentation? + - Fixed broken stuff scripts/* due to src/* modification. + - Added table locking support. BROKEN. + - param{'ident'} deprecated. + - Removed param{'dbname'}, please rename the main table (with + factoids) to factoids.* + - Added ircII.servers support. + - Fixed infobot, Setup.pl and Files.pl. + - Freshmeat.pl fixed. Set the update time _before_ we update. + - Added factoid renaming. "rename 'from' 'to'". + - Added DBISetRow() for first time inserts, for Freshmeat. + Removed (rather used raw) use of fixmysqlbug for DBISetRow() + - Added 'seen random'; fixed randKey to work with 'seen'. + - Added preliminary code for whatis frontend. + - Added SIGHUP code for $SIG{HUP}. + - Added more error protection in DBI.pl. + - Moved logDate logging support to &status@Misc.pl. + - Confirmed logging does not duplicate from child any more. + - Added 'partialdupe' (not recommended) and '2long' to + &FactStats(); + - ... + +v0.99pre6 (19991223): + - Dict now fixed, courtesy of RevHippie and myself. + - Applied patch from RevHippie. + - Removed auto continuation code. + - Fixed learn =~ /HUNGRY/; + - Added $talkok and $learnok. + - Removed $param{'nick'} in favour of $ident. Added $safeIdent for + regex and made use of it. + - Moved Help.pl, Ignore.pl, Params.pl and part of User.pl to + Files.pl. + - Removed Internic.pl and Traceroute.pl. + - Fixed $isnick, renamed and fixed &purifyNick(). Added nick + compliancy checks when connecting to IRC server. + - Rewritten 'spell' code. + +v0.99pre5 (19991220): bug fix release. + - setupmysql.pl, slightly different for potato. + - dbm2mysql.pl + - performReply(), removed $trailing. FIX LATER. + - Freshmeat.pl, forgot about &main::, again. + - logType, broken date value. + - Fixed broken 'tell blah about what', readded $answer var. + - minLengthBeforePrivate superseeds preferReply. + - Forgot to use 'my' on three instances of $sth. + +v0.99pre4 (19991219): + - Added 'dupe' for factstats. + - Added illegal character detection in Statement.pl. + - Unified output (and duplication) of factstats (and other) code + to use one function, &formListReply(). Reduced code by at least + 2k :))) + - Minor modifications to &DBIGetCol(); + - Move +s flag to 'set search' in infobot.config. + - Altered talkMethod to allow 'private' or 'default'. Made no + sense to have it on public-only, heh. + - friendlyBots will be kept to be compatible with other stock + infobots but soon enough multiple mysql database support will be + added. Will be quite nice once done. + - Added maxListReplyCount and maxListReplyLen. Read infobot.config + for details. + - Replaced $refresh with freshmeatRefreshInterval to config. + - Changed learn setting from ALWAYS to HUNGRY. + - Reorganised Extras.pl, we shouldn't bail out if the command + can be disabled as the person who runs the bot should have + brains. + - Moved some Process.pl stuff to myRoutines.pl. + - --- + - &searchBy*() allows ^ and $, like in regex (basically sar'd). + removed $notexact variable. + - Fixed 'no,blah is blah' bug. + - Changed 'is also' char to ';;'. + - Added &IsInvalid(); to unify Statement (when creating) and + factstats/broken (when checking/verifying). Works like a charm + :))) + - Removed sane stuff; added infobot.ignore. I hope lenzo's + ignoreList code works. + - Fixed setupmysql.pl + - Moved repeatIgnoreInterval to minRepeat*Reply where * is Private + or Public. + - Now preferReply works. Wasn't hard as it first looked. + - Added global '+' flag support. + - Fixed logging: added logType param; if logType =~ /DAILY/, new + log is created daily. Date is time-of-day, aswell. + - added &fixMySQLBug() => adds backslash to special chars. + +v0.99pre3 (19991216): + - Fix connection bug where if host does not resolve, it appears + that it's connection refused. Now non-resolving hosts are + detected earlier. Found by some *.it (or .es??) guy. + - Added 'sync in #s' when the bot has joined a channel... just + like in BitchX. + - Added txt2mysql.pl. + - Removed instances of '^\s*' to '^' since $message can be + manipulated in Process.pl. + - Fixed Statement.pl so that it doesn't catch queries... it's a + stupid idea any way. + - Removed 'confused' in favour of 'dunno'. + - Funny hack in performReply(). Stupid but it works. + - Added 'host' column in seen table. + - Made use of &gettimeofday() for freshmeat and search function. + +v0.99pre2 (19991213): + - Made use of new database (directory) not to interfere with other + crucial dbs. + - Re-added &getKeys(), mysql's RLIKE wouldn't like "'" in the + statement. If several of similar queries are required, better + off using &getKeys(). + - Added two more conversion scripts. + +v0.99pre1 (19991211): personal release. MAJOR CHANGES. + - create a script to add the blootbot user to the mysql server and + prepare tables for use with the bot. + - butchered Question.pl, Reply.pl, Statement.pl and Reply.pl. + - main factoid db ported over; barely tested. + - seen ported over; appears to work. + - karma ported over; not tested at all. + - freshmeat ported over; fix brokeness. + - search (listvals and listkeys) ported over. + - rootwarn ported over. + + - Use quotemeta in DBI.pl on special chars, especially ' :) + - Added factstats 'broken' function. + - Made use of multiple connections to avoid clashing... does + clashing only occur when there's an INSERT/UPDATE or SELECT or + both? + - Changed $factoid to $faqtoid... good idea? how about $lhs? + - Changed getKeys to countKeys to take advantage of mysql. + - Added randKey to get random primkey,key from table. + - Removed process() when msgType == 'public action'. Why would we + want to care about actions anyway? + - Fix public action; Added private action to &status(). + - Added &ERROR(); + - Made message and who flooding independent in IrcHooks.pl. Now we + use %flood... should be expanded to use %ignoreList; + + NOTES... + - DBI.pl has more functions than what DBMExtra.pl had in order to + implement a table-like hash list. + - &DBISet() always verifies if an entry already exists and does an + UPDATE instead of an INSERT... flaw in mysql or my code??? + - &DBISet() can only set one (in UPDATE, two in INSERT), variable + at a time. Does this impose a performance hit? like on seen. + - ... + + TODO... + - infobot.cgi not ported over. + - weather not ported over. + - add alarm call between while in Dict.pl. + +************************************************* +************* CHANGE OVER TO MySQL ************** +************************************************* + +v0.18.2 (199912??): dropped. + - Fix for Weather.pl. + - Fix for Dict.pl. + - ... + +v0.18.1 (19991130): last public release before database change over. + - Modified &IsNickInChan() so that a foreach is done case + insensitively against nick to prevent misses. + - Added server "jump" support, requested by larne. + - Added seenMaxDays, maximum number of days to keep seen info on + someone, otherwise delete it. + - Forgot to use $main:: in Freshmeat.pl and Weather.pl; fixed. + - Changed userList format to $userList{$user}{$flag}{$what} = 1; + Converted all code to use this userList format. + - Changed version string to include OSname. + - Replaced $locWho with $who or $origWho. + - Removed hidden whitespaces and tabs at and of statments. + +v0.18.0 (19991128): + - Post release typo fixes here and there. + - Changed lc() to tr/A-Z/a-z/ where suitable. + - Redid join command in Process.pl. + - Cleaned up regex (mainly .* => \S+). + - Found $ischan to be broken; fixed. + - Changed Slashdot3.pl to have "joining" code like in DBMExtra.pl. + - Made use of &nick() and &IsChan(); + - Added &kick() to Misc.pl; kick command to User.pl. + - Added &IsNickInChan(); + - Fixed loading Param file before pidfile and other file related + stuff. + - User.pl + - Revamped; removed unused functions. + - Moved Set.pl to here. + - Moved 4op code here. + - Moved some functions from Process.pl to here. + - Rewrote rehash command. + - More casing fixes; debugging info _should_ help to find more. + - Changed infobot.users. + +v0.17.0 (19991126): + - Netsplit code prevented stats of signoffs; fixed. + - Messed around with logging code to prevent control chars. + - Removed exchange and excuse module because of brokeness. + - Applied patch from RevHippie. Thanks! + - Added delimiter support in addressing of hello msg. + - Removed 'score' in karma. + - Added 'learn' (ALWAYS or ADDRESSED) support. Normal + operation == ADDRESSED. Bot won't respond voluntarily to + factoids but will respond to learning. + - Ability to turn off minVolunteerLength. + - More changes to prevent chatter in unaddressed manner. + - We remove any ansi or control chars when piping to the log file. + RevHippie++. + - Added 'thanks' language. + - Typo in Freshmeat.pl; Fixed. + - Added $rootwarnmode = passive || aggressive to satisfy lilo@OPN. + default is passive. + - Fixed mix up of fix in 'tell' code. I had the if statements the + wrong way around. + - Removed more debug code. + - FactStats/author fixed; now multiple authors with the same stats + are printed together. + - Added logfile cycling w/ approx maximum size. + - Changed infobot.config yet again. now it's much better than + before. Some variables removed. + - Added Unset support to Set.pl; Changed so anything can be set + or unset. + - Made use of &purifyNick() so regex doesn't break. $safeWho + now defined earlier. + +v0.16.0 (19991122): + - Applied bug fixes from infobot 0.44.3, added md5 password + support (*BSD?). + - Added &IsParam() to check existance of params the proper + (strict) way. + - Moved rootWarn stuff from Extras.pl to RootWarn.pl. + - filenames (rootwarn and uptime) now not statically set. + - Cleaned up config file and Setup.pl. + - Fixed up &parsectcp() in CTCP.pl. + - Changed ($ischan) to (\S+) in Irc.pl under PRIVMSG. + - Major reorganisation of Misc.pl -- removed unused functions. + - Moved some variables to 'infobot'. + - Fixed ANSI typo by some loser; Changed format of &status()'s in + Irc.pl, seems to look nice thus far. + - Added "author" command under &FactStats() in DBMExtra.pl. + - Added case insensitivity to &IsHostMatch() and search strings in + DBMExtra.pl. Any more of these? + - Removed disabled netsplit code. + - Changed 'defined' to 'exists' on all hash lists, 'cept hashes + created by opening db's. + - Modified repeat code on modified_time. If this time is small, + msgType is changed to 'private' for flooding reasons and + max_time is reduced by half. latter appears not to work??? + +v0.15.0 (19991112): + - Quite funny that once the repeat code was moved to Question.pl + factoid extension leakage was found. maths leakage was also + happening but somehow is fixed when the repeat code was moved + back. + - Clean up of variable names in Reply.pl and Question.pl + - Changed 'length' to 'eq ""' or 'ne ""' where possible. + This should produce faster code but benchmarks prove this change + is neglible. Guess perl is slow :) + - Cleaned up and fixed 'tell about ' code. + - Set.pl fixed; Added DEBUG to allowable set list. + - Volunteer code moved to top of Question.pl. + +v0.14.0 (19991110): + - Message overflow fix in &FactStats(). + - Added 'factstats new' command to display new factoids in the + last 24 hours. + - Fixed up ping reply, requested by a few from #debian@OPN. + - Re-added debugging of DBMExtra due to leakage of orthaned + factoid extensions. Need to investigate and confirm the + lowercase fix of factoids. + - Two functions which used &mkRandom() now fixed due to poor + effort in implementation. Added missing srand(). now the maximum + length of 475 should not be exceeded, hopefully. it can be + beefed up to 490 if needed. + +v0.13.0 (19991108): + - Made use of &help() which uses infobot.help. This paves the way + for NLS as suggested by njs. + - Fixed up code on netjoin/netsplit in an effort to find + statistics leakage. Added debugging info to netjoin/netsplit. + - Fixed typo (three instances) in factinfo where time() was used + instead of the data in the factoid extension. Found by larne. + - Allow main thread to do a clean exit while the child does + nothing. Possible fix for weird uptime info. + - Removed sar of 'your|i|you|me' to prevent automated reverse + persona which is better done by the user. Suggested by njs. + - Cleaned up behaviour of &FixPlural(). Fixes a bug. + - Repeat prevention code now replaced (moved aswell) to use + factoid extensions + - Fixed 'factstats requested' error. + +v0.12.6 (19991103): bugfix on bugfix release ;) + - Fixed bug where you can't lock a factoid because the hostmatch + ($thisnuh = "") failed. Found by wolfie. + - Fixed up 512byte overflow in factstats[requested]. + - hm... wonder how I broke Weather.pl. + +v0.12.5 (19991101): Bugfix release + - Fixed "bad" array in Freshmeat.pl. All appologies to scoop. + [update: use array[5] if it exists, otherwise do as before.] + - Removed some debugging info from DBMExtra.pl. + - Fixed inconsistent chanstats behaviour in SignOff. + [Update: forgot to delete the user info _after_ we do the stats] + - Moved factoid stats count and repeat checking code to + Question.pl. Now it works as planned :) :) :) + +v0.12.4 (19991028): + - Added factstat and listauth commands. + - 'topic add' now prepends subtopic not append. + - Fixed up minor problem with 'topic restore last'. + - Changed default of locking access to people who own their + factoid or to registered ops. This should please #debian. + - Reduced usage of @{$var} which cannot be really deleted cleanly. + - Moved DBMExtra-related stuff from myRoutines.pl to DBMExtra.pl. + - Added new functions &mkRandom() and &getRandom(). + - Changed all code (Search.pl) which used random to the one + developed in DBMExtra.pl. => made code slightly smaller. + - Cleaned up Search.pl to look nice. + - Found yet another casing bug under TOPIC in Irc.pl. + - Fixed bug where dbmextra queries where made on non-factoids like + maths and probably karma. + +v0.12.3 (19991025): + - Added while loop around connect which should prevent the bot + from falling down (dying). + - Forgot 'main::' for &getURL in Freshmeat.pl. Changed + opening/closing code yet again. Removed checking on open + read-only. + - Changed Dict.pl to reply private only by default. '+' will allow + public responses without suggestions/synonyms. + - Added checking against pidfile. running two bots from the same + dir at the same time using the same db == disaster. Ask #debian + about it :) + - Implemented Weather.pl. + +v0.12.1 (19991022): + - Made distribution out of infobot -> blootbot. + - Irc.pl was prone to be fucking up -- swapped (.*) to (\S+) where + necessary. stab lenzo for this :) found more instances of this. + [update: appears to trap too many of something, check + 'chaninfo #chan' for info.] + - Minor fix for Freshmeat.pl when opening/closing db. + - Factoid extension code is ready for testing. possible in the + future to add "factstats" for like: top 3 requested factoids. + [update] added lock checking on sar and on updates ("no, "...) + +v0.12.0 (19991020): (v0.11.6 + bugfixes + trial) + - Major shake-up of how addressing is handled -- damn it took me a + long time to get this to work. + - Changed command names in Topic.pl to &topicBlah(). + - Found and fixed (hopefully) all 7 channel casing bugs. + - Moved freshmeat to use berkeley db instead of raw appindex.txt + file. finally got it to work, seems 30% faster. Creating the db + takes a long time though. + - Added "set" command => Set.pl. + - Added support of talkMethod which behaves much like lobotomy. + In the future, talkMethod =~ /(lobotomy|none)/ may be used. + - Purged: METAR2.pl, NOAA.pl, UAFlight.pl. + - RootWarn only works if the bot is opped in the channel. + - Created performStrictReply() from performReply(). + - Quote.pl and Internic.pl now work. + - Fixed a few typos in myRoutines.pl + - Removed bold on dictionary. + +v0.11.5 (19991012): + - Fixed $chan to lowercase where appropriate. + - Fixed volunteer reply code... I guess it worked before but now + it is somewhat cleaner and easy to understand. + - Added factoid owner database, requested by njs. + - If public message is addressed to someone else, we ignore it. + - Now support referer factoids ('blah is see erp'). if + 'blah' is asked, the reply from 'erp' is given. + - OPN allows part messages -- fixed in /PART/ for $chan. + +v0.11.3 (19991008): + - Uptime.pl appears to be fixed after rewrite of getUptimeInfo. + - Fixed up Freshmeat.pl for updating the index. Proxy is now + optional. + - Moved rootWarn to RootWarn.pl. Added hall-of-fame of losers. + - Cleaned up bugs/typo here and there which may have caused the + bot to behave in a weird manner. + +v0.11.2 (19991006): + - ChanInfo now displays "statistics" just like our little friend + BitchX. + - Minor change in determining args on commands [myRoutines]. + - Added "cmdstats". + - Added rootWarn checking on checks. Repeat offenders will be + punished. Requested by larne. [update: we aren't so harsh now] + - Added lc $chan where appropriate. damn uppercase channames. + +v0.11.1 (19991005): + - all instances of undef on hash lists changed to delete which + _now_ works. found minor bugs/typos related to DUI. + - Now skip internic whois intro (13 lines) to fix bad output. + - Forgot to subtract $i from $counter in chaninfo when full. + [update: whole function changed, see above] + - Now backup (and gzip) freshmeat index file. + +v0.11 (19991004): looks like a bug fix release :) + - Fixed typo in reply of Topic.pl/&NewTopic(). + - Decreased max topic length allowed; now print it, too, for + debugging. + - Altered repeat code to only work on public. Flooders should be + taken care of by the (allowOutsiders == 0) code. if not, there's + 'lobotomy' :) + - Added excess flood protection around &rawout(); + - Don't bother about outsiders if we haven't joined any channels. + - Changed email address to one throughout modifications. + New files have neato headers. + - Uptime.pl fixed, didn't need to check against ($pid == $$) + - Repeat-prevention code kind-of looks what it was before but this + one, at least, works :). any problems, just bitch at me. + - Added debugging code for chaninfo to diagnose "problem". + +v0.10 (19991001): + - Added Uptime module. + - Added Freshmeat module. + - Dict now returns definition without suggestions (syn's) by + default. Also cleaned up. + - NickServ/ChanServ major clean up. + - Join upon reconnect fix: set $joinchans = 0. + - Fixed up Help.pl, added more help entries. + +v0.9b (19990925): + - Did repeat-prevention code from scratch -- now works. + [19991001 update]: multiplier is now 2 instead of 10. + - Made reaction to "hello" more strict. the same should be done to + "thanks", don't you think? + - Converted remaining modules to use forking. should be no more + bot lockups... + - Changed maxhits to 20 for Search. + +v0.9 (19990924): +16K added to patch size. + - More, more and more major changes. + - Fixed up inappropriate usage of performReply. + - Added lobotomy command to (un)silence the bot. + - Added allowOutsiders toggle to prevent usage of the bot + _outside_ the channels the bot is in. + - Added $fullyaddressed, enabled if $addressed == 1 and + $param{addressing} == REQUIRE. + - Readded auto-continuity code. it is disable if not fully + addressed. otherwise works as per normal. + - Moved join-on-start-of-motd code to end-of-motd. If nickserv && + chanserv is enabled, IDENTIFY is done first. If okay, then we + proceed to join channels. + - When bot joins channel, summary of nicks (ops|voice|total) is + given instead of NAMES list. + - Chanserv support moved to "end of names". + - Detection of nickserv (no such nick). + - join channel if channel is on our joins list and if we're not on + it (hrm, providing their client prevents it). + - ... + +v0.8 (19990919): +50K patch from last version. + - Major changes, particularly cleanups and fixed a few bugs: + - Found 2 or so instances of $params{}. Either deleted or + renamed to $param where appropriate. + - Shortened foreach statements where possible. + - Replaced duplicate code involving &say and &msg with + &performReply($text,[0=rand,1=strict]). -- major shortcut and + cleanup. + - Added tracking of all users on channel(s). Users are + deleted if they disappear for whatever reason with + &DeleteUserInfo. + - Tracking of channels now works; they are deleted if we disappear + from any channel for whatever reason (hopefully). + - 'forget' command _SHOULD_ be wrapped with $addressed. + - Moved 'modes' from User.pl to myRoutines.pl as 'chaninfo'. + - Added stock quote support by using mu's script. Thanks. + - Added param{*} around stuff in myRoutines.pl for flexibility. + - Added auto-join on invite if not on specific "join_channels" + - Renamed &Timetostring to &Time2String and made use of it not + only for status but for seen. + - If $param{*} == false, it is now not defined. + - Removed Auto-continuity code -- very evil for any bot commands + other than non-intentionally requesting a factoid. + - crypt command required "(" before passwd??? + - Removed stupid commands which just generate URLs for you to cut + and paste. + - repeatIgnoreInterval code _NOW_ works unlike before. + - Added support for Topic.pl not to update topics if commands are + prepended by '-'. Topics can be "rehashed" when either a) the + next command is used without '-' or b) "rehash" is the next + command. + - &NewTopic takes two more args to prevent repetition and now does + topic checking. Check code for details. + +v0.7 (19990914): + - Major clean up: Search.pl now only uses the "is" dbm; final + pair of parens in commands removed for legibility; Removed + debugging for NickServ, ChanServ to go. + - Added multiple subtopic delete ability. requested by Mercury. + - Moved responses/replies to [files/infobot.lang]. Modified + related functions to conform, including mine. + - Fixed up Kernel.pl to use different type of sockets. Previous + code somehow broke itself. + - Added, but disabled, semi-working timer support. Need to ask + lenzo some questions on how to implement it the best way. + - Added channel (and offender's) notification if someone joins the + channel with root. requested by #debian. + - Added dict.org support. For now, it uses wordnet and returns a + random definition. Could change in the future. + +v0.6 (19990903): + - Added support for nickserv and chanserv, requested by is. + - Updated README to describe new features and modifications. Do we + need to elaborate on the modifications to the depth where it + would exceed the size of the patch? + - Minor clean up. + - Removed assumed-continuity of messages -- should be used if + addressing is in optional mode but would be bad in any situation + if more than one infobot existed in the channel. + - Added parsing of g flag to factoid sar. + +v0.5 (19990827): + - Better way to confirm if bot is on channel now for topic + management. Also added check for +o+t or -t. &DoModes() on + server stuff, too? + - Patch updated to work for infobot-0.44.2 only. + - Found a bug in Irc.pl under "NAMES" where $u was used initially + but trashed afterwards. => replaced $u w/ $_. + - Lost track of a bug found by Mercury. Seems to be fixed now, + somehow, heh. + +v0.4c (19990822): + - Worked on random-cookie -- random responses can now be added + (internally) with ease. + - Noticed joeyh changing his nick to/from '||' which reminded me + of something bad ;) hint: topic management. + - One line patch to allow '|' in factoids; delimiter is now '||'. + +v0.4b (19990818): + - Implemented patch from mu. Now it is possible to use the topic + command through private messages to the bot instead of the + channel. + - Replaced SAR of \| with \|\| so we can still use the single + pipes. Double pipes will be either removed or promote an error + message. Found by Robot101. Added el-cheapo work-around if the + last char of subtopic is |, kill it. + +v0.4a (19990816): + - Added cheap fix (sleep 1, heh) to excess floods of 'topic + history'. Is sleep 1 enough? + - Added 'random' for random value{key} from database. + Requested by jCommons. + +v0.4 (19990815): + - Fixed topic history by replacing push with unshift. Now the + history list is reversed and cycled properly. + - Reversed Changes list. request by mu. + - Totally fixed up topic history since it would break if + 'topic add' was induced quickly. Now we only record topics set + by us (for reasons) and onjoin topics (set by anyone). + - Removed 'topic last/reset' because how do you know which topic + is last? Better control with 'topic restore'. + +v0.3c (19990813): + - Fixed 'topic mv 2 before 1' bug. Forgot to store 'move' topic + before doing the foreach loop. + - Touched up Kernel.pl in preparation for auto-notify feature. + +v0.3b (19990812): + - Added version string to new files so we know which version + of patch we're using (or used). There you go, Mercury ;) + - Fixed up DecipherTopic to reject null subtopics. This would, if + unchanged, (theoretically but not tried, luckily) produce a + domino-effect of problems if the topic was to be changed. + Update: check if the supposed null topic contains spaces + within the nick component. If so, then it's not + nick, therefore treat like ownerless subtopic. + - Worked on README. + +v0.3a (19990810): + - Changed back to use topic{chan} (now topicnow{chan}) since + @topiclist{chan} (now @topichist{chan}) does not deal with dupes + or blanks. + - Renamed 'topic last' in preference to 'topic reset'. Original + command can be used but is vague in meaning. + - Fixed several typos made in Irc.pl. + - Replaced 'defined' with 'length' in if statements. + +v0.3 (19990809): + - Applied patch from mu for Irc.pl | Topic.pl. + - Replaced %topic hash and $topiclast with @{$topiclist{chan}}. + Much cleaner implementation. Thanks to mu for this. Fully + implemented by xk. + - Reworked on topicbyme (was topiclast), should work now. + +v0.2 (19990808): + - Changed name of patch to funkystuph. + - Added history/last/restore to Topic.pl by request of mu and is. + - Reorganised help and order of commands in Topic.pl + - Bot must be addressed to use commands. + - Fixed bug if multiple infobots were in the channel. + - One occurrence where Cipher was called instead of CipherTopic. + - Fixed up Slashdot.pl. Problems: a) borked completely b) missed + first headline. el-cheapo fix but it works. + +v0.1c (19990729): + - Fixed long list{keys|values} bug, hopefully. + - Now randomize key results from search. + - If keys contain ',', underline to differentiate it. + - Fixed possible DoS against Kernel.pl. + - Bug fixed with Kernel.pl repeating itself. + - Typo of @results [one occurrance of @result] + +v0.1b (19990723): + - Fixed bug with &CipherTopic where, if no owner was found, it + would just use NULL. [like "Topic ()"] + - Added kernel feature. + - Moved error messages to public/private, depending on behaviour. + Help-related stuff is private(msg) only for convenience. + +v0.1a (19990721): + - Misc cleanup, removed repeated code. + +v0.1 (19990720): + - Initial release. diff --git a/ChangeLog.old b/ChangeLog.old deleted file mode 100644 index 5d10ab1..0000000 --- a/ChangeLog.old +++ /dev/null @@ -1,1015 +0,0 @@ -v1.0.0 (20000725): bug fixes mainly. - - GmLB found that scripts/setup_*.pl didn't work. Fixed. - - Fixed warning in Modules/Uptime.pl for clean install. - - More fixes for scripts/*mysql*.pl from GmLB. - - Added command 'hex'. - - GmLB fixed mysql2txt.pl and txt2mysql.pl. You can now import and - export to inforbot 'factpacks'.- - -v1.0.0RC3 (20000720): bug fixes mainly. - - Debian.pl's infoPackages() now checks for incoming - automatically and shows the new file. - - irq/dan found the bot wouldn't run if a stale (invalid) pid - file exists. Fixed. - - Created &closeDCC(), &closePID() - - Added factoid SAR of (3-123) => 53 - -v1.0.0RC2 (20000707): - - Ported back Berkerley DBM support. 95% of it works :) - - Also added pgSQL support. Will not work out-of-the-box. - - Updated README. - - Fixed up 'modules.pl' a bit so if anything fails, it exits - gracefully. Module reloading should work better now. - - DCC CHAT commands now must have '.' prepended otherwise all text - will me broadcasted to the dcc chat arena. - - Removed command 'part'. Use 'kick' instead :) - - 'random|cookie' now takes argument to narrow down randomness. - - Merged 90% of MbM's@OPN modifications. Thanks. - => bug fixes here and there - => 'tell' fixed. - => checks for owner of factoids for delete/modify factoids - - Moved Factoids/db* to . - - Misc stuff here and there. - -v1.0.0RC1 (20000701): - - Added several hacks (run away fork) due to bot misbehaving. - - Added deop. - - Added ability to disable factoid support. - - Reorganized source tree to be more modular. - - Created dirs: IRC, Factoids. - - moved partial core.pl and PerlMod.pl to modules.pl - - renamed Modules.pl to CommandStubs.pl - - Added command 'cycle'. - - hardguy/max noted that insult was borked. It wasn't converted - to the new fork format. Fixed but untested. - - Added 'ircstats' command. forgot about DisconnectReason - - Added to-expire-time on 'ignorelist' - - Forgot to clear %ignoreList on loading the list. - - moved 'ignorelist' from DCC-only to public/private msg. - -v1.0.0pre11 (20000601): - - we call &ircloop() if we want to reconnect. Any harm to perl? - - Wingate fixed yet again. maximum time for response is 6secs in - order to cache maximum number of hosts. - - Added ban() for Wingate. - - Forgot about virtual host support when changed over to Net::IRC - - process() still calls shmCycle() just in case. - - Added limit to how many random things we can have in a factoid - to prevent endless loops from occurring. - - All debian stuff now fully forks -- good. - - Failure on &loadMyModule() now deletes $forked{$label}. - - if instructed to join a channel "manually", tell who did it on - join. - - Debian module now searches woody's non-US properly. Misc fixes - here and there. - - Removed non-working mysql table locking code. - - Freshmeat.pl now uses LWP::Simple's getstore. How to load the - file on-the-fly? - - Looked at Modules-Reload and implemented idea in the bot. - - Forgot about flushing uptime in scheduler. - - Added unit conversion feature to bot, based on Units-Convert - package (at CPAN). - - Converted several scalars to hashes. - - Added slashdot,freshmeat and kernel announcements of new stuff. - - merged chanstats into one line, added top msg stats. - - Wingate now does intelligent on-the-fly caching and flushing to - a wingate file to prevent dupes. UNTESTED - - "find pident potato" now works after few mods/hacks :) - - ... - -v1.0.0pre10 (20000523): - - Fixed minor problems in Debian.pl, I hope. - => DebianDownload now calls generateIndex() if a download is - successful. - => More clean ups. - => generateIncoming() forgot about checking stale of idxfile. - - Modules in Modules/* now dynamically loaded. Using about ~200k - less ram now. - - Added support of user modes with param{ircUMODE}. Requested by - Flugh. - - hookMsg modified, we don't check ignore list if we're not - addressed or minvollength is defined. flooding is now - configurable by repeated message and total message, expire time - and count, like eggdrop. - - nickometer didn't reset the score. noticed by greycat+others. - - &setupScheduler() scheduler is only called once. - - UIS now supports proper locking and lock check. - - verifyUser didn't set userHandle to 'default' if not found. - - Added factoid reply support of '(blah1|blah2)?' - - Added 'FAQ'. - - Added DebianExtra.pl module to list bugs. a hack and ugly! - - Finally fixed list of old topics in Topic.pl, courtesy of mux - and nicholas_. - - Removed usage of quotemeta, replaced with \Q\E pair for regex. - - Included patches to modify stock-brokeness of perl modules. - 'cd /usr/lib/perl5; cat *.patch| patch -p0' - - Setup option whether to cache user online stats. Disabling will, - for sure, won't bloat the bot by 2-4megs (but why that much?). - -v1.0.0pre9 (20000512): - - Typo for outsider checking. Noticed when #debian flooder came - back yet again :) - - seenCycle was in minutes instead of days. fixed. - - Added User Information Services module. requested by Flugh. - => 'uinfo ' - => 'uinfo set ' - => 'uinfo unset ' - - Added &IsNickInAnyChan($nick); - - Added &DCCBroadcast($txt) to broadcast messages to all members - of DCC CHAT. - - &say() now changes '0' to 'zero' due to Net::IRC bug. - - Added &GetNickInChans($nick); - - Merged fooz's wingate scanner. - - Added 'ignoreAutoExpire' to differentiate time for ignore due to - flooding instead of 'ignore' through DCC CHAT. - => remove time for 'ignore' through DCC CHAT? - - Added &debianCheck() to check state of gzip'd files. - - ... - -v1.0.0pre8 (20000505): - - usual backlash from upgrade. - - added 'useStrict' option to infobot.config. - - added 'reload', to reload Core and Extras Modules. Does it - reload only if the file has changed? - - added preliminary (debug) code for ftpGet() for truncated - downloads. regetting will be added soon afterwards. - - minor fix for Debian.pl where a package exists but an - incomplete Packages file may not have info on that package. - - Modified on-the-fly ignore to be temporary. temporary ignore - requested by jCommons. - - added 'factstats requester'. - - preliminary use of scheduler for &checkPing() in &on_init(). - no event hook on 'pong' :((( - - Timers now use Net::IRC's scheduler, woohoo. Nice change over. - Moved ProcessExtras.pl to Schedulers.pl. - - Added 'factstats deadredir'. - - Don't prevent auto-reconnecting due to disconnection. - - Forgot initialization before any new IRC connection. - - Added scheduler for checking IRC connection. - - Fixed problem in Freshmeat module, if forked to download, would - not continue with query. => now it does, nice hack. - - Debian module should generate incoming index if does not exist. - - Chatting can be done through DCC CHAT. - - ... - -v1.0.0pre7 (20000426): - - INSTALL and README updated. - - auto-request for ops after joining all channels instead of after - each channel join. - - If factoid is requested by someone, show literally (no - evaluation) if owner of factoid matches aswell as if requested - privately(good idea?) - - on_notice fixed and debugging info removed. - - Added reconnect on HUP if we're not connected. I hope that it is - set to 0 otherwise this solution is dead. - - ';' added as address char. - - maths bug found by NoNix4. - eg: 6000.0/9.000 - 6.000/9.000 - 666.00001 - - nickometer bug (pi not defined) found by ddent. 'strict' cleanup. - - Preliminary CLI code included. Good for local use. - - typo in Topic.pl, found by jCommons. Fix for NULL topic. - - minor Debian.pl update to deal with 'missing files' on download. - - multi-shmwrite support added. looks like it doesn't "refresh" - the value properly if written many times. - - &verifyUser() only used if addressed. - - Applied 'use strict' to all code. Also used 'use vars qw()'. - - Added 'backlog #' to DCC CHAT. requested by jCommons. - - ctcp version reply wrong; FIXED. found by fooz. - -v1.0.0pre6 (20000407): - - README updated. - - Added retry on failure to reconnect through on_disconnect(); - REMOVED -- this spun an endless loop. - - Found why Googling didn't work. See README for fix. - - Forgot about channel casing bugs (on_{join|part}) after - changeover to Net::IRC. - - Changed addForked() to cycle through fork list and delete stale - forks in case a forked child dies unexpectedly. - - Renamed allowOutsiders to disallowOutsiders just in case if the - option is removed from the configuration. - -v1.0.0pre5 (20000331): - - setup_users.pl. DBI*() => sql*(). - - 'topic add BLAH' on empty topic would bork. Why didn't I pick - this up before? - - Somehow I removed (or it wasn't there) 'my @results' from - searchTable(); - - nickometer now uses loadPerlModule()... another 500 kB saved :) - - repeat flood detection prevention added. - - Added el-cheapo hash key counter... possible leak detector. - - Added 'factstats lame' for short and most probably stupid - factoids. - - Weather module removed - - Renamed 'join' to 'joinchan' to due warning//conflict raised - with perl 5.005 (on potato not slink). - - Disabled syscall (removes 300 kB on slink, 3megs on potato) - -v1.0.0pre4 (20000323): pseudo AutoLoader support. - - 'infobot' now first loads core.pl and logger.pl. - - timerExpire() fixed. - - Added unique maintainer count to 'dstats'. - - Added demand-on-load of external perl modules. Now we need - dynamic(on demand) loading of 'Modules/*.pl' modules ;) - -v1.0.0pre3 (20000319): - - Fixed Freshmeat.pl not to show duplicate packages found by - 'name' and 'oneliner' search. Made showPackage() function. - - Debian modules now does multi distro. (woody's non-us appears to - be different structure so does not work :(, very crude hack... - may not even work). - - Added subfactoid randomising. eg: '(one|two|three)'. - - 'dauthor' now works! - - karma fixed... used the wrong var name. - - Fixed doubling of text when message from 'nick' is ignored. - - Added 'redir' to designate one factoid as master and duplicates - as redirectors//slaves. - - Added addressing recognition character(s) support. eg "!status". - - Seen info now cached and flushed at intervals or upon exiting. - - Added 'EXAMPLES' file to doc/. - - Removed ancient '&channel()'. - - Bug fixes after offshore installation of bot. - - Debian output of 'info' fixed. looks like 'fm', heh. - - Debian distro stats added. I'm competing with larne and his mods - to dpkg@OPN#debian :) so far so good. - - Forgot to close shm upon exit, heh :) However this does not - prevent leakage when the bot crashes. - - Parameter 'forking' now works, courtesy of generic &Forker() - function, woohoo! Now we use &Forker() for _everything_. - I had this in the todo list, removed it and decided to implement - it once and for all. - - More bug fixes when moved changes to 'apt'. Several "bug - reports" sent from #debian, thanks! - - Moved infobot communications _after_ ignore checking code. - - babelfish changed format? disabled for the time being. - - ... - -v1.0.0pre2 (20000310): BETA TEST RELEASE - - Hacked multiple mysql connection support in. - - Renamed DBI to SQL, including functions. - - Added $ishost. - - Added backup scripts to create and mirror tables. - - listauth fixed. - - Added parse_warn.pl to decipher warn messages from logs. - - shm* now works. no more fork floods ;) - - Applied fork protection on all forking modules. - - Dict feature now supports specific retrival of definition, - however, default is still random. - - Debian feature now supports multiple sub distributions. This can - be further extended to architecture (perhaps easily). - - Added (but commented) larne's regex for debian search. - - Added &hasParam() to include notification that a feature - (command) requested is disabled in configuration. - - Added dumping of memory stats. - - Fixed broken timerExpire(). - - Added auto shutdown of bot if too much ram is used. - - Modified seen feature, set to off by default. - - UPDATE: fixed, about time. - - Improved parse_warn.pl to be like "diff". - - Dollar variable addition?? suggestions by ddent. - - 'factstats dupe' now ignores ' see'. - - UPDATE: fixed. - - Added random factoid timer. - - Don't redownload file via getFTP() if local and remote sizes are - the same. - - Added $count{'Dunno'} for unanswered questions. - - Fixed 'blah is also or' since we didn't allow 'or'. - - Added 'factstats redir' to display factoid redirections. - - Grep nick from list of nicks in IsNickInChan(). Bug found by - Mercury. - - Time taken and final xfer rate displayed in FTP. - - Fixed bug where 'or' is eval'd in Math.pl. Return '' if eval() - is not done. Bug found by dent. - - Added 'factstats redir' to list working and non-working - redirected (symlink) factoids. - - cmdstats now sorted by highest->lowest usage. - - ... - -v1.0.0pre1 (20000130): - - Mostly converted to Net::IRC, quite nice, like the dbm to mysql - change over :) - - Removed IrcHooks.pl and CTCP.pl. - - Moved hooks stuff to IrcHooks.pl. - - Moved IrcExtras.pl to Irc.pl. - - Removed ansi_control option. colors can be stripped within - &status() anyway, like for logging. - - Added DCC CHAT and DCC SEND support base. - - DCC SEND: null file. due to fork()? Fixed anyway. - - DCC CHAT: person's responsibility to close DCC CHAT. - -v0.99pre12 (20000125): - - Added intelligent flood protection and removed factoid - repetition prevention. - - Modified Math.pl... - - Unified tell code in Process.pl. - - Moved variable fix and addresing code to IrcHooks.pl - - Moved tell code from Question.pl to UserExtra.pl. - - Found that % and \ were double backslashed; added it to invalid - factoids. May have been caused by whoever unbacked up 'apt', - cerb? :) May want to add a function to automatically fix badly - formed factoids. - - Added 'factstats profanity', with &hasProfanity($str). - - Added functions for shared memory usage. - Uses: prevent exploitation of forked processes. - - Added 'factstats unrequested'. - - stale variables (vhost_name) forgotten in changeover. - - UPDATE: - - Fixed major leak with cycling of flood messages, typo :) - -v0.99pre11 (20000123): - - Fixes here and there... - - Debian find now searches Package names. Fallback automatically - to contents file search. - - Fixed typo related to log cycling. - - Added netsplit detection code. - - Started DCC support... very early stages. - - Replaced several 'foreach' statements with 'if' for efficiency. - About 5 instances of code... - - Debian contents search ignores man pages (unless search string - obvious for man page). Suggested by sgore. - - 'factstats locked' returns list instead of only count. - - &DoModes() bug found by larne. - - Used '$nick' instead of 'lc $nick' for $channels. - Found by larne. - -v0.99pre10 (20000119): - - Fixed bugs found when moved code to 'apt': - - added '^' and '|' to $isnick. - - removed 'local' and 'my' for some global vars. - - Typos of some variable names. - - More typos. - - Debian.pl contents search is better now. - - UPDATE: made changes suggested by greycat. - - Added Packages query now... - - Added &getRandomLineFromFile() - - Added LART, random text, Channel limit adjuster. - TODO => Wingate checker (NOT COMPLETED)... - - Added &iseq() and &isne(). - - Help info is not cached any more => loaded each time help() is - called. - - Added %timer hash, timestamp when something was last done. The - hash name is incorrectly named, eh? - - Moved parts of Process.pl to ProcessExtra.pl. - - Moved parts of User.pl to UserExtra.pl. - - Moved myRoutines.pl to UserExtra.pl. - - Moved Extras.pl to Modules.pl. - - Removed fortran math due to poor code style. - - Moved parts of Question.pl to UserExtra.pl. - -v0.99pre9 (20000115): - - Added messagecount column for 'seen'. Not used as yet. It - appears to be pointless, yes? - - Cleaned up DBI.pl: made use of $dbh->quote(); added - &DBIRawReturn(), &DBIInsert(), &DBIUpdate(). - - Forgot to clear $tell_obj after successful 'tell'. Founded by - solomon. - - Extra modules loaded only if enabled in config, may save some - ram. - - Math.pl cleaned up. - - Added DumpVars.pl, now we know where things are being leaked. - - Removed duplicate 'use IO::Socket'. - - Typo in "disabled" locking code which didn't work :) Founded by - washort. - -v0.99pre8 (20000110): - - Bailout if critical configuration variables are not found. - - Dict.pl works well now. - - Topic.pl now uses %topic or @topic. Added 'topic info' which - contains who and time info. How does @{$hash{$key}} work? - - Used 'use diagnostics;'. Fixed most warnings. - - Added &WARN(). - - Minor typo in &IsInvalid() on last statement, heh. - - Fixed (DAILY) logging, finally. Was broken too many times. - - Added &getLineFromFile() for debugging purposes. BROKEN - - Added Debian search-engine frontend => Debian.pl. - UPDATE: forget mysql, takes too long. - - Added Countdown => Countdown.pl. - - Made use of 'unless' instead of 'if !'. - - Added &DBIRaw(). - - Addressing required on all commands. - - Added &fixFileList() to simplify files with common directories. - - RevHippie stumped me with the best method to write this, - heh. Why do I always try to do things in 1 loop instead - of 2 loops? - -v0.99pre7 (19991230): - - Renamed some setup/DBI calls. - - Simplified nickserv/chanserv code. chanserv opping may break - though. Experimentation? - - Fixed broken stuff scripts/* due to src/* modification. - - Added table locking support. BROKEN. - - param{'ident'} deprecated. - - Removed param{'dbname'}, please rename the main table (with - factoids) to factoids.* - - Added ircII.servers support. - - Fixed infobot, Setup.pl and Files.pl. - - Freshmeat.pl fixed. Set the update time _before_ we update. - - Added factoid renaming. "rename 'from' 'to'". - - Added DBISetRow() for first time inserts, for Freshmeat. - Removed (rather used raw) use of fixmysqlbug for DBISetRow() - - Added 'seen random'; fixed randKey to work with 'seen'. - - Added preliminary code for whatis frontend. - - Added SIGHUP code for $SIG{HUP}. - - Added more error protection in DBI.pl. - - Moved logDate logging support to &status@Misc.pl. - - Confirmed logging does not duplicate from child any more. - - Added 'partialdupe' (not recommended) and '2long' to - &FactStats(); - - ... - -v0.99pre6 (19991223): - - Dict now fixed, courtesy of RevHippie and myself. - - Applied patch from RevHippie. - - Removed auto continuation code. - - Fixed learn =~ /HUNGRY/; - - Added $talkok and $learnok. - - Removed $param{'nick'} in favour of $ident. Added $safeIdent for - regex and made use of it. - - Moved Help.pl, Ignore.pl, Params.pl and part of User.pl to - Files.pl. - - Removed Internic.pl and Traceroute.pl. - - Fixed $isnick, renamed and fixed &purifyNick(). Added nick - compliancy checks when connecting to IRC server. - - Rewritten 'spell' code. - -v0.99pre5 (19991220): bug fix release. - - setupmysql.pl, slightly different for potato. - - dbm2mysql.pl - - performReply(), removed $trailing. FIX LATER. - - Freshmeat.pl, forgot about &main::, again. - - logType, broken date value. - - Fixed broken 'tell blah about what', readded $answer var. - - minLengthBeforePrivate superseeds preferReply. - - Forgot to use 'my' on three instances of $sth. - -v0.99pre4 (19991219): - - Added 'dupe' for factstats. - - Added illegal character detection in Statement.pl. - - Unified output (and duplication) of factstats (and other) code - to use one function, &formListReply(). Reduced code by at least - 2k :))) - - Minor modifications to &DBIGetCol(); - - Move +s flag to 'set search' in infobot.config. - - Altered talkMethod to allow 'private' or 'default'. Made no - sense to have it on public-only, heh. - - friendlyBots will be kept to be compatible with other stock - infobots but soon enough multiple mysql database support will be - added. Will be quite nice once done. - - Added maxListReplyCount and maxListReplyLen. Read infobot.config - for details. - - Replaced $refresh with freshmeatRefreshInterval to config. - - Changed learn setting from ALWAYS to HUNGRY. - - Reorganised Extras.pl, we shouldn't bail out if the command - can be disabled as the person who runs the bot should have - brains. - - Moved some Process.pl stuff to myRoutines.pl. - - --- - - &searchBy*() allows ^ and $, like in regex (basically sar'd). - removed $notexact variable. - - Fixed 'no,blah is blah' bug. - - Changed 'is also' char to ';;'. - - Added &IsInvalid(); to unify Statement (when creating) and - factstats/broken (when checking/verifying). Works like a charm - :))) - - Removed sane stuff; added infobot.ignore. I hope lenzo's - ignoreList code works. - - Fixed setupmysql.pl - - Moved repeatIgnoreInterval to minRepeat*Reply where * is Private - or Public. - - Now preferReply works. Wasn't hard as it first looked. - - Added global '+' flag support. - - Fixed logging: added logType param; if logType =~ /DAILY/, new - log is created daily. Date is time-of-day, aswell. - - added &fixMySQLBug() => adds backslash to special chars. - -v0.99pre3 (19991216): - - Fix connection bug where if host does not resolve, it appears - that it's connection refused. Now non-resolving hosts are - detected earlier. Found by some *.it (or .es??) guy. - - Added 'sync in #s' when the bot has joined a channel... just - like in BitchX. - - Added txt2mysql.pl. - - Removed instances of '^\s*' to '^' since $message can be - manipulated in Process.pl. - - Fixed Statement.pl so that it doesn't catch queries... it's a - stupid idea any way. - - Removed 'confused' in favour of 'dunno'. - - Funny hack in performReply(). Stupid but it works. - - Added 'host' column in seen table. - - Made use of &gettimeofday() for freshmeat and search function. - -v0.99pre2 (19991213): - - Made use of new database (directory) not to interfere with other - crucial dbs. - - Re-added &getKeys(), mysql's RLIKE wouldn't like "'" in the - statement. If several of similar queries are required, better - off using &getKeys(). - - Added two more conversion scripts. - -v0.99pre1 (19991211): personal release. MAJOR CHANGES. - - create a script to add the blootbot user to the mysql server and - prepare tables for use with the bot. - - butchered Question.pl, Reply.pl, Statement.pl and Reply.pl. - - main factoid db ported over; barely tested. - - seen ported over; appears to work. - - karma ported over; not tested at all. - - freshmeat ported over; fix brokeness. - - search (listvals and listkeys) ported over. - - rootwarn ported over. - - - Use quotemeta in DBI.pl on special chars, especially ' :) - - Added factstats 'broken' function. - - Made use of multiple connections to avoid clashing... does - clashing only occur when there's an INSERT/UPDATE or SELECT or - both? - - Changed $factoid to $faqtoid... good idea? how about $lhs? - - Changed getKeys to countKeys to take advantage of mysql. - - Added randKey to get random primkey,key from table. - - Removed process() when msgType == 'public action'. Why would we - want to care about actions anyway? - - Fix public action; Added private action to &status(). - - Added &ERROR(); - - Made message and who flooding independent in IrcHooks.pl. Now we - use %flood... should be expanded to use %ignoreList; - - NOTES... - - DBI.pl has more functions than what DBMExtra.pl had in order to - implement a table-like hash list. - - &DBISet() always verifies if an entry already exists and does an - UPDATE instead of an INSERT... flaw in mysql or my code??? - - &DBISet() can only set one (in UPDATE, two in INSERT), variable - at a time. Does this impose a performance hit? like on seen. - - ... - - TODO... - - infobot.cgi not ported over. - - weather not ported over. - - add alarm call between while in Dict.pl. - -************************************************* -************* CHANGE OVER TO MySQL ************** -************************************************* - -v0.18.2 (199912??): dropped. - - Fix for Weather.pl. - - Fix for Dict.pl. - - ... - -v0.18.1 (19991130): last public release before database change over. - - Modified &IsNickInChan() so that a foreach is done case - insensitively against nick to prevent misses. - - Added server "jump" support, requested by larne. - - Added seenMaxDays, maximum number of days to keep seen info on - someone, otherwise delete it. - - Forgot to use $main:: in Freshmeat.pl and Weather.pl; fixed. - - Changed userList format to $userList{$user}{$flag}{$what} = 1; - Converted all code to use this userList format. - - Changed version string to include OSname. - - Replaced $locWho with $who or $origWho. - - Removed hidden whitespaces and tabs at and of statments. - -v0.18.0 (19991128): - - Post release typo fixes here and there. - - Changed lc() to tr/A-Z/a-z/ where suitable. - - Redid join command in Process.pl. - - Cleaned up regex (mainly .* => \S+). - - Found $ischan to be broken; fixed. - - Changed Slashdot3.pl to have "joining" code like in DBMExtra.pl. - - Made use of &nick() and &IsChan(); - - Added &kick() to Misc.pl; kick command to User.pl. - - Added &IsNickInChan(); - - Fixed loading Param file before pidfile and other file related - stuff. - - User.pl - - Revamped; removed unused functions. - - Moved Set.pl to here. - - Moved 4op code here. - - Moved some functions from Process.pl to here. - - Rewrote rehash command. - - More casing fixes; debugging info _should_ help to find more. - - Changed infobot.users. - -v0.17.0 (19991126): - - Netsplit code prevented stats of signoffs; fixed. - - Messed around with logging code to prevent control chars. - - Removed exchange and excuse module because of brokeness. - - Applied patch from RevHippie. Thanks! - - Added delimiter support in addressing of hello msg. - - Removed 'score' in karma. - - Added 'learn' (ALWAYS or ADDRESSED) support. Normal - operation == ADDRESSED. Bot won't respond voluntarily to - factoids but will respond to learning. - - Ability to turn off minVolunteerLength. - - More changes to prevent chatter in unaddressed manner. - - We remove any ansi or control chars when piping to the log file. - RevHippie++. - - Added 'thanks' language. - - Typo in Freshmeat.pl; Fixed. - - Added $rootwarnmode = passive || aggressive to satisfy lilo@OPN. - default is passive. - - Fixed mix up of fix in 'tell' code. I had the if statements the - wrong way around. - - Removed more debug code. - - FactStats/author fixed; now multiple authors with the same stats - are printed together. - - Added logfile cycling w/ approx maximum size. - - Changed infobot.config yet again. now it's much better than - before. Some variables removed. - - Added Unset support to Set.pl; Changed so anything can be set - or unset. - - Made use of &purifyNick() so regex doesn't break. $safeWho - now defined earlier. - -v0.16.0 (19991122): - - Applied bug fixes from infobot 0.44.3, added md5 password - support (*BSD?). - - Added &IsParam() to check existance of params the proper - (strict) way. - - Moved rootWarn stuff from Extras.pl to RootWarn.pl. - - filenames (rootwarn and uptime) now not statically set. - - Cleaned up config file and Setup.pl. - - Fixed up &parsectcp() in CTCP.pl. - - Changed ($ischan) to (\S+) in Irc.pl under PRIVMSG. - - Major reorganisation of Misc.pl -- removed unused functions. - - Moved some variables to 'infobot'. - - Fixed ANSI typo by some loser; Changed format of &status()'s in - Irc.pl, seems to look nice thus far. - - Added "author" command under &FactStats() in DBMExtra.pl. - - Added case insensitivity to &IsHostMatch() and search strings in - DBMExtra.pl. Any more of these? - - Removed disabled netsplit code. - - Changed 'defined' to 'exists' on all hash lists, 'cept hashes - created by opening db's. - - Modified repeat code on modified_time. If this time is small, - msgType is changed to 'private' for flooding reasons and - max_time is reduced by half. latter appears not to work??? - -v0.15.0 (19991112): - - Quite funny that once the repeat code was moved to Question.pl - factoid extension leakage was found. maths leakage was also - happening but somehow is fixed when the repeat code was moved - back. - - Clean up of variable names in Reply.pl and Question.pl - - Changed 'length' to 'eq ""' or 'ne ""' where possible. - This should produce faster code but benchmarks prove this change - is neglible. Guess perl is slow :) - - Cleaned up and fixed 'tell about ' code. - - Set.pl fixed; Added DEBUG to allowable set list. - - Volunteer code moved to top of Question.pl. - -v0.14.0 (19991110): - - Message overflow fix in &FactStats(). - - Added 'factstats new' command to display new factoids in the - last 24 hours. - - Fixed up ping reply, requested by a few from #debian@OPN. - - Re-added debugging of DBMExtra due to leakage of orthaned - factoid extensions. Need to investigate and confirm the - lowercase fix of factoids. - - Two functions which used &mkRandom() now fixed due to poor - effort in implementation. Added missing srand(). now the maximum - length of 475 should not be exceeded, hopefully. it can be - beefed up to 490 if needed. - -v0.13.0 (19991108): - - Made use of &help() which uses infobot.help. This paves the way - for NLS as suggested by njs. - - Fixed up code on netjoin/netsplit in an effort to find - statistics leakage. Added debugging info to netjoin/netsplit. - - Fixed typo (three instances) in factinfo where time() was used - instead of the data in the factoid extension. Found by larne. - - Allow main thread to do a clean exit while the child does - nothing. Possible fix for weird uptime info. - - Removed sar of 'your|i|you|me' to prevent automated reverse - persona which is better done by the user. Suggested by njs. - - Cleaned up behaviour of &FixPlural(). Fixes a bug. - - Repeat prevention code now replaced (moved aswell) to use - factoid extensions - - Fixed 'factstats requested' error. - -v0.12.6 (19991103): bugfix on bugfix release ;) - - Fixed bug where you can't lock a factoid because the hostmatch - ($thisnuh = "") failed. Found by wolfie. - - Fixed up 512byte overflow in factstats[requested]. - - hm... wonder how I broke Weather.pl. - -v0.12.5 (19991101): Bugfix release - - Fixed "bad" array in Freshmeat.pl. All appologies to scoop. - [update: use array[5] if it exists, otherwise do as before.] - - Removed some debugging info from DBMExtra.pl. - - Fixed inconsistent chanstats behaviour in SignOff. - [Update: forgot to delete the user info _after_ we do the stats] - - Moved factoid stats count and repeat checking code to - Question.pl. Now it works as planned :) :) :) - -v0.12.4 (19991028): - - Added factstat and listauth commands. - - 'topic add' now prepends subtopic not append. - - Fixed up minor problem with 'topic restore last'. - - Changed default of locking access to people who own their - factoid or to registered ops. This should please #debian. - - Reduced usage of @{$var} which cannot be really deleted cleanly. - - Moved DBMExtra-related stuff from myRoutines.pl to DBMExtra.pl. - - Added new functions &mkRandom() and &getRandom(). - - Changed all code (Search.pl) which used random to the one - developed in DBMExtra.pl. => made code slightly smaller. - - Cleaned up Search.pl to look nice. - - Found yet another casing bug under TOPIC in Irc.pl. - - Fixed bug where dbmextra queries where made on non-factoids like - maths and probably karma. - -v0.12.3 (19991025): - - Added while loop around connect which should prevent the bot - from falling down (dying). - - Forgot 'main::' for &getURL in Freshmeat.pl. Changed - opening/closing code yet again. Removed checking on open - read-only. - - Changed Dict.pl to reply private only by default. '+' will allow - public responses without suggestions/synonyms. - - Added checking against pidfile. running two bots from the same - dir at the same time using the same db == disaster. Ask #debian - about it :) - - Implemented Weather.pl. - -v0.12.1 (19991022): - - Made distribution out of infobot -> blootbot. - - Irc.pl was prone to be fucking up -- swapped (.*) to (\S+) where - necessary. stab lenzo for this :) found more instances of this. - [update: appears to trap too many of something, check - 'chaninfo #chan' for info.] - - Minor fix for Freshmeat.pl when opening/closing db. - - Factoid extension code is ready for testing. possible in the - future to add "factstats" for like: top 3 requested factoids. - [update] added lock checking on sar and on updates ("no, "...) - -v0.12.0 (19991020): (v0.11.6 + bugfixes + trial) - - Major shake-up of how addressing is handled -- damn it took me a - long time to get this to work. - - Changed command names in Topic.pl to &topicBlah(). - - Found and fixed (hopefully) all 7 channel casing bugs. - - Moved freshmeat to use berkeley db instead of raw appindex.txt - file. finally got it to work, seems 30% faster. Creating the db - takes a long time though. - - Added "set" command => Set.pl. - - Added support of talkMethod which behaves much like lobotomy. - In the future, talkMethod =~ /(lobotomy|none)/ may be used. - - Purged: METAR2.pl, NOAA.pl, UAFlight.pl. - - RootWarn only works if the bot is opped in the channel. - - Created performStrictReply() from performReply(). - - Quote.pl and Internic.pl now work. - - Fixed a few typos in myRoutines.pl - - Removed bold on dictionary. - -v0.11.5 (19991012): - - Fixed $chan to lowercase where appropriate. - - Fixed volunteer reply code... I guess it worked before but now - it is somewhat cleaner and easy to understand. - - Added factoid owner database, requested by njs. - - If public message is addressed to someone else, we ignore it. - - Now support referer factoids ('blah is see erp'). if - 'blah' is asked, the reply from 'erp' is given. - - OPN allows part messages -- fixed in /PART/ for $chan. - -v0.11.3 (19991008): - - Uptime.pl appears to be fixed after rewrite of getUptimeInfo. - - Fixed up Freshmeat.pl for updating the index. Proxy is now - optional. - - Moved rootWarn to RootWarn.pl. Added hall-of-fame of losers. - - Cleaned up bugs/typo here and there which may have caused the - bot to behave in a weird manner. - -v0.11.2 (19991006): - - ChanInfo now displays "statistics" just like our little friend - BitchX. - - Minor change in determining args on commands [myRoutines]. - - Added "cmdstats". - - Added rootWarn checking on checks. Repeat offenders will be - punished. Requested by larne. [update: we aren't so harsh now] - - Added lc $chan where appropriate. damn uppercase channames. - -v0.11.1 (19991005): - - all instances of undef on hash lists changed to delete which - _now_ works. found minor bugs/typos related to DUI. - - Now skip internic whois intro (13 lines) to fix bad output. - - Forgot to subtract $i from $counter in chaninfo when full. - [update: whole function changed, see above] - - Now backup (and gzip) freshmeat index file. - -v0.11 (19991004): looks like a bug fix release :) - - Fixed typo in reply of Topic.pl/&NewTopic(). - - Decreased max topic length allowed; now print it, too, for - debugging. - - Altered repeat code to only work on public. Flooders should be - taken care of by the (allowOutsiders == 0) code. if not, there's - 'lobotomy' :) - - Added excess flood protection around &rawout(); - - Don't bother about outsiders if we haven't joined any channels. - - Changed email address to one throughout modifications. - New files have neato headers. - - Uptime.pl fixed, didn't need to check against ($pid == $$) - - Repeat-prevention code kind-of looks what it was before but this - one, at least, works :). any problems, just bitch at me. - - Added debugging code for chaninfo to diagnose "problem". - -v0.10 (19991001): - - Added Uptime module. - - Added Freshmeat module. - - Dict now returns definition without suggestions (syn's) by - default. Also cleaned up. - - NickServ/ChanServ major clean up. - - Join upon reconnect fix: set $joinchans = 0. - - Fixed up Help.pl, added more help entries. - -v0.9b (19990925): - - Did repeat-prevention code from scratch -- now works. - [19991001 update]: multiplier is now 2 instead of 10. - - Made reaction to "hello" more strict. the same should be done to - "thanks", don't you think? - - Converted remaining modules to use forking. should be no more - bot lockups... - - Changed maxhits to 20 for Search. - -v0.9 (19990924): +16K added to patch size. - - More, more and more major changes. - - Fixed up inappropriate usage of performReply. - - Added lobotomy command to (un)silence the bot. - - Added allowOutsiders toggle to prevent usage of the bot - _outside_ the channels the bot is in. - - Added $fullyaddressed, enabled if $addressed == 1 and - $param{addressing} == REQUIRE. - - Readded auto-continuity code. it is disable if not fully - addressed. otherwise works as per normal. - - Moved join-on-start-of-motd code to end-of-motd. If nickserv && - chanserv is enabled, IDENTIFY is done first. If okay, then we - proceed to join channels. - - When bot joins channel, summary of nicks (ops|voice|total) is - given instead of NAMES list. - - Chanserv support moved to "end of names". - - Detection of nickserv (no such nick). - - join channel if channel is on our joins list and if we're not on - it (hrm, providing their client prevents it). - - ... - -v0.8 (19990919): +50K patch from last version. - - Major changes, particularly cleanups and fixed a few bugs: - - Found 2 or so instances of $params{}. Either deleted or - renamed to $param where appropriate. - - Shortened foreach statements where possible. - - Replaced duplicate code involving &say and &msg with - &performReply($text,[0=rand,1=strict]). -- major shortcut and - cleanup. - - Added tracking of all users on channel(s). Users are - deleted if they disappear for whatever reason with - &DeleteUserInfo. - - Tracking of channels now works; they are deleted if we disappear - from any channel for whatever reason (hopefully). - - 'forget' command _SHOULD_ be wrapped with $addressed. - - Moved 'modes' from User.pl to myRoutines.pl as 'chaninfo'. - - Added stock quote support by using mu's script. Thanks. - - Added param{*} around stuff in myRoutines.pl for flexibility. - - Added auto-join on invite if not on specific "join_channels" - - Renamed &Timetostring to &Time2String and made use of it not - only for status but for seen. - - If $param{*} == false, it is now not defined. - - Removed Auto-continuity code -- very evil for any bot commands - other than non-intentionally requesting a factoid. - - crypt command required "(" before passwd??? - - Removed stupid commands which just generate URLs for you to cut - and paste. - - repeatIgnoreInterval code _NOW_ works unlike before. - - Added support for Topic.pl not to update topics if commands are - prepended by '-'. Topics can be "rehashed" when either a) the - next command is used without '-' or b) "rehash" is the next - command. - - &NewTopic takes two more args to prevent repetition and now does - topic checking. Check code for details. - -v0.7 (19990914): - - Major clean up: Search.pl now only uses the "is" dbm; final - pair of parens in commands removed for legibility; Removed - debugging for NickServ, ChanServ to go. - - Added multiple subtopic delete ability. requested by Mercury. - - Moved responses/replies to [files/infobot.lang]. Modified - related functions to conform, including mine. - - Fixed up Kernel.pl to use different type of sockets. Previous - code somehow broke itself. - - Added, but disabled, semi-working timer support. Need to ask - lenzo some questions on how to implement it the best way. - - Added channel (and offender's) notification if someone joins the - channel with root. requested by #debian. - - Added dict.org support. For now, it uses wordnet and returns a - random definition. Could change in the future. - -v0.6 (19990903): - - Added support for nickserv and chanserv, requested by is. - - Updated README to describe new features and modifications. Do we - need to elaborate on the modifications to the depth where it - would exceed the size of the patch? - - Minor clean up. - - Removed assumed-continuity of messages -- should be used if - addressing is in optional mode but would be bad in any situation - if more than one infobot existed in the channel. - - Added parsing of g flag to factoid sar. - -v0.5 (19990827): - - Better way to confirm if bot is on channel now for topic - management. Also added check for +o+t or -t. &DoModes() on - server stuff, too? - - Patch updated to work for infobot-0.44.2 only. - - Found a bug in Irc.pl under "NAMES" where $u was used initially - but trashed afterwards. => replaced $u w/ $_. - - Lost track of a bug found by Mercury. Seems to be fixed now, - somehow, heh. - -v0.4c (19990822): - - Worked on random-cookie -- random responses can now be added - (internally) with ease. - - Noticed joeyh changing his nick to/from '||' which reminded me - of something bad ;) hint: topic management. - - One line patch to allow '|' in factoids; delimiter is now '||'. - -v0.4b (19990818): - - Implemented patch from mu. Now it is possible to use the topic - command through private messages to the bot instead of the - channel. - - Replaced SAR of \| with \|\| so we can still use the single - pipes. Double pipes will be either removed or promote an error - message. Found by Robot101. Added el-cheapo work-around if the - last char of subtopic is |, kill it. - -v0.4a (19990816): - - Added cheap fix (sleep 1, heh) to excess floods of 'topic - history'. Is sleep 1 enough? - - Added 'random' for random value{key} from database. - Requested by jCommons. - -v0.4 (19990815): - - Fixed topic history by replacing push with unshift. Now the - history list is reversed and cycled properly. - - Reversed Changes list. request by mu. - - Totally fixed up topic history since it would break if - 'topic add' was induced quickly. Now we only record topics set - by us (for reasons) and onjoin topics (set by anyone). - - Removed 'topic last/reset' because how do you know which topic - is last? Better control with 'topic restore'. - -v0.3c (19990813): - - Fixed 'topic mv 2 before 1' bug. Forgot to store 'move' topic - before doing the foreach loop. - - Touched up Kernel.pl in preparation for auto-notify feature. - -v0.3b (19990812): - - Added version string to new files so we know which version - of patch we're using (or used). There you go, Mercury ;) - - Fixed up DecipherTopic to reject null subtopics. This would, if - unchanged, (theoretically but not tried, luckily) produce a - domino-effect of problems if the topic was to be changed. - Update: check if the supposed null topic contains spaces - within the nick component. If so, then it's not - nick, therefore treat like ownerless subtopic. - - Worked on README. - -v0.3a (19990810): - - Changed back to use topic{chan} (now topicnow{chan}) since - @topiclist{chan} (now @topichist{chan}) does not deal with dupes - or blanks. - - Renamed 'topic last' in preference to 'topic reset'. Original - command can be used but is vague in meaning. - - Fixed several typos made in Irc.pl. - - Replaced 'defined' with 'length' in if statements. - -v0.3 (19990809): - - Applied patch from mu for Irc.pl | Topic.pl. - - Replaced %topic hash and $topiclast with @{$topiclist{chan}}. - Much cleaner implementation. Thanks to mu for this. Fully - implemented by xk. - - Reworked on topicbyme (was topiclast), should work now. - -v0.2 (19990808): - - Changed name of patch to funkystuph. - - Added history/last/restore to Topic.pl by request of mu and is. - - Reorganised help and order of commands in Topic.pl - - Bot must be addressed to use commands. - - Fixed bug if multiple infobots were in the channel. - - One occurrence where Cipher was called instead of CipherTopic. - - Fixed up Slashdot.pl. Problems: a) borked completely b) missed - first headline. el-cheapo fix but it works. - -v0.1c (19990729): - - Fixed long list{keys|values} bug, hopefully. - - Now randomize key results from search. - - If keys contain ',', underline to differentiate it. - - Fixed possible DoS against Kernel.pl. - - Bug fixed with Kernel.pl repeating itself. - - Typo of @results [one occurrance of @result] - -v0.1b (19990723): - - Fixed bug with &CipherTopic where, if no owner was found, it - would just use NULL. [like "Topic ()"] - - Added kernel feature. - - Moved error messages to public/private, depending on behaviour. - Help-related stuff is private(msg) only for convenience. - -v0.1a (19990721): - - Misc cleanup, removed repeated code. - -v0.1 (19990720): - - Initial release.