Go to the first, previous, next, last section, table of contents.


ScriptServer/CfgType


***********************************************************************

950423 - Tech dokumentation for ScriptServ and CfgType

***********************************************************************
ScriptServ.doc

ScriptServ is used by the comm program script to obtain data from the
bbsread.library. The data obtained are the data about the events and the
setup for the bbs.

ScriptServ has the following parameters:

BBSNAME - Name of bbs to serve. 

EVENT/N/K/M - The events the script can perform. Only events of the types
given is written to the events datafile called "T:bbsname.EVENT".

DONE/K - Number of event to mark as done.

ERROR/K - Number of event to mark with an error.

WRITECFG/S - Will write a file with configuration for the bbs. The file is
called "T:bbsname.CONFIG"

PACKAGEDONE/S - Mark all packed events as done. This should be used after a
package of events has successfulle been transfered. Example a QWK package.

RENAMEGRAB/S - Check for grabs to rename. Will give the grab a number so it
will be parsed in the correct order if there are more than one.

PRIVUPLOADFILE/K - Check if a comm program login capture from a ABBS/MBBS
BBS contain messages about private files.

UPDATEFILENOTES/K - Set the filenote of downloaded files to the short
description of the file. The description most have been catured from a
ABBS/MBBS BBS.

*********** Format of configuration file:

VERSION                 3
BBSID                   <- ID of bbs.
BBSTYPE                 <- Type of bbs.
BBSDIR                  <- Directory where the files for this bbs is.
POSTCONF                <- (Assumed) name of conference for private mail.
UPLOADDIR               <- Uploaddirectory.
USERNAME                <- Username configured for this bbs.
USERSTREET              <- Userstreet configured for this bbs.
USERADDRESS             <- Useraddress configured for this bbs.
USERCOUNTRY             <- Usercountry configured for this bbs.
USERPHONE               <- User phone number configured for this bbs.
NEWFILES                (y/n)
AUTOPRIVDNL             (y/n)
AUTOLOGOFF              (y/n)
USECOLORS               (y/n)
ANSIMENUES              (y/n)
BULLETINS               (y/n)

********** Format of event data file:

EVENTNR                 <- Use when marking done/error
EVENT                   <- ID number for event
<List of tags in same order and number as in type config. One on each line.>
EVENTNR
EVENT
...........
...........
and so on.

********** Event ID numbers:

EVE_ENTERMSG        0  - Enter message
EVE_REPLYMSG        1  - Reply message
EVE_JOINCONF        2  - Join conference
EVE_RESIGNCONF      3  - Resign conference
EVE_DOWNLOAD        4  - Download file
EVE_UPLOAD          5  - Upload file
EVE_CONFLIST        6  - Get conflist
EVE_CONFIGUREBBS    7  - Set correct configuration on the bbs.
EVE_SENDUSERINFO    8  - Send userinfo
EVE_FORWARDMSG      9  - Forward a specific message to another user
EVE_GETNEWFILES    10  - Get new files listing
EVE_DOCOMMAND      11  - Command the script should do
EVE_AUTOLOGOFF     12  - Autologoff on next session
EVE_RETRACTMSG     13  - Retract message from bbs
EVE_RETRACTFILE    14  - Retract file from bbs

*********** Event tags id numbers:

EV_ToName              0
EV_ToAddr              1
EV_Subject             2
EV_Conference          3
EV_RefNr               4
EV_RefOrginalNr        5
EV_RefId               6
EV_MsgFile             7
EV_Private             8
EV_LocalFile           9
EV_Directory          10
EV_FileName           11
EV_DownloadNotify     12
EV_FileDescr          13
EV_DetailedFileDescr  14
EV_FromMessageNr      15
EV_ToMessageNr        16
EV_CommandString      17
EV_Boolean            18
EV_Date               19
EV_PGPSignID          20
EV_PGPEncryptID       21
EV_RefConference      22
EV_Urgent             23
EV_Important          24
EV_Confidential       25
EV_ReturnReceipt      26
EV_Encode8bit         27

The different event tags are described in BBSReadRexx.doc/WRITEBREVENT.

-------------------------------------------------------------------------
******** Example NComm script:
; $VER: example.script 3.1 (23.04.95)

	REQUEST OFF

	set $done = "FALSE"

;	Get configuration and events for the bbs. $BBSName is defined in the 
;	startup script.
	cli $THORPath"bin/ScriptServ \""$BBSName"\" WRITECFG EV 0 EV 1 EV 2 EV 3"

;	Open configfile and read the configuration
	varfile "t:"$BBSName".CONFIG"

	readvar $CfgVer
	readvar $BBSID
	readvar $BBSType
	readvar $Path
	readvar $PostConf
	readvar $UpLoadDir
	readvar $UserName
	readvar $UserStreet
	readvar $UserAddress
	readvar $UserCountry
	readvar $UserPhone
	readvar $NewFiles
	readvar $AutoPDnl
	readvar $AutoLogoff
	readvar $UseColors
	readvar $AnsiMenues
	readvar $Bulletins
	varfile close

;	Check for correct version
	if !$CfgVer == "3" then message "Incompatible version of ScriptServ"
	if !$CfgVer == "3" then goto AllDone

	cli "delete >nil: \"t:"$BBSName".CONFIG\""

	[...] ; Logon handling here.

;***************** Event loop
	

;	There will be no eventfile if there are no events.
	if !exists "t:"$BBSName".EVENTS" then goto afterEvents
	varfile "t:"$BBSName".EVENTS"

eventLoop:
	set $done = "FALSE"

	readvar $eventnr
	readvar $event

;	Loop until the end of the file is reached.
	if $eventnr == "EOF" then goto evLoopEnd
	if $event   == "EOF" then goto evLoopEnd

	if $event == "0"  then gosub EnterMsg
	if $event == "1"  then gosub ReplyMsg
	if $event == "2"  then gosub JoinConf
	if $event == "3"  then gosub ResignConf

	if  $done == "TRUE" then cli "run >nil: "$THORPath"bin/ScriptServ \""$BBSName"\" DONE "$eventnr
	if !$done == "TRUE" then cli "run >nil: "$THORPath"bin/ScriptServ \""$BBSName"\" ERROR "$eventnr

	goto eventLoop	

evLoopEnd:
	varfile close

afterEvents:

	[.....] ; Rest of script and subroutines follow.

	end

;*******
EnterMsg:
	; Read event tags for enter message event.
	readvar	$conf
	readvar	$sendto
	readvar	$msgfile
	readvar	$subject
	readvar	$private
	if $private == "" then set $private = "0"
	if !$private == "0" then set $private = "y"
	if $private == "0" then set $private = "n"

	[....] ; Perform enter message event.

	set $done = "TRUE"
	return

; For more examples check out AMBBS.NComm.script

-------------------------------------------------------------------------
*************************************************************************
CfgType.doc

CfgType is used to make the configuration for a BBStype. It has the
following parameters:
TYPENAME              - Name of type to configure.
NEWTYPENAME/K         - New name of type is the type should be renamed. Only 
                        unused types can be renamed.
MSGPARSER=MP/K        - Command to parse and add the messages recieved to the 
                        database.
LINELEN=LL/K/N        - Max length of message lines the BBSType allows.
SUBJECTLEN=SL/K/N     - Max length of subject the BBSType allows.
FILEDESCRLEN=FL/K/N   - Max length of filedescrition.
CHARSET/K             - Which charset the bbs uses: Available charsets are 
                        ISO/IBN.
AVAILSCRFLAGS=ASF/K   - Which scriptflags are available for this BBSType.
                        Hex-number with the flags or'ed.
FILENAMELEN=NL/K/N    - Max length of filenames on this BBSType.
EVENTPACKER=EP/K      - Command to pack events into a package to transfer.
NOEVENTPACKER=NEP/S   - This BBSType has no eventpacker.
EVENTARCHIVER=EA/K    - Name of archivertype to use for achiving the
                        eventpackage. The archiver must have been configured 
                        in the global configuration.
NOEVENTARCHIVER=NEA/S - This BBSType should use no archiver for the packed
                        events.
CONFIGEVENT=CFGE/M/K  - Config tags for the events. See below for docs.
DELETETYPE/S          - Delete configuration for this type.
DELETEEVENT/K/N       - Delete tag configuration for a event.
SETTYPEFLAGS=STF/K    - Set type flags for this bbstype.
CLEARTYPEFLAGS=CTF/K  - Clear type flags.
ACCEPTPATTERN=AP/K    - Pattern to match grabs with. Default is #?.
INITMSGFILE/K         - Command to initialize message files.
EXTCONFIG/K           - Command for extrernal bbs configuration.
QUOTETYPE             - Default quote type for this bbs.

A eventdescr consist of: eventnr:needtag,needtag,...:opttag,opttag,...
Examples:
cfgtype MBBS ConfigEvent 0:0,1,2,4:5 ConfigEvent 1:1,2,3,4:5
  Configures 2 evenets for the bbstype called MBBS. These are:
  - EVE_ENTERMSG (0) which needs the following tags: 
      ET_SendTo (0), ET_Conference (1), ET_MsgFile (2), ET_Subject (4)
      Optional tags are: ET_Private (5)
  - EVE_REPLYMSG (1) which needs the following tags:
      ET_SendTo (0), ET_Conference (1), ET_MsgFile (2), ET_ReplyTo (3)
      ET_Subject (4)
      Optional tags are: ET_Private (5)

The definitions of each tag see ScriptServ.doc

For examples of the use of CfgType see Thor:s/cfg#? files.

If you have any questions concerning ScriptServ or bbs type configuration,
feel free to send an email.


Go to the first, previous, next, last section, table of contents.