home *** CD-ROM | disk | FTP | other *** search
/ Hall of Fame / HallofFameCDROM.cdr / qbbsetc / subscp20.lzh / SUBSCRIP.DOC < prev    next >
Text File  |  1991-03-25  |  23KB  |  597 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.                          QUICKBBS USER SUBSCRIPTION PROGRAM
  34.                                  COPYRIGHT (C) 1991
  35.                             RELEASE DATE: MARCH 21, 1991
  36.                                        V0.20
  37.  
  38.                                          BY
  39.                                    MARK E. MORAN
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.               The QuickBBS User Subscription Program is a utility to
  79.               be used in conjunction with QuickBBS v2.66+ by Steve
  80.               Gabrilowitz and Richard Creighton.  It will allow you
  81.               to track and automatically update user's access to
  82.               QuickBBS, as is typically needed for pay or
  83.               subscription BBS's.
  84.  
  85.  
  86.  
  87.               This utility was designed specifically for QuickBBS
  88.               v2.66+, but may work with several of the QuickBBS
  89.               'clones' currently available (with compatible USERS.BBS
  90.               and MSG*BBS files).  No guarantee or support is offered
  91.               for any BBS software other than QuickBBS v2.66+
  92.  
  93.  
  94.  
  95.               An expiration date is stored in an external file called
  96.               SUBSCRIP.DAT.  (For backward compatibility this version
  97.               also uses expiration dates stored in the USERS.BBS
  98.               birthday field.  Future support for this feature is not
  99.               guaranteed.  In fact it is not likely.  An additional
  100.               utility called STARTUP is included with this program.
  101.               It will transfer all your current expiration dates from
  102.               the USERS.BBS file into the SUBSCRIP.DAT file.)
  103.               STARTUP should also be run by the first time user who
  104.               wishes to use the external storage format.  It should
  105.               only be run ONCE!
  106.  
  107.  
  108.  
  109.               The user's expiration date can be displayed on-line
  110.               using an additional utility called DISPDATE included in
  111.               this distribution archive.  This file uses the FOSSIL
  112.               to display a text file which contains the keyword
  113.               [expdate].  Wherever [expdate] is found, the user's
  114.               expiration date will be found.
  115.  
  116.                  ══════════════════════════════════════════════════
  117.                  I'VE RUN INTO SOME PROBLEMS USING THE ^X OPTION IN
  118.                  ASC/ANS FILES WITH THE LATEST BETA OF 2.75 OF
  119.                  QUICKBBS.  STEVE G. IS AWARE OF THESE PROBLEMS AND
  120.                  WILL HAVE IT FIXED BEFORE RELEASE TIME.  I'M NOT
  121.                  SURE IF THESE PROBLEMS EXIST IN THE GAMMA RELEASE
  122.                  VERSIONS OF 2.75.
  123.                  ══════════════════════════════════════════════════
  124.  
  125.             ╔═══════════════════════════════════════════════════════════╗
  126.             ║                     GETTING STARTED                       ║
  127.             ╚═══════════════════════════════════════════════════════════╝
  128.  
  129.  
  130.  
  131.  
  132.             ════════════════════════════════════════════════════════════
  133.             QUICKBBS USER SUBSCRIPTION V0.20             PAGE - 2
  134.             ════════════════════════════════════════════════════════════
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.               The first item of business for setting up the
  142.               subscription program is the control file
  143.               (SUBSCRIP.CTL).  There is an example of the CTL file
  144.               included with the distribution set.  The keywords for
  145.               the subscription CTL file are:
  146.  
  147.                  Sysopname  - This option is for registered users.
  148.                  This is the name which will replace the
  149.                  'UNREGISTERED SYSOP' in the FROM field of all
  150.                  msg's generated by SUBSCRIP.  It will only work
  151.                  with a valid registered key.
  152.  
  153.                  RegKey     - This field is for your registered key
  154.                  to activate the Sysopname option
  155.  
  156.                  Warndays   - This is the # of days prior to a
  157.                  user's expiration you wish to send him a warning
  158.                  message.
  159.  
  160.                  RenewFlag  - This is the flag which will be set
  161.                  when a user's expiration has come within the # of
  162.                  warning days.  (This can be used to turn on a
  163.                  option for a questionnaire or door to allow the
  164.                  user to renew his subscription.)
  165.  
  166.                  LogFile    - This is the directory which you'd
  167.                  like the SUBSCRIP.LOG file to be written.
  168.  
  169.                  QBBSBBSDir - This is the directory which you have
  170.                  USERS.BBS, and MSG*.BBS located.
  171.  
  172.                  MaxLevl    - This is the maximum security level
  173.                  SUBSCRIP.EXE will check.  This will allow you to
  174.                  have security levels exempt from expiration.  This
  175.                  can be used for Sysop or co-Sysop levels.
  176.  
  177.                  ExtDateDir - This is the directory which will
  178.                  store the file containing the user's expiration
  179.                  dates.  The file is called SUBSCRIP.DAT and can
  180.                  not be changed.
  181.  
  182.                  RegUserSec - This is the security level of a
  183.                  regular non-subscribing user.  When a user's
  184.                  expiration date arrives he is returned back to
  185.                  this level.
  186.  
  187.                  RegAFlag   - This is the 'A' flag setting for a
  188.                  regular non-subscribing user.  As with RegUserSec,
  189.                  when a user's expiration date arrives he is
  190.                  returned back to this level.
  191.  
  192.                  RegBFlag   - This is the 'B' flag setting for a
  193.                  regular non-subscribing user.
  194.  
  195.  
  196.  
  197.  
  198.             ════════════════════════════════════════════════════════════
  199.             QUICKBBS USER SUBSCRIPTION V0.20             PAGE - 3
  200.             ════════════════════════════════════════════════════════════
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.                  RegCFlag   - This is the 'C' flag setting for a
  208.                  regular non-subscribing user.
  209.  
  210.                  RegDFlag   - This is the 'D' flag setting for a
  211.                  regular non-subscribing user.
  212.  
  213.               It is possible to establish up to 5 different levels of
  214.               subscribing users.  These are set by the following
  215.               keywords in the CTL file.  Each level has an individual
  216.               security level and flag setting for each of the 4
  217.               flags.  The following keywords are used with the number
  218.               1, 2, 3, 4, or 5 replacing the '?' dependent on the
  219.               subscribing level.  Eg., the keyword UpgUserSec1 is the
  220.               setting for the users security level for subscribing
  221.               level #1.
  222.  
  223.                  UpgUserSec? - Setting for subscribing (upgraded)
  224.                  user level.
  225.  
  226.                  UpgAFlag?   - 'A' flag setting
  227.  
  228.                  UpgBFlag?   - 'B' flag setting
  229.  
  230.                  UpgCFlag?   - 'C' flag setting
  231.  
  232.                  UpgDFlag?   - 'D' flag setting
  233.  
  234.               The control file must be named SUBSCRIP.CTL and found
  235.               in the same directory as SUBSCRIP.EXE.  But neither
  236.               need reside in the QuickBBS directory.  All keywords
  237.               must start in column 1 of the file.  Any blank lines or
  238.               lines beginning with a ';' are ignored and can be used
  239.               for comments.
  240.  
  241.               There are three possible choices for flag settings.
  242.               They are '-', 'X', or '?'.  The '-' setting will turn
  243.               the flag bit off, the 'X' parameter will
  244.               unconditionally turn it on, and a '?' will leave the
  245.               flag bit unchanged.  For example:
  246.  
  247.                  UpgBFlag2  --X--???
  248.  
  249.               This will turn off flag bits 1,2,4,5, of the B flag
  250.               while upgrading a user to level 2.  It will turn on the
  251.               3 flag bit, and leave the 6th, 7th, and 8th unchanged.
  252.               To leave a series of flag bits unchanged you would use:
  253.  
  254.                  RegAFlag  ????????
  255.  
  256.               This would make all the A flag bits unchanged when a
  257.               user was downgraded to a regular user.
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.             ════════════════════════════════════════════════════════════
  265.             QUICKBBS USER SUBSCRIPTION V0.20             PAGE - 4
  266.             ════════════════════════════════════════════════════════════
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.               The RenewFlag syntax is: FLAG then Bit number.  For
  274.               example, to use the 7th bit of the B flag, RenewFlag
  275.               should look like this:
  276.  
  277.                  RenewFlag B7
  278.  
  279.               Once you've setup the CTL file properly, and you plan
  280.               to use the external date storage format.  (HIGHLY
  281.               RECOMMENDED.)  You should run STARTUP in your SUBSCRIP
  282.               directory.  It will create the SUBSCRIP.DAT file
  283.               containing your user's expiration dates.  SUBSCRIP uses
  284.               the Alias pointer in the user's record.  So STARTUP
  285.               will also create or extend your ALAIS.BBS file.  This
  286.               will have no effect on your normal usage of alias's.
  287.               If you have never run SUBSCRIP before.  STARTUP will
  288.               use -1 for the expiration date, to signify a 'NEW USER'
  289.               (or subscriber actually).  If you have used SUBSCRIP
  290.               previously and used the BIRTHDAY field to store the
  291.               expiration dates, STARTUP will copy those dates to the
  292.               external file.  It will consider any date prior to the
  293.               day you run STARTUP to be a birthday, and any day in
  294.               the future to be an expiration date.
  295.  
  296.               As an added feature STARTUP will also allow you to set
  297.               a flag on any user that it determines has an expiration
  298.               date in the birthday field.  This will allow you to
  299.               setup a menu option to collect birthdays for those
  300.               users where you had previously stored their expiration
  301.               date.
  302.  
  303.               Other files SUBSCRIP uses are the *.MSG files.  These
  304.               contain text of the canned messages sent to the user as
  305.               SUBSCRIP changes their status.  The first line of each
  306.               file is the subject line for the msg.  It should end
  307.               with a CR.  The maximum amount of lines read in is 50.
  308.               Anything over 50 is ignored.  The following is a list
  309.               of the *.MSG files and when they are used:
  310.  
  311.                  WARNING.MSG - This contains the text of the msg
  312.                  which is sent to the user when their expiration
  313.                  date is within the number specified by the
  314.                  WARNDAYS in the SUBSCRIP.CTL file.
  315.  
  316.                  EXPIRED.MSG - This contains the text of the msg
  317.                  which is sent to the user when their expiration
  318.                  date is pasted.
  319.  
  320.                  SUBSCRB0.MSG - This contains the default text of
  321.                  the upgrade msg to a user.  If you upgrade a user
  322.                  to a level which doesn't have a corresponding
  323.                  SUBSCRB?.MSG (see the following), this text will
  324.                  be used.
  325.  
  326.  
  327.  
  328.  
  329.  
  330.             ════════════════════════════════════════════════════════════
  331.             QUICKBBS USER SUBSCRIPTION V0.20             PAGE - 5
  332.             ════════════════════════════════════════════════════════════
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.                  SUBSCRB?.MSG - This contains the text of the msg
  340.                  sent to a user when he is upgraded.  It is
  341.                  specific to the level you upgrade him to.  EG.,
  342.                  SUBSCRB2.MSG contains the text for a user upgraded
  343.                  to level two.  If you upgrade a user to a level
  344.                  which doesn't have a corresponding SUBSCRB?.MSG
  345.                  file, the SUBSCRB0.MSG is used.
  346.  
  347.                  ══════════════════════════════════════════════════
  348.                  ALL SUBSCRB?.MSG FILES ARE OPTIONALLY.  IF THEY
  349.                  AREN'T FOUND AT START, NO MESSAGE IS SENT TO THE
  350.                  UPGRADED USER.
  351.                  ══════════════════════════════════════════════════
  352.  
  353.             ╔═══════════════════════════════════════════════════════════╗
  354.             ║                        OPERATIONS                         ║
  355.             ╚═══════════════════════════════════════════════════════════╝
  356.  
  357.               All commands to SUBSCRIP.EXE are passed along on the
  358.               command line.  There are three basic commands
  359.               available.
  360.  
  361.                  *      - which upgrades a user to the specified
  362.                  level.
  363.  
  364.                  UPDATE - this scans all users and checks for
  365.                  expirations or the need for warning msgs, and
  366.                  makes the appropriate changes to the user's
  367.                  record.
  368.  
  369.                  STATS  - this will display a list of all of your
  370.                  users listing their expiration dates.
  371.  
  372.                  STATSSUBONLY - this is essentially the same as
  373.                  STATS, except it will only display users with a
  374.                  stored expiration date.  (IE., it will skip new
  375.                  users who have yet to subscribe, and you have
  376.                  added an expiration date with the '*' command.)
  377.  
  378.               The * command requires several other parameters.  First
  379.               is, at which of the five available levels should the
  380.               user be processed.  This is passed along immediately
  381.               after the * command, eg., *3.  The next required
  382.               parameter is the user's name as it is spelled in the
  383.               user's record.  Capitalization is not significant.
  384.               Finally you pass the expiration date or time.  There
  385.               are 4 possible choices here.  You can either add or
  386.               subtract a number of days.  Eg., -45 will subtract 45
  387.               days from the user's current expiration date.  While 45
  388.               or +45 will add 45 days to the user's current
  389.               expiration date.  Or you can pass the actual date of
  390.               the expiration.  For example, 12/25/92.  Finally you
  391.               can set the user to have no expiration, NOEXP.
  392.               (Actually the Julian date of 999999 is used.  Which
  393.  
  394.  
  395.  
  396.             ════════════════════════════════════════════════════════════
  397.             QUICKBBS USER SUBSCRIPTION V0.20             PAGE - 6
  398.             ════════════════════════════════════════════════════════════
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.               works out to 11/9/4337.  If you're still using this
  406.               program at that time, and I'm still alive.  I'll
  407.               personally come out to your location to change the
  408.               code.)  Here are some examples:
  409.  
  410.                  SUBSCRIP *4 Richard nixon 04/05/92
  411.  
  412.               This would upgrade Richard Nixon to level 4 user and
  413.               set his expiration to April 5, 1992.
  414.  
  415.                  SUBSCRIP *4 richard nixon -45
  416.  
  417.               This would maintain Richard Nixon's record at level 4
  418.               and move his expiration date 45 days closer to today.
  419.  
  420.                  SUBSCRIP *5 MARK MORAN NOEXP
  421.  
  422.               This would set user Mark Moran to level 5, and give him
  423.               no expiration date.
  424.  
  425.               In addition to setting the user's security level and
  426.               flag settings as specified in the CTL file, the
  427.               QuickBBS NO-KILL flag is set to on, and the RenewFlag
  428.               is set to off.  The NO-KILL flag setting will allow you
  429.               to maintain a user base with users having expiration
  430.               dates, years into the future, yet allow you to purge
  431.               non-subscribing users if they haven't called with 60
  432.               days.
  433.  
  434.               In addition to updating the user's record SUBSCRIP will
  435.               also write the user a 'canned' msg specific to the
  436.               upgrade level, if you choose.  The text for this canned
  437.               msg is found in the SUBSCRB?.MSG's.  SUBSCRB0.MSG is
  438.               used if you don't have a SUBSCRBx.MSG specific for that
  439.               upgrade level.  This will allow you to either use a
  440.               specific msg to each level, or using the SUBSCRB0.MSG
  441.               you can send the same msg to all upgraded users.  This
  442.               is all entirely optionally.  If at startup SUBSCRIP.EXE
  443.               doesn't find a SUBSCRB?.MSG it won't send a msg to that
  444.               user.
  445.  
  446.               The next command is rather simple: UPDATE.  This will
  447.               tell SUBSCRIP.EXE to go through each user's record and
  448.               check to see if their recorded expiration date is
  449.               within the number of 'Warndays' or check to see if
  450.               'their day has come.'  Typically, you will run this
  451.               option in your nightly BAT file.  It should be run
  452.               daily.  Not doing so will result in unpredictable
  453.               results.
  454.  
  455.                  ══════════════════════════════════════════════════
  456.                  FOR THIS PROGRAM TO WORK PROPERLY, YOUR SYSTEM
  457.                  DATE MUST BE SET PROPERLY!
  458.                  ══════════════════════════════════════════════════
  459.  
  460.  
  461.  
  462.             ════════════════════════════════════════════════════════════
  463.             QUICKBBS USER SUBSCRIPTION V0.20             PAGE - 7
  464.             ════════════════════════════════════════════════════════════
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471.               If a user is within the 'Warndays' period, the Renewday
  472.               flag is set to on, and the WARNING.MSG text is sent to
  473.               the user in are one.
  474.  
  475.                  ══════════════════════════════════════════════════
  476.                  THE MESSAGE TO THE USER IS NOT CONFIGURABLE, AND
  477.                  MUST BE AREA #1, AND MUST BE LOCAL.  PLEASE DON'T
  478.                  ECHO OUT YOUR USER WARNING/EXPIRATION MESSAGES IN
  479.                  THE NETWORK.
  480.                  ══════════════════════════════════════════════════
  481.  
  482.  
  483.               SUBSCRIP.EXE uses the Renewflag to determine if a
  484.               warning msg has already been sent.  If SUBSCRIP.EXE
  485.               writes a warning msg to a user it will set this flag
  486.               on.  If you manually change it to off, when
  487.               SUBSCRIP.EXE is run again it will write ANOTHER warning
  488.               msg to the user and again set the flag to on.
  489.  
  490.                  ══════════════════════════════════════════════════
  491.                  IT IS HIGHLY RECOMMENDED YOU SET ASIDE A FLAG
  492.                  SPECIFICALLY FOR USE AS A RENEWAL FLAG, AND DO NOT
  493.                  CHANGE IT MANUALLY.
  494.                  ══════════════════════════════════════════════════
  495.  
  496.  
  497.               The No-Kill setting is used to determine if a expired
  498.               msg has been sent in the same way the renew flag is
  499.               used.  If you turn the No-Kill flag back on after an
  500.               expired msg has been sent.  SUBSCRIP.EXE will write
  501.               another expired msg and turn the No-Kill flag back off.
  502.  
  503.               Finally, the last possible parameter is: STATS.  This
  504.               will give you a listing of all of your users and their
  505.               expiration dates.  (If no expiration date is found, the
  506.               user date will be displayed as: NEW USER -- NO
  507.               EXPIRATION DATE.)
  508.  
  509.               You can send the output of the listing to the screen,
  510.               any valid DOS printer port or valid DOS filename.  The
  511.               default is the screen.  You can get an entire listing
  512.               or you can list an single individual's record.  Here
  513.               are some examples:
  514.  
  515.                  SUBSCRIP STATS LPT1:   - Would send the entire
  516.                  user base to LPT1
  517.  
  518.                  SUBSCRIP STATS * Mark moran - Would display Mark
  519.                  Moran's record  ^ (Don't forget this space)
  520.  
  521.                  SUBSCRIP STATS USERLIST.TXT - Would send the
  522.                  entire user base to a file called USERLIST.TXT
  523.  
  524.  
  525.  
  526.  
  527.  
  528.             ════════════════════════════════════════════════════════════
  529.             QUICKBBS USER SUBSCRIPTION V0.20             PAGE - 8
  530.             ════════════════════════════════════════════════════════════
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.               SUBSCRIP STATS will list all users, including new users
  538.               who have not yet been upgraded.
  539.  
  540.               SUBSCRIP STATSSUBONLY is operationally the same as
  541.               STATS, except the output will only be of subscribing
  542.               users.
  543.             ╔═══════════════════════════════════════════════════════════╗
  544.             ║                       DISPDATE.EXE                        ║
  545.             ╚═══════════════════════════════════════════════════════════╝
  546.  
  547.               DISPDATE.EXE is a separate utility which will display
  548.               an ANS or ASC file with the user's expiration date.  It
  549.               can be run as a TYPE 7 or 15 menu option.  Or it can be
  550.               run using the ^X option in another ANS/ASC file.  (An
  551.               example of the ^X option is contained in this
  552.               distribution archive.)
  553.  
  554.               In an effort to keep this file's size to a minimum
  555.               there is very little to no error checking done by this
  556.               file.
  557.  
  558.               There are three parameters required for the operation
  559.               of DISPDATE.EXE.  The user's record number (passed by
  560.               using Quick's *R parameter.)  The path to the
  561.               USERS.BBS, and finally the path and file name of the
  562.               ASC/ANS file to be displayed.  Adding an extension to
  563.               the file name to be displayed will cause an error.  ASC
  564.               or ANS is automatically assumed.
  565.  
  566.                  ══════════════════════════════════════════════════
  567.                  YOU MUST HAVE BOTH AN ASC AND ANS VERSION OF
  568.                  EXPIRATION DATE FILE AVAILABLE.
  569.                  ══════════════════════════════════════════════════
  570.  
  571.  
  572.               To display the expiration date in this file, DISPDATE
  573.               looks for the parameter: [expdat].  This parameter is
  574.               case sensitive, and must appear as exactly shown here.
  575.               If this parameter is found anywhere in the text file,
  576.               the user's expiration date will replace it.  There is
  577.               an example of an external date display file included
  578.               with this distribution archive.
  579.  
  580.                  ══════════════════════════════════════════════════
  581.                  YOU'RE COMMENTS/SUGGESTIONS WOULD BE GREATLY
  582.                  APPRECIATED.  I AM OPEN TO SUGGESTIONS AND MORE
  583.                  THAN WILLING TO ADD FEATURES AS REQUESTED (WITHIN
  584.                  REASON OF COURSE). :*)
  585.                  ══════════════════════════════════════════════════
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.             ════════════════════════════════════════════════════════════
  595.             QUICKBBS USER SUBSCRIPTION V0.20             PAGE - 9
  596.             ════════════════════════════════════════════════════════════
  597.