home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Hall of Fame
/
HallofFameCDROM.cdr
/
qbbsetc
/
subscp20.lzh
/
SUBSCRIP.DOC
< prev
next >
Wrap
Text File
|
1991-03-25
|
23KB
|
597 lines
QUICKBBS USER SUBSCRIPTION PROGRAM
COPYRIGHT (C) 1991
RELEASE DATE: MARCH 21, 1991
V0.20
BY
MARK E. MORAN
The QuickBBS User Subscription Program is a utility to
be used in conjunction with QuickBBS v2.66+ by Steve
Gabrilowitz and Richard Creighton. It will allow you
to track and automatically update user's access to
QuickBBS, as is typically needed for pay or
subscription BBS's.
This utility was designed specifically for QuickBBS
v2.66+, but may work with several of the QuickBBS
'clones' currently available (with compatible USERS.BBS
and MSG*BBS files). No guarantee or support is offered
for any BBS software other than QuickBBS v2.66+
An expiration date is stored in an external file called
SUBSCRIP.DAT. (For backward compatibility this version
also uses expiration dates stored in the USERS.BBS
birthday field. Future support for this feature is not
guaranteed. In fact it is not likely. An additional
utility called STARTUP is included with this program.
It will transfer all your current expiration dates from
the USERS.BBS file into the SUBSCRIP.DAT file.)
STARTUP should also be run by the first time user who
wishes to use the external storage format. It should
only be run ONCE!
The user's expiration date can be displayed on-line
using an additional utility called DISPDATE included in
this distribution archive. This file uses the FOSSIL
to display a text file which contains the keyword
[expdate]. Wherever [expdate] is found, the user's
expiration date will be found.
══════════════════════════════════════════════════
I'VE RUN INTO SOME PROBLEMS USING THE ^X OPTION IN
ASC/ANS FILES WITH THE LATEST BETA OF 2.75 OF
QUICKBBS. STEVE G. IS AWARE OF THESE PROBLEMS AND
WILL HAVE IT FIXED BEFORE RELEASE TIME. I'M NOT
SURE IF THESE PROBLEMS EXIST IN THE GAMMA RELEASE
VERSIONS OF 2.75.
══════════════════════════════════════════════════
╔═══════════════════════════════════════════════════════════╗
║ GETTING STARTED ║
╚═══════════════════════════════════════════════════════════╝
════════════════════════════════════════════════════════════
QUICKBBS USER SUBSCRIPTION V0.20 PAGE - 2
════════════════════════════════════════════════════════════
The first item of business for setting up the
subscription program is the control file
(SUBSCRIP.CTL). There is an example of the CTL file
included with the distribution set. The keywords for
the subscription CTL file are:
Sysopname - This option is for registered users.
This is the name which will replace the
'UNREGISTERED SYSOP' in the FROM field of all
msg's generated by SUBSCRIP. It will only work
with a valid registered key.
RegKey - This field is for your registered key
to activate the Sysopname option
Warndays - This is the # of days prior to a
user's expiration you wish to send him a warning
message.
RenewFlag - This is the flag which will be set
when a user's expiration has come within the # of
warning days. (This can be used to turn on a
option for a questionnaire or door to allow the
user to renew his subscription.)
LogFile - This is the directory which you'd
like the SUBSCRIP.LOG file to be written.
QBBSBBSDir - This is the directory which you have
USERS.BBS, and MSG*.BBS located.
MaxLevl - This is the maximum security level
SUBSCRIP.EXE will check. This will allow you to
have security levels exempt from expiration. This
can be used for Sysop or co-Sysop levels.
ExtDateDir - This is the directory which will
store the file containing the user's expiration
dates. The file is called SUBSCRIP.DAT and can
not be changed.
RegUserSec - This is the security level of a
regular non-subscribing user. When a user's
expiration date arrives he is returned back to
this level.
RegAFlag - This is the 'A' flag setting for a
regular non-subscribing user. As with RegUserSec,
when a user's expiration date arrives he is
returned back to this level.
RegBFlag - This is the 'B' flag setting for a
regular non-subscribing user.
════════════════════════════════════════════════════════════
QUICKBBS USER SUBSCRIPTION V0.20 PAGE - 3
════════════════════════════════════════════════════════════
RegCFlag - This is the 'C' flag setting for a
regular non-subscribing user.
RegDFlag - This is the 'D' flag setting for a
regular non-subscribing user.
It is possible to establish up to 5 different levels of
subscribing users. These are set by the following
keywords in the CTL file. Each level has an individual
security level and flag setting for each of the 4
flags. The following keywords are used with the number
1, 2, 3, 4, or 5 replacing the '?' dependent on the
subscribing level. Eg., the keyword UpgUserSec1 is the
setting for the users security level for subscribing
level #1.
UpgUserSec? - Setting for subscribing (upgraded)
user level.
UpgAFlag? - 'A' flag setting
UpgBFlag? - 'B' flag setting
UpgCFlag? - 'C' flag setting
UpgDFlag? - 'D' flag setting
The control file must be named SUBSCRIP.CTL and found
in the same directory as SUBSCRIP.EXE. But neither
need reside in the QuickBBS directory. All keywords
must start in column 1 of the file. Any blank lines or
lines beginning with a ';' are ignored and can be used
for comments.
There are three possible choices for flag settings.
They are '-', 'X', or '?'. The '-' setting will turn
the flag bit off, the 'X' parameter will
unconditionally turn it on, and a '?' will leave the
flag bit unchanged. For example:
UpgBFlag2 --X--???
This will turn off flag bits 1,2,4,5, of the B flag
while upgrading a user to level 2. It will turn on the
3 flag bit, and leave the 6th, 7th, and 8th unchanged.
To leave a series of flag bits unchanged you would use:
RegAFlag ????????
This would make all the A flag bits unchanged when a
user was downgraded to a regular user.
════════════════════════════════════════════════════════════
QUICKBBS USER SUBSCRIPTION V0.20 PAGE - 4
════════════════════════════════════════════════════════════
The RenewFlag syntax is: FLAG then Bit number. For
example, to use the 7th bit of the B flag, RenewFlag
should look like this:
RenewFlag B7
Once you've setup the CTL file properly, and you plan
to use the external date storage format. (HIGHLY
RECOMMENDED.) You should run STARTUP in your SUBSCRIP
directory. It will create the SUBSCRIP.DAT file
containing your user's expiration dates. SUBSCRIP uses
the Alias pointer in the user's record. So STARTUP
will also create or extend your ALAIS.BBS file. This
will have no effect on your normal usage of alias's.
If you have never run SUBSCRIP before. STARTUP will
use -1 for the expiration date, to signify a 'NEW USER'
(or subscriber actually). If you have used SUBSCRIP
previously and used the BIRTHDAY field to store the
expiration dates, STARTUP will copy those dates to the
external file. It will consider any date prior to the
day you run STARTUP to be a birthday, and any day in
the future to be an expiration date.
As an added feature STARTUP will also allow you to set
a flag on any user that it determines has an expiration
date in the birthday field. This will allow you to
setup a menu option to collect birthdays for those
users where you had previously stored their expiration
date.
Other files SUBSCRIP uses are the *.MSG files. These
contain text of the canned messages sent to the user as
SUBSCRIP changes their status. The first line of each
file is the subject line for the msg. It should end
with a CR. The maximum amount of lines read in is 50.
Anything over 50 is ignored. The following is a list
of the *.MSG files and when they are used:
WARNING.MSG - This contains the text of the msg
which is sent to the user when their expiration
date is within the number specified by the
WARNDAYS in the SUBSCRIP.CTL file.
EXPIRED.MSG - This contains the text of the msg
which is sent to the user when their expiration
date is pasted.
SUBSCRB0.MSG - This contains the default text of
the upgrade msg to a user. If you upgrade a user
to a level which doesn't have a corresponding
SUBSCRB?.MSG (see the following), this text will
be used.
════════════════════════════════════════════════════════════
QUICKBBS USER SUBSCRIPTION V0.20 PAGE - 5
════════════════════════════════════════════════════════════
SUBSCRB?.MSG - This contains the text of the msg
sent to a user when he is upgraded. It is
specific to the level you upgrade him to. EG.,
SUBSCRB2.MSG contains the text for a user upgraded
to level two. If you upgrade a user to a level
which doesn't have a corresponding SUBSCRB?.MSG
file, the SUBSCRB0.MSG is used.
══════════════════════════════════════════════════
ALL SUBSCRB?.MSG FILES ARE OPTIONALLY. IF THEY
AREN'T FOUND AT START, NO MESSAGE IS SENT TO THE
UPGRADED USER.
══════════════════════════════════════════════════
╔═══════════════════════════════════════════════════════════╗
║ OPERATIONS ║
╚═══════════════════════════════════════════════════════════╝
All commands to SUBSCRIP.EXE are passed along on the
command line. There are three basic commands
available.
* - which upgrades a user to the specified
level.
UPDATE - this scans all users and checks for
expirations or the need for warning msgs, and
makes the appropriate changes to the user's
record.
STATS - this will display a list of all of your
users listing their expiration dates.
STATSSUBONLY - this is essentially the same as
STATS, except it will only display users with a
stored expiration date. (IE., it will skip new
users who have yet to subscribe, and you have
added an expiration date with the '*' command.)
The * command requires several other parameters. First
is, at which of the five available levels should the
user be processed. This is passed along immediately
after the * command, eg., *3. The next required
parameter is the user's name as it is spelled in the
user's record. Capitalization is not significant.
Finally you pass the expiration date or time. There
are 4 possible choices here. You can either add or
subtract a number of days. Eg., -45 will subtract 45
days from the user's current expiration date. While 45
or +45 will add 45 days to the user's current
expiration date. Or you can pass the actual date of
the expiration. For example, 12/25/92. Finally you
can set the user to have no expiration, NOEXP.
(Actually the Julian date of 999999 is used. Which
════════════════════════════════════════════════════════════
QUICKBBS USER SUBSCRIPTION V0.20 PAGE - 6
════════════════════════════════════════════════════════════
works out to 11/9/4337. If you're still using this
program at that time, and I'm still alive. I'll
personally come out to your location to change the
code.) Here are some examples:
SUBSCRIP *4 Richard nixon 04/05/92
This would upgrade Richard Nixon to level 4 user and
set his expiration to April 5, 1992.
SUBSCRIP *4 richard nixon -45
This would maintain Richard Nixon's record at level 4
and move his expiration date 45 days closer to today.
SUBSCRIP *5 MARK MORAN NOEXP
This would set user Mark Moran to level 5, and give him
no expiration date.
In addition to setting the user's security level and
flag settings as specified in the CTL file, the
QuickBBS NO-KILL flag is set to on, and the RenewFlag
is set to off. The NO-KILL flag setting will allow you
to maintain a user base with users having expiration
dates, years into the future, yet allow you to purge
non-subscribing users if they haven't called with 60
days.
In addition to updating the user's record SUBSCRIP will
also write the user a 'canned' msg specific to the
upgrade level, if you choose. The text for this canned
msg is found in the SUBSCRB?.MSG's. SUBSCRB0.MSG is
used if you don't have a SUBSCRBx.MSG specific for that
upgrade level. This will allow you to either use a
specific msg to each level, or using the SUBSCRB0.MSG
you can send the same msg to all upgraded users. This
is all entirely optionally. If at startup SUBSCRIP.EXE
doesn't find a SUBSCRB?.MSG it won't send a msg to that
user.
The next command is rather simple: UPDATE. This will
tell SUBSCRIP.EXE to go through each user's record and
check to see if their recorded expiration date is
within the number of 'Warndays' or check to see if
'their day has come.' Typically, you will run this
option in your nightly BAT file. It should be run
daily. Not doing so will result in unpredictable
results.
══════════════════════════════════════════════════
FOR THIS PROGRAM TO WORK PROPERLY, YOUR SYSTEM
DATE MUST BE SET PROPERLY!
══════════════════════════════════════════════════
════════════════════════════════════════════════════════════
QUICKBBS USER SUBSCRIPTION V0.20 PAGE - 7
════════════════════════════════════════════════════════════
If a user is within the 'Warndays' period, the Renewday
flag is set to on, and the WARNING.MSG text is sent to
the user in are one.
══════════════════════════════════════════════════
THE MESSAGE TO THE USER IS NOT CONFIGURABLE, AND
MUST BE AREA #1, AND MUST BE LOCAL. PLEASE DON'T
ECHO OUT YOUR USER WARNING/EXPIRATION MESSAGES IN
THE NETWORK.
══════════════════════════════════════════════════
SUBSCRIP.EXE uses the Renewflag to determine if a
warning msg has already been sent. If SUBSCRIP.EXE
writes a warning msg to a user it will set this flag
on. If you manually change it to off, when
SUBSCRIP.EXE is run again it will write ANOTHER warning
msg to the user and again set the flag to on.
══════════════════════════════════════════════════
IT IS HIGHLY RECOMMENDED YOU SET ASIDE A FLAG
SPECIFICALLY FOR USE AS A RENEWAL FLAG, AND DO NOT
CHANGE IT MANUALLY.
══════════════════════════════════════════════════
The No-Kill setting is used to determine if a expired
msg has been sent in the same way the renew flag is
used. If you turn the No-Kill flag back on after an
expired msg has been sent. SUBSCRIP.EXE will write
another expired msg and turn the No-Kill flag back off.
Finally, the last possible parameter is: STATS. This
will give you a listing of all of your users and their
expiration dates. (If no expiration date is found, the
user date will be displayed as: NEW USER -- NO
EXPIRATION DATE.)
You can send the output of the listing to the screen,
any valid DOS printer port or valid DOS filename. The
default is the screen. You can get an entire listing
or you can list an single individual's record. Here
are some examples:
SUBSCRIP STATS LPT1: - Would send the entire
user base to LPT1
SUBSCRIP STATS * Mark moran - Would display Mark
Moran's record ^ (Don't forget this space)
SUBSCRIP STATS USERLIST.TXT - Would send the
entire user base to a file called USERLIST.TXT
════════════════════════════════════════════════════════════
QUICKBBS USER SUBSCRIPTION V0.20 PAGE - 8
════════════════════════════════════════════════════════════
SUBSCRIP STATS will list all users, including new users
who have not yet been upgraded.
SUBSCRIP STATSSUBONLY is operationally the same as
STATS, except the output will only be of subscribing
users.
╔═══════════════════════════════════════════════════════════╗
║ DISPDATE.EXE ║
╚═══════════════════════════════════════════════════════════╝
DISPDATE.EXE is a separate utility which will display
an ANS or ASC file with the user's expiration date. It
can be run as a TYPE 7 or 15 menu option. Or it can be
run using the ^X option in another ANS/ASC file. (An
example of the ^X option is contained in this
distribution archive.)
In an effort to keep this file's size to a minimum
there is very little to no error checking done by this
file.
There are three parameters required for the operation
of DISPDATE.EXE. The user's record number (passed by
using Quick's *R parameter.) The path to the
USERS.BBS, and finally the path and file name of the
ASC/ANS file to be displayed. Adding an extension to
the file name to be displayed will cause an error. ASC
or ANS is automatically assumed.
══════════════════════════════════════════════════
YOU MUST HAVE BOTH AN ASC AND ANS VERSION OF
EXPIRATION DATE FILE AVAILABLE.
══════════════════════════════════════════════════
To display the expiration date in this file, DISPDATE
looks for the parameter: [expdat]. This parameter is
case sensitive, and must appear as exactly shown here.
If this parameter is found anywhere in the text file,
the user's expiration date will replace it. There is
an example of an external date display file included
with this distribution archive.
══════════════════════════════════════════════════
YOU'RE COMMENTS/SUGGESTIONS WOULD BE GREATLY
APPRECIATED. I AM OPEN TO SUGGESTIONS AND MORE
THAN WILLING TO ADD FEATURES AS REQUESTED (WITHIN
REASON OF COURSE). :*)
══════════════════════════════════════════════════
════════════════════════════════════════════════════════════
QUICKBBS USER SUBSCRIPTION V0.20 PAGE - 9
════════════════════════════════════════════════════════════