Section One BBS

Welcome, Guest.


Subject: [ANSI] whats new a37 so far Date: Thu Dec 14 2017 01:07 am
From: dream master To: All

please know this can change.
                             + New Python functions for reading Message Bases:
                                                                              
                                                                                 m
sg_open,       msg_seek, msg_found, msg_next, msg_prev, msg_gethdr,
                                                                        msg_gett
xt, msg_close
             
                Rather than try to document them all here I've included a "msgre
ad.mpy"
          in the default installation as an example of how to use these function
s.
     This example implements a very basic message reader using the user's
                                                                            curr
ent message base.
                 
                  ! Mystic will now show "proto.xxx" or "protob.xxx" for batch-o
nly protocols
                if they exist instead of generating a list of protocols.  PROTO 
should
   contain all protocols, regardless of batch or not.  PROTOB should contain
   only batch-supported protocols.
                                  
                                   ! Fixed a bug where Mystic was allowing non-b
atch protocols to be selected
                                for a batch file transfer.
                                                          
                                                           ! Fixed a bug where t
he -Y and -N M                      CI codes were not always working for the
                                                                               n
ext Yes/No promp    t.
                      
                       + Changed the format of the "scan" settings data for mess
age and file bases,
                      this should be total transparent to everyone, except that 
update.exe needs
                   to be ran to update the data files.
                                                      
                                                       + MUTIL has a new "PurgeU
serBas                          e" function will which mark users who have
                                                                             not
 connected t      o the BBS in X days for deletion.  UKILL function has been
                                                                               r
emoved from MBBSUTIL.  Default mutil.ini has been updated
                                                         
 + MUTIL has a new "PackUserBase" function which will physically delete user
   records, private messages to and from them, their lastread pointers in
   message bases, their scan settings in message and file bases.  This can
   only be executed when there are no users online.  Default mutil.ini has
   been updated.
                
                 ! Fixed a bug where MUTIL was not always removing the proper BS
Y files when
               it timed out waiting for a node to finish.
                                                         
                                                          + New Python function 
"charxy(x,y)"                        returns the character and attribute of
                                                                              th
e user's screen a     t the X/Y coordinate.  Example:
                                                     
                                                          ch, attr = charxy(1, 1
);
  
       writeln("attr=" + str(attr));
                                         writeln("char=" + ch);
                                                               
                                                                + New Python fun
ction getcfg() re                 turns basic configuration options in a
                                                                           Pytho
n dictionary.          I am not going to list out dictionaries here as I am
                                                                              ad
d     ing to it as people ask for it, but for with any dictionary you can
   always iterate through it to see the elements until it lands on the Wiki

     import mystic_bbs as bbs;
                              
                                   bbs.writeln("|CLElements:")
                                                              
                                                                   cfg = bbs.get
cfg()
     
          for key, value in cfg.items():
                                        
                                               bbs.write ("Key: " + key.ljust(20
));
   
          if isinstance(value, bool):
                                     bbs.writeln(" Value: " + (value and "True" 
or "False"));
                    elif isinstance(value, (int, long)):
                                                                 bbs.writeln(" V
alue: "                         + str(value))
                                                    else:
                                                                  bbs.writeln(" 
Value: " +                        value)
                                        
                                             bbs.writeln("|PA")
                                                               
                                                                + New Python fun
ction "getyn(text, default)".  This presents a Yes/No prompt
   and returns True if they answer yes, False if they answer no.  The
                                                                        second p
arameter is the default selection (True is yes, False is no):

     if getyn("Is this an example? ", True):
                                                   writeln("You answered Yes!")
                                                                                 e
lse:
           writeln("You answered No!")
                                      
                                       + New Python function "showfile(filename,
 baud, pa                                          use, abort, onlynew)"
                                                                        
                                                                           This 
function shows a display         file and provides all options specific to
                                                                             how
 it is displ      ayed as parameters and returns True or False depending on
                                                                              if
 a display file was found and shown.
                                    
                                       The filename logic uses the same as the G
D menu command (see the Wiki
                               documentation for GD for more info) which means i
t has implied paths a                                                    nd
                                                                              ex
tensions and random display files if desired.
                                             
   The baud parameter is 0 for full speed or whatever the baud rate at which
   Mystic should display the file.
                                  
                                     The Pause parameter is a True/False value t
hat when True will attempt to
                                pause on a full screen.
                                                       
                                                          The Abort parameter is
 a True/False                          value that when True will allow the
                                                                             fil
e to be aborte      d while display using the space bar.
                                                        
                                                           The OnlyNew parameter
 is a True/False value that when True will only show
   the file if it has been update since the user's last login to the BBS. Ex:
                                                                             
                                                                                 s
howfile("gj-glue1", 9600, False, True, False)
     showfile("c:\mystic\textfiles\mytext.txt", 0, True, True, False)
                                                                     
 + New Python command "getprompt(number)" will return prompt (number) from
   user's currently selected theme.  If the prompt has been replaced with
   a script or display file, Mystic will execute the script or show the
   file.
        
         ! Fixed an issue where setting scanned bases with the /qwknet option wa
s
    not showing anything in the QWK networking menu.
                                                    
                                                     + New Python command "stuff
key(text)".  Th                            is function adds text into the
                                                                            inpu
t buffer as if the user        had typed it.
                                            
                                             + New Python command "sysoplog(leve
l,                                     text)" logs a line to the node's
                                                                          log us
ing level as the lo         glevel.  Only if the loglevel is set equal to
                                                                            or g
reater t       han <level> will it be shown in the log.  Text is a string
                                                                            of t
ext which will have a datestamp added to it automatically.
                                                          
     sysoplog(1, "Welcome to my Python script!")
                                                
                                                 + New Python command "access(ac
sstring)" returns True or False if the user
                                              passes (has access) to the supplie
d <acsstring>:
              
                   if access("s20"):
                                           writeln("User has a security level of
 20 or                                             higher!")
                                                                 else:
                                                                             wri
teln("User has less than 2          0 security.")
                                                 
                                                  + New Python command "rwrite(t
ext)" wri                               tes text to the user with no line
                                                                            endi
ng and no MCI or col       or code processing.
                                              
                                                   rwrite("You will actually see
 the color code here");
                       
                        + New Python command "rwriteln(text)" writes text to the
 user with no MCI
                    or color code processing, and moves to the next line after s
ending:
       
     rwriteln("Line one")
                              rwriteln("Line two")
                                                  
                                                   + New Python function "upuser
(seclevel)".  Updates the current user's sec                              urity
                                                                                
  profile to <seclevel>, which includes access flags,  time left, daily
                                                                          limits
, etc.  Ex: upuser(50)
                      
 + New Python function "wherex" returns the current X location of the cursor

 + New Python function "wherey" returns the current X location of the cursor
                                                                            
                                                                             + N
ew Python function "textattr" returns the     current text color attribute
                                                                          
                                                                           + New
 Python function "t      extcolor(attribute)" sets the current text color
                                                                            to <
attri       bute> where attribute is calculated as (FG + BG) * 16 so white
   on a blue background would be 15 + 1 * 16 (or 31).
                                                     
                                                      + New Python function "get
mgroup(number)" returns a dictionary of the messag                           e
                                                                                
 group at record number <number>.
                                 
                                  + New Python function "getmgroupid(number)" re
turns a dictionary of the
   message group with the ID of <number>.
                                         
                                          + New Python function "getfgroup(numbe
r)" returns a dictionary of the file
                                       group at record number <number>.
                                                                       
                                                                        + New Py
thon function "         getfgroupid(number)" returns a dictionary of the
                                                                           file 
grou        p with the ID of <number>.
                                      
                                       + New Python function "getfbase(number)" 
returns a dictionary of the file
                                   base located at record number <number>
                                                                         
                                                                          + New 
Python function "g       etfbaseid(number)" returns a dictionary of the file
                                                                               b
ase w    ith the ID of <number>
                               
                                + MUTIL's MergeNodeList should no longer care ab
out the casing of the file
                             archives or the nodelists within those archives.  I
n otherwords, its now
                        case insensitive even on case sensitive OSes.
                                                                     
                                                                      + Mystic B
BS now has a built in text editor which will be expanded on as
   development continues.  Like all of Mystic's functions this is designed to
                                                                                
work over any terminal connection and will be a work in    progress.
                                                                    
                                                                     + Small rev
amp of the System configuration             to add a "Networking" category
                                                                             as 
the Configuration column       is getting cluttered and will be moreso as I
                                                                              ad
d in sever     al new options that are planned.
                                               
                                                + Configuration now allows many 
of Mystic's text-based control files to be
                                             edited within the configuration usi
ng the new text editor.
                       
 ! Message and File group editors were not assigning a new Unique ID to the
   group when pasting.
                      
                       ! Fixed a bug during graphics detection in Linux where My
stic would still
                   show ANSI codes until after the graphics prompt was displayed
.
 
  |08 .|05·|13∙|15Dr|07e|08am Ma|07st|15er|13∙|05·|08.
  |08 °∙|05·|13∙°         |13°∙|05·|08∙°
  |11 DoRE|03!|11ACiDiC|03!|11Demonic
|08[|15dreamland|09.|15darktech|09.|15org|08]

--- Mystic BBS v1.12 A36 2017/12/03 (Windows/64)
 * Origin: --[!dreamland BBS dreamland.darktech.org (44:100/0)

Previous Message       Next Message