        __  _                        __ _                           _  __
  ______\ \_\\_______________________\///__________________________//_/ /______
  \___\                                                                   /___/
   | .__                                                                     |
   | |                                                                       |
   |                                                                         |
   |                   /\_________/\______/\______/\_______                  |
   ;                  \\     /                            //                 ;
   :                   _\   /   /   /   /    / __/   /   /                   :
   :                  /      __/   /   /____/  \      __/jp!                 :
   .                //____/    \__    / ___/   /___/    \                    .
   :                ==== /______\/   /==\_____// =/______\\==                .
   :                ::::::::::://____\::::::::::::::2020:::::                :
   :           H/Q Another Droid BBS - andr01d.zapto.org:9999                :
   ;                                                                         ;
   + --- --  -   .     -        ---    ---    ---        -     .    - -- --- ´
   :                                                                         :
   |                       ViRTuaL BaSeS v0.1 // mpy                         |
   :                                                                         :
   + --- --  -   .     -        ---    ---    ---        -     .    - -- --- ´
   | ._          SoftWare         Oper.System      Type                      |
   ; |           - { } BASH       - {x} Linux      - { } ANSI                ;
   :             - { } DOOR       - {x} RPi        - { } TEXT                :
   .             - {x} MPL/MPY    - {x} Windows    - {x} ASCII               .
   :             - { } Python     - {x} Mac        - { } BINARY              :
   ;             - { } Source     - { } OS/2                                 ;
   |                                                                         |
   + --- --  -   .     -        ---    ---    ---        -     .    - -- --- ´
   |  _     _ _                                                              |
   ; |    _| | |_    ____  _         _     _                                 ;
   :     |_     _|  |    \|_|___ ___| |___|_|_____ ___ ___                   :
   .     |_     _|  |  |  | |_ -|  _| | .'| |     | -_|  _|   _ _ _          .
   ;       |_|_|    |____/|_|___|___|_|__,|_|_|_|_|___|_|    |_|_|_|         ;
   |                                                                         |
   + --- --  -   .     -        ---    ---    ---        -     .    - -- --- ´
   ; The author has taken every precaution to insure that no harm or damage  ;
   | will occur on computer systems operating this util.  Never the less, the:
   ; author will NOT be held liable for whatever may happen on your computer .
   : system or to any computer systems which connects to your own as a result:
   . of. operating this util.  The user assumes full responsibility for the  ;
   : correct operation of this software package, whether harm or damage      |
   ; results from software error, hardware malfunction, or operator error.   :
   | NO warranties are : offered, expressly stated or implied, including     .
   | without limitation or ; restriction any warranties of operation for a   :
   ; particular purpose and/or | merchant ability.  If you do not agree with ;
   : this then do NOT use this program.                                      |
   + --- --  -   .     -        ---    ---    ---        -     .    - -- --- ´

   + --- --  -   .     -        ---    ---    ---        -     .    - -- --- ´
   |        _ _                                                              |
   ;      _| | |_    _____ _           _                                     ;
   :     |_     _|  |  _  | |_ ___ _ _| |_                                   :
   .     |_     _|  |     | . | . | | |  _|   _ _ _                          .
   ;       |_|_|    |__|__|___|___|___|_|    |_|_|_|                         ;
   |                                                                         |
   + --- --  -   .     -        ---    ---    ---        -     .    - -- --- ´
 
   VirtualBases is a complete new and different file area for your Mystic BBS.
   You can setup your file areas very easy, with out the need to adjust 
   all the settings needed in the normal file area and bases. Everything will
   be displayed as YOU want and not like Mystic wants ;)
   
   [] You can specify the displaying order of the groups and bases
   [] No need to customize ACS levels in Mystics default Groups/Bases. You can
      do it inside the script.
   [] Everything is LightBar driven ;)
   [] You have all the functionality of the default file area. 
   [] All Uploads goes to the default Upload Base. This way you have total 
      control of the files being uploaded.
   [] VBASE brings the functionality of Virtual Bases! which are custom CSV 
      files, that can have links for files in the NET or any HDD on your s
      system.
   [] It's Open Source, Python and you can customize it, as you want ;)
   
   + --- --  -   .     -        ---    ---    ---        -     .    - -- --- ´
   |        _ _                                                              |
   ;      _| | |_    _____         _       _ _                               ;
   :     |_     _|  |     |___ ___| |_ ___| | |                              :
   .     |_     _|  |-   -|   |_ -|  _| .'| | |   _ _ _                      .
   ;       |_|_|    |_____|_|_|___|_| |__,|_|_|  |_|_|_|                     ;
   |                                                                         |
   + --- --  -   .     -        ---    ---    ---        -     .    - -- --- ´

   ::/ place the files inside the ./scripts directory of your Mystic BBS.
   ::/ execute the vbase.mpy script from a menu, with the GY command
   
   that simple! ;)

   + --- --  -   .     -        ---    ---    ---        -     .    - -- --- ´
   |        _ _                                                              |
   ;      _| | |_    _____         ___ _                                     ;
   :     |_     _|  |     |___ ___|  _|_|___                                 :
   .     |_     _|  |   --| . |   |  _| | . |   _ _ _                        .
   ;       |_|_|    |_____|___|_|_|_| |_|_  |  |_|_|_|                       ;
   |                                    |___|                                |
   + --- --  -   .     -        ---    ---    ---        -     .    - -- --- ´
   
   To configure the script, you must edit the main file (vbase.mpy). In the 
   beginning of the file, there are variables that you can change and adjust
   colors and some more things. To deeply customize it, you must have some
   knowledge of Python. Not too much... The script, even if it has no comments
   it's "readble" and you can manage to "find your way" in it ;)
   
   [] MAIN LIST / INDEX
   
   The configure the main list, you edit the file LIST.CSV, inside the VBASE
   directory. It's a CSV, so you only need a text editor, that supports lines
   with more than 255/80 chars. So don't use the default Mystic editor.
   
   You can use three types of items: GROUP, MBASE and VBASE. Each item has its
   own syntax:
   
   GROUP:
          
          The groups are just a way to organize visibly the index. Other than
          that, they do nothing ;)
          
          Syntax:
          
          <name>;group;<ACS level>
          
          name     : the string to be displayed in the list
          acs level: the user access level from 0 to 255. No need to add the 
                     "s" char. Just the number
          
          For example:  Local;group;20
                        this will create a group with name Local and users
                        with level 20 and above can see it.
  
   MBASE:
          
          This is the type to use Mystic BBS default file bases.
          
          Syntax:
          
          <name>:mbase;<ACS Level>;<id>[;<description>]
          
          name     : the string to be displayed in the list
          acs level: the user access level from 0 to 255. No need to add the 
                     "s" char. Just the number
          id       : the id number of the base. You can find it from the File
                     Base Editor, from Mystic Configuration. This is important.
                     If you don't provide the correct ID, the program will
                     crash.
          descript.: this is a text string, that is being displayed in the DIZ
                     area. It can be as long as you want (that's why you need
                     an editor that supports long lines) and you can use any
                     Mystic PIPE code you want. Specially the |[X and |[Y to
                     position the text anywhere you want.
                     
                     You can omit this field. No need to enter a description.
                     But remember not to put a ; at the end.
  
   VBASE:
          
          This is the type to use Virtual Bases. With this type you can make
          file bases, very quick, that will contain files anywhere in your
          disks or even be links to some Internet website.
          
          Syntax:
          
          <name>:vbase;<ACS Level>;<file>[;<description>]
          
          name     : the string to be displayed in the list
          acs level: the user access level from 0 to 255. No need to add the 
                     "s" char. Just the number
          file     : this must be the full pathname and filename of another
                     CSV file, that will contain the items for the Virtual 
                     Base. See below for the syntax.
          descript.: this is a text string, that is being displayed in the DIZ
                     area. It can be as long as you want (that's why you need
                     an editor that supports long lines) and you can use any
                     Mystic PIPE code you want. Specially the |[X and |[Y to
                     position the text anywhere you want.
                     
                     You can omit this field. No need to enter a description.
                     But remember not to put a ; at the end.
                     
                     
   [] VIRTUAL BASE LIST / INDEX
   
   As you read above, Virtual Bases use a CSV type file to be configured. Here
   we will explain this.
   
   Each line is an item, which can be a Link to a website/URL or a full file
   path and name to any local file. So you have two types LINKS and FILES.
   
   You can add an item like this:
   
   <name>;<type>;<acs>;<target>;[description]
   
   A line beginning with a # is ignored, so you can add comments in the files.
   
   
   LINKS :
   
          To add a link you do it like this:
          
          <name>;link;<acs>;<target>;[description]
          
          For example:
          
          mys112a43_l32.rar;link;20;http://www.mysticbbs.com/downloads/mys112a43_l32.rar
  
          Syntax:
          
          name     : the string to be displayed. For links it can be anything
                     you want.
          acs level: the user access level from 0 to 255. No need to add the 
                     "s" char. Just the number
          target   : is the full URL of the file.
          descript.: it can be any string you want, as long as you want and
                     can also have Mystic PIPE codes. You can also specify a
                     .DIZ file and it also accepts VARIABLE PATHS.
  
  FILES :
   
          To add a file you do it like this:
          
          <name>;file;<acs>;<target>;[description]
          
          For example:
          
          mys112a43_l32.rar;file;20;/home/pi/files/mys112a43_l32.rar
  
          Syntax:
          
          name     : the string to be displayed. For files it has to be the 
                     filename.
          acs level: the user access level from 0 to 255. No need to add the 
                     "s" char. Just the number
          target   : is the full file path and name of the file you want to 
                     add. You can also use VARIABLE PATHS.
          descript.: it can be any string you want, as long as you want and
                     can also have Mystic PIPE codes. You can also specify a
                     .DIZ file and it also accepts VARIABLE PATHS. 
                     
                     To specify a text file (like .DIZ), you add the full path
                     of the file with a ! char at the beginning. For example:
          
        upgrade.txt;file;20;{system}docs/upgrade.txt;!{system}docs/upgrade.diz
        
                     This will add the "upgrade.txt" file as a list item and
                     display the "upgrade.diz" file as a description for the
                     item.
                     
    You can see the example CSV files included in the package, to get an idea
    on how to add items. Once you are familiar with the "mechanism", you will
    easily make and add as many as VBASEs you want.
    
    
    [] VARIABLE PATHS
    
    In some fields of the CSV files, instead of writing the whole path for a 
    file, specially if is inside the Mystic "enviroment", you can specify a
    path, by using the following variables:
    
    {system}    : it's the main Mystic dir. ex: /mystic
    {script}    : the script dir. from the theme selected.
                  ex: /mystic/themes/default/scripts/
    {text}      : the text dir. from the theme selected.
                  ex: /mystic/themes/default/text/
    {theme}     : the theme dir. of the selected theme.
                  ex: /mystic/themes/default/
    {deftheme}  : the theme dir. of the default theme.
                  ex: /mystic/themes/default/
                  
    All paths are ended with the appropriate backslash for the system 
    (/ or \), so you don't have to include them when writing a path. For
    example you should use them like this:
    
    {script}filename.txt  and not like {script}/filename.txt
                     
            

   + --- --  -   .     -        ---    ---    ---        -     .    - -- --- ´
   |        _ _                                                              |
   ;      _| | |_    _____ _     _                                           ;
   :     |_     _|  |  |  |_|___| |_ ___ ___ _ _                             :
   .     |_     _|  |     | |_ -|  _| . |  _| | |   _ _ _                    .
   ;       |_|_|    |__|__|_|___|_| |___|_| |_  |  |_|_|_|                   ;
   |                                        |___|                            |
   + --- --  -   .     -        ---    ---    ---        -     .    - -- --- ´
   
    .:. February 2020
     `  + First Release
        
          
   
   + --- --  -   .     -        ---    ---    ---        -     .    - -- --- ´
         _____         _   _              ____          _   _ 
        |  _  |___ ___| |_| |_ ___ ___   |    \ ___ ___|_|_| |        8888
        |     |   | . |  _|   | -_|  _|  |  |  |  _| . | | . |     8 888888 8
        |__|__|_|_|___|_| |_|_|___|_|    |____/|_| |___|_|___|     8888888888
                                                                   8888888888
                DoNt Be aNoTHeR DrOiD fOR tHe SySteM               88 8888 88
                                                                   8888888888
 /: HaM RaDiO   /: ANSi ARt!     /: MySTiC MoDS   /: DooRS         '88||||88'
 /: NeWS        /: WeATheR       /: FiLEs         /: SPooKNet       ''8888"'
 /: GaMeS       /: TeXtFiLeS     /: PrEPardNeSS   /: FsxNet            88
 /: TuTors      /: bOOkS/PdFs    /: SuRVaViLiSM   /:            8 8 88888888888
                                                              888 8888][][][888
   TeLNeT : andr01d.zapto.org:9999 / ssh: 8888                  8 888888##88888
   SySoP  : xqtr                   eMAiL: xqtr@gmx.com          8 8888.####.888
   DoNaTe : https://paypal.me/xqtr                              8 8888##88##888
