home *** CD-ROM | disk | FTP | other *** search
- /*
- $VER: 5.3 ArcBrowse.rexx 15 Jul 1992 (15.7.92)
- archives user defined browselist into file in users email
- it receives its arguments from rexxDoors/Make_BrowseList.rexx
- copyright 1991-92 Richard Lee Stockton FREELY DISTRIBUTABLE
- */
-
- SIGNAL ON ERROR
- SIGNAL ON SYNTAX
- OPTIONS FAILAT 999999
-
- PARSE ARG name lastbrowse alphaflag libflag liblist
- lastbrowse=STRIP(lastbrowse)
-
- IF ~DATATYPE(lastbrowse,'N') | name='' | alphaflag='' | libflag='' | liblist='' THEN
- CALL GETOUT(20)
-
- figarg='s:CONFIG.BBS'
- IF ~EXISTS(figarg) THEN figarg='BBS:BBS_TEXT/CONFIG.BBS'
- x=OPEN(f,figarg,'R')
- IF x=0 THEN
- DO
- SAY 's:CONFIG.BBS and BBS:BBS/CONFIG.BBS are both missing!'
- CALL GETOUT(21)
- END
- lynes.=''
- DO i=1 TO 33
- lynes.i=READLN(f)
- END
- CALL CLOSE(f)
-
- compos=POS('/*',lynes.1)
- IF compos>0 THEN lynes.1=LEFT(lynes.1,compos-1)
- bbsname = STRIP(lynes.1)
-
- sysop = WORD(lynes.2,1)
-
- bbspath = WORD(lynes.6,1)
- IF ~EXISTS(bbspath) THEN
- DO
- SAY bbspath 'does not exist!'
- CALL SETCLIP('BBS_STAT')
- CALL GETOUT(22)
- END
- testchar=RIGHT(bbspath,1)
- IF testchar~='/' & testchar~=':' THEN bbspath=bbspath'/'
-
- CALL PRAGMA('P',-4) /* lower the priority of this task */
-
- extension=WORD(lynes.32,1)
- arccom=lynes.33
- compos=POS('/*',lynes.33)
- IF compos>0 THEN lynes.33=LEFT(lynes.33,compos-1)
- arccom=STRIP(lynes.33)
- IF LEFT(extension,1)~='.' THEN
- DO
- extension='.lzh'
- arccom='lharc -m m'
- END
-
- filepath=bbspath'EmailFiles/'name
- CALL MAKEDIR(filepath)
- x=OPEN(f,bbspath'Numbers/LastMail','R')
- IF x~=0 THEN lastm=READLN(f)+1
- CALL CLOSE(f)
- ADDRESS COMMAND 'ECHO >'bbspath'Numbers/LastMail 'lastm
- browsename=filepath'/BBBBS_'lastm
-
- filelistname=bbspath'Lists/Files'
- filelist.=''
- x=OPEN(f,filelistname,'R')
- IF x=0 THEN CALL GETOUT(23)
- DO i=1
- line=READLN(f)
- IF EOF(f) THEN LEAVE i
- indx=WORD(line,1)
- IF DATATYPE(indx,'N') THEN filelist.indx=line
- END
- filelist.0=indx
- CALL CLOSE(f)
- numba=filelist.0
-
- IF alphaflag='A' THEN
- DO
- filelistname=filelistname'.ALPHA'
- alphalist.=''
- x=OPEN(f,filelistname,'R')
- IF x=0 THEN CALL GETOUT(23)
- DO i=1
- line=READLN(f)
- IF EOF(f) THEN LEAVE i
- alphalist.i=line
- END
- alphalist.0=i-1
- CALL CLOSE(f)
- numba=alphalist.0
- END
-
- x=OPEN(a,browsename,'W')
- IF x=0 THEN CALL GETOUT(30)
- IF alphaflag='A' THEN temp='alphabetical'
- ELSE temp='aged'
- title='=' bbsname temp 'file descriptions'
- IF libflag='L' THEN title=title 'by library'
- CALL WRITELN(a,title)
- CALL WRITELN(a,'= Custom archived for' name' 'DATE() TIME('C'))
- CALL WRITELN(a,'')
-
- IF libflag='A' THEN CALL noteloop(1)
- ELSE IF libflag='L' THEN
- DO j=1 TO WORDS(liblist)
- test1=WORD(liblist,j)
- CALL noteloop(0)
- END
- CALL CLOSE(a)
-
- IF WORD(STATEF(browsename),2)<80 THEN CALL GETOUT(24)
- ADDRESS COMMAND arccom browsename||extension browsename
- IF ~EXISTS(browsename||extension) THEN CALL GETOUT(24)
- x=OPEN(f,bbspath'Email/'name'/BBBBS.'lastm,'W')
- IF x=0 THEN CALL GETOUT(25)
- CALL WRITELN(f,' Mail: 'lastm' FILE: BBBBS_'lastm||extension)
- CALL WRITELN(f,' From: BBBBS')
- CALL WRITELN(f,' To: 'name)
- CALL WRITELN(f,' Subj: BrowseList')
- CALL WRITELN(f,' Date: 'DATE('W') DATE() TIME('C'))
- CALL WRITELN(f,LEFT('=',75,'='))
- CALL WRITELN(f,'Here is the archived list of file descriptions you requested.')
- CALL CLOSE(f)
- IF GETCLIP('BBS_level')~='' & WORD(GETCLIP('BBS_lastcaller'),1)=name THEN
- DO
- oldmess=GETCLIP('BBS_MESSAGE')
- IF oldmess~='' THEN oldmess=oldmess||'0D0A'x
- CALL SETCLIP('BBS_MESSAGE',oldmess||'Your archived filelist is waiting in Email.')
- END
- CALL GETOUT(0)
- EXIT
-
-
- noteloop:
- ARG nflag .
- IF alphaflag='A' THEN
- DO i=1 TO numba
- k=i
- k=STRIP(WORD(alphalist.i,3))
- IF filelist.k='' | lastbrowse>=k THEN ITERATE i
- lname=WORD(filelist.k,2)
- fname=WORD(filelist.k,3)
- IF nflag THEN
- DO
- IF FIND(UPPER(liblist),UPPER(lname))=0 THEN ITERATE i
- END
- ELSE IF UPPER(test1)~=UPPER(lname) THEN ITERATE i
- CALL add_note(bbspath'FileNotes/'lname'/'fname)
- END
- ELSE
- DO i=numba TO 1 BY -1
- IF filelist.i='' | lastbrowse>=i THEN ITERATE i
- lname=WORD(filelist.i,2)
- fname=WORD(filelist.i,3)
- IF nflag THEN
- DO
- IF FIND(UPPER(liblist),UPPER(lname))=0 THEN ITERATE i
- END
- ELSE IF UPPER(test1)~=UPPER(lname) THEN ITERATE i
- CALL add_note(bbspath'FileNotes/'lname'/'fname)
- END
- RETURN
-
-
- add_note:
- ARG addname
- CALL WRITELN(a,'=====')
- x=OPEN(b,addname,'R')
- IF x=0 THEN CALL WRITELN(a,addname 'failed to open for reading!')
- ELSE
- DO
- data=READCH(b,65000)
- CALL CLOSE(b)
- CALL WRITECH(a,data)
- END
- CALL WRITELN(a,'')
- RETURN
-
-
- ERROR:
- SYNTAX:
-
- GETOUT:
- ARG errorout
- CALL SETCLIP('BBS_BROWSE')
- EXIT(errorout)
-
-
- /* end of ArcBrowse.rexx */
-