StormBot V7 ChangeLog: 2014-11-15 09:59:29 +0000

[Coder's message]
Just a roll-up update including a few fixen the over the last week to TAIL & BOTSEND. Mainly, all commands were split into their own beads (instead of combining commonly-themed ones, like SAVE.SB7 having SAVE, REHASH, RELOAD, & SNAPSHOT together).

[.]
 * 2014-11-13 06:45:50 +0000: #0347: Dev policy change (from this point on, I'm splitting all commands into their own beads. The main reason is: debugging would be easier for me. There's no disadvantage to users because: SB7 will be released as a single-file script, so the change will be transparent to the end-user)

[sb7_tail.tcl]
 * 2014-11-15 09:18:29 +0000: #0362: Fixed DATA [ARRAY] CLEAR (when no secondard item was provided (the wildcard), the code would try to match ... the blank, which, when used with ARRAY NAMES, returns an empty list. This would then clear ... nothing)
 * 2014-11-15 09:07:53 +0000: #0361: Fixed LDESTROY again (backwards logic: the wrong items were being tracked to the list / not variables, causing the opposite result to be returned. Exposed by LMATCH (synonym for LDESTROY -NOT))
 * 2014-11-15 08:52:48 +0000: #0360: Fixed LDESTROY -BOTH (wasn't returning the match list properly (the first element of the two-element list); was return a blank list ("") sometimes)
 * 2014-11-14 09:25:24 +0000: #0359: Fixed WHOIS lookup ("FINDONCHANS nick" should have been "FINDONCHANS handle" for determining mode #4 (see previous CHANGELOG entry))
 * 2014-11-14 07:45:43 +0000: #0356: Fixed WHOIS user lookup (when a nick matched a known handle, but didn't mask-match, it was returning aconfusing reply (mode #0: known-but-offline); this, in turn, confused the WHO command. Fixed: this situation now reports mode #4 (unknown user even though familiar nick))
 * 2014-11-14 07:22:15 +0000: #0355: Moved VERSION (put it into TAIL for now; have to evade short-name conflict with sb7_version.txt. But if I do this, then shouldn't MAINTENANCE also be moved here? And LOGIN? Oh, this just got real ...)
 * 2014-11-13 09:05:59 +0000: #0352: Fixed PLURAL (moved flags to just-before the count, after the root word)
 * 2014-11-13 08:39:57 +0000: #0350: Added PATH:RELATIVE (shows the relative path to FILE from PATH, or the default path ".")
 * 2014-11-13 06:55:29 +0000: #0348: Fixed DATA GET & DATA ARRAY GET (shortcuts for ISEMPTY / NOTEMPTY were not properly setup (inconsistent use of EVAL) or properly RETURNing the results)
 * 2014-11-12 09:01:18 +0000: #0343: Added POSIX signal receptors (SIGHUP (REHASH), SIGTERM (SAVE & DIE), SIGQUIT (RESTART), & SIGILL (SAVE, some diagnostics, & RESTART))
 * 2014-11-12 08:50:11 +0000: #0342: Fixed PRINT (the command-line [--]MSG flag wasn't being processed properly; the $INTENDED_USER variable (which indicates whether the output target a specific user or a channel) wasn't considered for [--]MSG (but was for [--]NOTICE))
 * 2014-11-12 08:28:22 +0000: #0339: Fixed CONFIG & PRINT (proper combination of burst mode control [CONFIG] and user settings)
 * 2014-11-11 01:24:37 +0000: #0334: Upgraded SB7:DISPATCH (added flag (snuff all to-user output, but, not affect normal command output like SAY. Also, clarified the flags that are allowed: [--]notice, msg, chan, burst, mute. Up until now, open-ended flags were being allowed through and PRINT (output parser) would just use what it needed. Inspired by Demonicpagan)
 * 2014-11-10 03:53:32 +0000: #0332: fixed DATA LOAD (allowed for open-format file name (needed by SNAPSHOT))
 * 2014-11-10 03:35:46 +0000: #0331: fixed DATA SAVE (allowed for open-format file name (needed by SNAPSHOT))
 * 2014-11-08 09:07:48 +0000: #0327: Added RANDOM
 * 2014-11-08 08:33:56 +0000: #0326: Added SB7 DEBUG & LOG (cosmetic for special logging. Will document a little later on)
 * 2014-11-07 22:17:15 +0000: #0320: Upgraded DEBUG (added -LOG <level> option)
 * 2014-11-07 21:26:32 +0000: #0319: Fixed LOGIN (fixed [compensated for] security issue found in Eggdrop: #D20141107212300-01. SB6 and all previous versions of SB are being patched for this (SB4 seems to be patched with an older fix))
 * 2014-11-05 13:36:06 +0000: #0315: Fixed GET RANGE (I forgot to code for ">#" "<#" "<=#" ">=" which was exposed when working on CHANMON)
 * 2014-11-05 13:03:51 +0000: #0314: Added DATA RENAME (entire datum) & DATA ARRAY RENAME (individual elements)
 * 2014-11-05 12:43:44 +0000: #0313: Added SB7 ARRAY SET:ALL [synonym: "setall"] ( allows setting of multiple array elaments in one sequence; "" to empty / unset element)
 * 2014-11-05 11:49:22 +0000: #0310: Added DATA ARRAY GET:ALL (synonym: GETALL) [LIST elements] var1 var2 var3 ... varN (assign variables from specific data array elements, similar to how LASSIGN works)
 * 2014-11-04 16:11:39 +0000: #0307: Fixed multiple beads (completed fixen re: where access levels are stored: USERLEVEL:* vs ACCESS:* (winner: ACCESS:*))
 * 2014-11-04 16:10:06 +0000: #0306: Added SB7 LOG (generic logging of SB7-specific stuff. Currently goes to PUTCMDLOG)
 * 2014-11-04 15:50:38 +0000: #0305: Fixed ACCESS (two data streams were being created for tracking channel & global access: USERLEVEL:* and ACCESS:*. The intention was to change to ACCESS:* but it wasn't changed everywhere, breaking backwards-compatibility)
 * 2014-11-04 15:39:37 +0000: #0304: Fixed USERFLAG ADD (untriggered error: code did the same as USERFLAG SET: set the flags to ONLY the ones being requested (if the flags sent didn't have the "+" in front))
 * 2014-11-04 15:38:36 +0000: #0303: Fixed ACCESS FIX (wasn't assigning default values based on flags; a weird IF that checked "if STRING MATCH returns an integer, exit" ... which it ALWAYS DOES! I don't understand; I must have been tired when I wrote that)
 * 2014-11-04 15:28:49 +0000: #0302: Renamed MSET to SET:ALL (more obvious when debugging)
 * 2014-10-26 09:17:57 +0000: #0300: Fixed IMPLODE (the JOIN I added in SB6:EXPLODE was needed here, too)

[-]
 * 2014-11-15 09:24:06 +0000: #0363: tai lixed DATA ARRAY LIST (same issue as CHANGELOG #362 re: when blank args were considerd instead of automatically checking for blank args and replacing with "*")

[access.sb7]
 * 2014-11-04 16:11:39 +0000: #0307: Fixed multiple beads (completed fixen re: where access levels are stored: USERLEVEL:* vs ACCESS:* (winner: ACCESS:*))
 * 2014-11-04 15:50:38 +0000: #0305: Fixed ACCESS (two data streams were being created for tracking channel & global access: USERLEVEL:* and ACCESS:*. The intention was to change to ACCESS:* but it wasn't changed everywhere, breaking backwards-compatibility)
 * 2014-11-04 15:28:49 +0000: #0302: Renamed MSET to SET:ALL (more obvious when debugging)

[alarm.sb7]
 * 2014-11-07 22:28:49 +0000: #0321: Fixed ALARM/DELAY & BOTMON (timers were being invoked during the bootstrap, causing any bead load or REHASH to cause multiple timers to fire. If a SAVE was required, a wave of SAVEs would occur in continuous succession. RESTART avoids this problem naturally)

[botmon.sb7]
 * 2014-11-08 02:26:28 +0000: #0322: Fixed BOTMON (the bootstrapper was using VALIDTIMER to check for a valid UTIMER. That "u" made a big difference: it was causing and endless data save loop)
 * 2014-11-07 22:28:49 +0000: #0321: Fixed ALARM/DELAY & BOTMON (timers were being invoked during the bootstrap, causing any bead load or REHASH to cause multiple timers to fire. If a SAVE was required, a wave of SAVEs would occur in continuous succession. RESTART avoids this problem naturally)

[botnet.sb7]
 * 2014-11-05 14:22:15 +0000: #0317: Fixed TREE (renamed from BOTTREE, in case errors polluted the original command; also forgot to change one of the sub-routined from SB:TREE_GETCHILDREN to TREE:GETCHILDREN)
 * 2014-11-05 11:13:23 +0000: #0309: Added BOTNET (currently: only BOTTREE) to ZENKAI
 * 2014-11-05 11:13:04 +0000: #0308: Added BOTTREE

[botsend.sb7]
 * 2014-11-15 09:58:27 +0000: #0364: Fixed BOTSEND (typo: "error while suto-loading ...")
 * 2014-11-14 06:38:54 +0000: #0354: Fixed BOTSEND (I shifted the element identities of the data stream, but, didn't update EVERYTHING: one place was still pulling datat from the sending-bot's nick, causing idiocy)
 * 2014-11-12 11:59:38 +0000: #0345: Fixed BOTSEND QUICK (now can handle multiple target bots, multiple files, and aliases within the bot list)
 * 2014-11-12 05:29:02 +0000: #0338: Added BOTSEND QUICK (in recent changes to BOTSEND to streamline the process, I "broke" the transfer sequence insofar as I could not send the new updates to the other bots: they wouldn't understand the new protocol. BOTSEND QUICK uses a simple, raw data transfer protocol that will never break)
 * 2014-11-08 14:25:25 +0000: #0330: Fixed BOTSEND (nearly a complete re-write was necessary to create queue buffering, similar to SB6. Trying to mad-dash the botnet with data just wasn't working. The update will break the old code (two bots, one updated, one not, can NOT send each other data))
 * 2014-11-08 08:22:08 +0000: #0325: Fixed BOTSEND (on receiving end, check for access-to-BOTSEND-command didn't actually check for the access level)
 * 2014-11-08 07:31:04 +0000: #0323: Fixed BOTSEND (cosmetic: logging file transfers, at the receiving end)

[chanmon.sb7]
 * 2014-11-05 14:18:58 +0000: #0316: Completed CHANMON (now fully functional; translation complete from SB6)
 * 2014-11-05 11:50:02 +0000: #0312: Added CHANMON to ZENKAI distribution
 * 2014-11-05 11:49:56 +0000: #0311: Added CHANMON (not complete yet; only partially translated from SB6)

[config.sb7]
 * 2014-11-14 08:15:58 +0000: #0357: Added CONFIG -GLOBAL CSERV (the WHO code already anticipated it, but, I hadn't written it yet)
 * 2014-11-12 08:29:12 +0000: #0340: Fixed CONFIG BURST (cosmetic)
 * 2014-11-12 08:28:22 +0000: #0339: Fixed CONFIG & PRINT (proper combination of burst mode control [CONFIG] and user settings)

[debug.sb7]
 * 2014-11-04 15:28:49 +0000: #0302: Renamed MSET to SET:ALL (more obvious when debugging)

[findport.sb7]
 * 2014-11-05 14:29:24 +0000: #0318: Fixed FINDPORT (cosmetic: error message for invalid port needed a JOIN)

[help.sb7]
 * 2014-11-11 01:33:11 +0000: #0335: Fixed HELP (when an unknown command is checked, there was no complaint. Fixed)

[login.sb7]
 * 2014-11-08 07:31:50 +0000: #0324: Fixed LOGIN (XLOGIN seemed broken. The cause was not found but re-writing one line seemed to @CURE things)
 * 2014-11-07 21:26:32 +0000: #0319: Fixed LOGIN (fixed [compensated for] security issue found in Eggdrop: #D20141107212300-01. SB6 and all previous versions of SB are being patched for this (SB4 seems to be patched with an older fix))

[maintenance.sb7]
 * 2014-11-08 12:00:40 +0000: #0328: Upgraded MAINTENANCE (added typo-abbreviation "MAITN" because I keep typing it)

[oper.sb7]
 * 2014-11-04 15:15:49 +0000: #0301: Added OPER SERVERS VERSION (based on a private script, collects VERSION information from the servers within the OPER SERVERS list)

[rehash.sb7]
 * 2014-11-11 07:30:59 +0000: #0337: Fixed REHASH (moved all SAVE-like commands to their own bead, SAVE.SB7, leaving only REHASH & RESTART in this bead)
 * 2014-11-10 04:37:47 +0000: #0333: Added SNAPSHOT (takes timestamped-snapshots of the user, channel, and data files. Makes them reloadable. Inspired by Demonicpagan)
 * 2014-10-26 05:37:14 +0000: #0299: Fixed SAVE & BACKUP (output was to user only, not to $HOME. Just forgot, I guess)

[save.sb7]
 * 2014-11-12 12:20:53 +0000: #0346: Fixed SNAPSHOT (added timezone to file name because DST -> ST will cause a duplicate file name)
 * 2014-11-12 11:56:42 +0000: #0344: Fixed SNAPSHOT SAVE (default to "all;" HELP said so but the code didn't do it)
 * 2014-11-12 08:34:02 +0000: #0341: Upgraded SNAPSHOT SAVE (now has a -QUIET flag. HELP updated to explain)
 * 2014-11-11 07:30:39 +0000: #0336: Fixed SAVE (moved all SAVE-like commands to their own bead, SAVE.SB7, as it was originally in SB7 development. This matches SB6's format)

[say.sb7]
 * 2014-11-14 03:57:57 +0000: #0353: Fixed SAY & ACT (didn't check for blacnk input: SAY would just print a blacnk line, but, ACT would potentially cause the CTCP bug to be mimicked)

[snapshot.sb7]
 * 2014-11-13 08:56:55 +0000: #0351: Upgraded SNAPSHOT (when changing the target directory, now moves file from old directory to new directory)
 * 2014-11-13 07:13:44 +0000: #0349: Fixed SNAPSHOT (now has a controllable target-directory, default to: <bot dir>/snapshots/)

[textpad.sb7]
 * 2014-11-04 16:11:39 +0000: #0307: Fixed multiple beads (completed fixen re: where access levels are stored: USERLEVEL:* vs ACCESS:* (winner: ACCESS:*))

[topic.sb7]
 * 2014-11-08 13:24:19 +0000: #0329: Fixed SB7:TOPIC:LOCKCHECK:TIMER (the KILLTIMER command needed to be -QUIET; wasn't)

[who.sb7]
 * 2014-11-14 09:07:53 +0000: #0358: Fixed WHO (when calculating each user's access, the LOGGED-IN handle was being used for looking up access levels. Obviously this was wrong (but accidentally exposed who as not logged-in). I might make this a flag option in the future)

Any questions, see us at chat.bothouse.net in #BotHouse

~ Mai Mizuno, StormBot.TCL coder

Signed-off-by: Dustin <demonicpagan@gmail.com>