DiaWho.LZH short filenote: Deluxe Dialog ``[W]ho's Online'' module v0.5 DiaWho.LZH long filenote: Runs as a Dialog BBS module allowing customized output of "[W]ho's Online". Seventy+ ^values are expanded to various items of a caller's account. Also runs in SysOp/CLI mode acting as a continuously updated, monitoring device of all used/unused lines. ================================================================ SysOps: Please delete all prior versions of this prg after putting this current version online. Updates/bug fixes and listed in reverse chronological order at the end of this file. All the latest releases of my Dialog BBS modules and utilities are available by download to members of: The Amiga ShareWare HeadQuarters BBS Bill Beogelein Box 52441 Livonia, MI 48152 313-473-2020 (BBS); 1:120/207 (Fido) Please pay shareware fees to keep new PD Dialog modules/utilities coming. An "all work in progress" disk (95-99% full) is available by US mail for $15. It guarantees you all the latest updates to all my utilities/ modules (as of 01-Sep-90 only this 1) as well as other's related Dialog/BBS/Telecommunication shareware. > Specify "DIALOG UTILITIES/MODULES DISK #1". Value after -level option is current caller's access level (Required) (Passed from Dialog menu with -l %17 or use constant from CLI) Filename after -in option is config file (Optional) Filename after -out option, redirects all output to filename (Optional) Filename after -both option, output to both filename & screen (Optional) Option -p, sets running task priority of DiaWho (Default==-1) (Optional) Custom value after -j option is displayed with ^j (Optional) Custom value after -J option is displayed with ^J (Optional) Custom value after -k option is displayed with ^k (Optional) Custom value after -K option is displayed with ^K (Optional) (Options -jJkK allow output of your passed %values as custom ^values not otherwise available in DiaWho. They show the %values pertaining only to the 1 caller running DiaWho, NOT to each caller on each line. Thus, their use is normally limited to *.CFG header/footers only.) The following options should only be used by the SysOp when running DiaWho from the CLI as a "all line, system monitoring task". Option -x, open window at position x (0-639) Option -y, open window at position y (0-199) Option -w, open window at position w (0-639) Option -h, open window at position h (0-199) Option -d, delay in secs between screen updates (Default is every 5secs. Specify "-d -1" for frozen display. Update manually by hitting any unused key.) Any 1 or more of the above options will open/run DiaWho in its own window. Pairs of remaining parameters control: (Minimum needed, 1 pair) 1) Min access level needed to view this port's activity. 2) List of each port name. Common usage calls from Dialog menu or CLI: DiaWho -l %17 [-opt parameter] [-opt param...] min_lev port [min_lev port...] 1> DiaWho -l %17 0 TL0 0 TR0 ; Display these lines. 2> DiaWho -l %17 -i My.CFG 0 TR0 0 TR1 ; Formatted as shown in CFG. 3> DiaWho -l %17 -i My.CFG -o t:log 0 TR0 0 TL0; Redirect all output to file. 4> DiaWho -l %17 -i My.CFG -b t:log 0 TR0 0 TL0; Output to file & screen. 5> DiaWho -l %17 -j "%34" -J "%35" 0 TL0 0 TR0; Show these values with ^j^J 6> DiaWho -l 999 -i My.CFG -p -1 -d 5 0 TR0 0 TL0; Open as CLI/SysOp window. All -options ARE case sensitive. All -options and their companion parameters must appear before the paired min_level+port_# list. Each - option can NOT occur more than once. All option combinations allowed. If -BOTH or -OUTPUT options are used in UPPER CASE, the filename specified is first deleted. Otherwise, the default "APPEND to end of file" mode is used. These options allow DiaWho to also act as a custom output, "caller log" generator. Execute DiaWho at every log-in with its -output hidden from the user, but appended to the end of a caller log file by using "-o t:Caller.LOG". "Last caller only" can be saved with "-O t:Last.Log". ******************************************************** To customize DiaWho's output, create a config file: ; ; This filename is passed to DiaWho as its 1st parameter. ; This file must contain one of 6 different characters at the ; start of every line. ; ; These are comment lines start with ';' and are ignored. ; Use as needed. ; ; > These lines specify "header" text. ; > This text is display once, at the start of DiaWho's output. ; > Commonly used to describe the output text that will following. ; > Any non-totals ^values can be used, date/time usually. > > Generated on ^$, ^&, ^= with ^?... > >Line CLI Name Baud Action >------------------------------------------------------------------------- ; ; Each line starting with | char, shown if access is too low to view | ^P (Private, level ^[ needed to view) ; ; Each line starting with - char, shown if this modem is available - ^P (Awaiting next caller) ; ; Each line starting with + char, shown if this modem is current in use + ^P ^2p ^-21N ^5B ^A ; <------------------------------------------------------------------------- < Line status: ^! used; ^] private; ^# free; ^* total < ; < These lines specify "footer" text. ; < This text is displayed once, at the end of DiaWho's output. ; < Commonly used to display totals. ; < Any ^value can be used, ^! ^@ ^# ^* totals, usually. ; ; More comments, if any... ; TCSs (Text Control Sequences) allowed in *.CFG file: (Each working as of DiaWho version # shown.) Special TCSs listing internal totals of DiaWho: * ^! v0.1 # of lines in use * ^# v0.1 # of lines not in use ^$ v0.2 Day as: Monday, Tuesday... ^& v0.2 Date as: 01-Jan-90 * ^* v0.1 # lines total ^= v0.1 Time as: 12:23:45pm ^. v0.1 Suppress linefeed at end of line ^: v0.1 Port name TR0: TL0: etc ^; v0.1 Remainder of line is comment ^? v0.1 DiaWho's name/version # ^@ ---- Show ID# of user ^[ v0.1 Min level needed to view this port * ^] v0.1 # of private lines, total ^^ v0.1 Single ^ character ^_ v0.1 DiaWho's compile date ^| ---- Show current Dialog BBS name/version # ^> v0.3 DiaWho's CLI task # ^~ ^% ^( ^) ^{ ^} (Reserved for future use) DO NOT USE! * When using above '*' marked ^values in other than "1 user runs at same time * Get description on elements of Dialog's struct that aren't commented * ^20(This text^) justify text or other grouped ^values * Writes to t:tr?.user if has same task #. May be old, dup task # there. * Remove all DiaWho.ERR code, remove all debugging code * Wildcarding portname input as 0 TR? 0 TL? 0 T?? (scdir()) * CLI/SysOp mode spawn own task * -delay between loops, -DELAY between callers * ^Invisible cursor * ^Erase to end of line * -custom allows different USER:Bill_Beogelein/*.CFG file per caller * Full .h still needed for USER:ComputerTypes.BBS * * xxx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx * * v0.5 Monday 24-Sep-90 15:36:54 (21924) * Use "DLGCONFIG:Port/ComputerTypes.BBS" instead * of non-existent "USER:ComputerTypes.BBS" * Added (size) to .docs * Re-compiled w/o including intuition.h * * v0.4 Sunday 23-Sep-90 15:50:51 * Removed "limited Sept 1990 use only" * Added ^T for output of computer name string (max 25 types) * * v0.3 Monday 10-Sep-90 13:44:54 * Zeroed in_out before use * Zeroed old_priority before use, avoid priority >128 * Removed not_avail func (not used) * Re-assigned ^xXyy to ^jJkK so -x -y could be used for window * Compile date also put into .ERR * Conflicting ^w and ^w value changed to ^W * Re-assigned ^d changed to ^D * ^> outputs DiaWho's task # * Checks for illegal passed access levels * ErrBye() changed to bye() as only exit() point * Supplied .CFG & internal default CFG, show no CLI # if low access * head_str[2][MAX] renamed head_str and foot_str * Parsed values list also put to .ERR * Removed unused vars: len, ch, bufsize, i, i, i * Faster option parsing (-O -B switch/case fall through) * "-illegal option" msg to .ERR once, not twice * "Wrong # options" msg to .ERR once, not twice * Double %% are printed to .ERR correctly as single % * num_use, num_not_use, now set to 0 before run * fixcase() of alias name * If can't open-for-append to log, continue, instead of bye() * SysOp CLI mode: Opens its own window * Cursor off; cleaner and faster display * Clears each line to EOL * Checks for out of bounds window parameters passed * to_out() checks for window AND in_out pointer * * Added: ^b Bytes downloaded * ^d Download file count * ^U Upload byte count * ^F Files uploaded * Added options: -delay in_secs * -level access_level_# * -pri priority_# * -x x_window_pos * -y y_window_pos * -w window_width * -h window_height * * v0.2 Saturday 08-Sep-90 15:52:01 * 2nd ^C doesn't skip proper cleanup after 1st ^C was detected * ^o Online_Time removed, awaiting description * No sys requesters for missing *.CFG t:t??.user USER:???/user.data files * Added DiaWho's task # to each line of .ERR * fixcase() corrects name's case, in place * Removed ^T computer types by name, awaiting name list * Renamed t:DiaWho.LOG to t:DiaWho.ERR * ^( ^) values changed/reserved for future use (sorry) * Support for >9 modem lines (upto 32767 lines) * .CFG name must be proceeded with -i option * Added default/internal cfg format if no -i option is used * Can redirect to optional -output * Can redirect to optional -both (file and screen) * Blank lines in .CFG are also "comments" * Bug in ^T if ^t>4, now fixed (Computer name list still needed) * Cfg, ram, user structs cleared before loaded (fixed wrong CLI # bug) * Added ^e to allow justified "City, State" * Added ^E to allow justified "City, State, Country" * Added ^f to allow justified "State, Country" * # 0 CLI tasks are shown as "-" (unused modems) * Write/update to t:TR?.user user.Action for 1 user running DiaWho * Min level restrictions overrides "modem is/isn't in use" * 1st parameter passed must be %17 to avoid ARP and GetDevName() * Before ^value expansion header/footer lines can be 512 chars each * Other 3 body lines can be 256 chars each * After ^value expansion header/footer lines can be 1024 chars each * Other 3 body lines can be 512 chars each * (Future release will allow unlimited lengths in all cases) * * v0.1 Thursday 06-Sep-90 18:45:20 * First beta release * * EOF DiaWho.doc */