home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Fish 2
/
goldfish_vol2_cd1.bin
/
files
/
comm
/
fido
/
spot
/
rexx
/
request
/
request.spot
< prev
Wrap
Text File
|
1994-02-05
|
6KB
|
176 lines
/*
* Request: Request Handler © 1994 PSR Software
* Automizes the sending of messages when requested.
* Freeware. May not be altered or modified without permission!
*
* $VER: Request.spot v2.1 (22.01.94)
*
*/
PREF = 'Request.prefs'
FILE = 'ENV:' || PREF
FILESAVE = 'ENVARC:' || PREF
TEMP = 'T:Spot.Request.temp'
LF = '0d'x
Address SPOT
Options Results
'IsIconified'
If RC=0 Then 'UnIconify'
POS=3
'IsAreaList'
If RC=0 Then POS=1
'IsMessageList'
If RC=0 Then POS=2
'AreaList'
If Open('Prefs',FILE,'r') Then Do
FORMAT=ReadLn('Prefs')
If ~(FORMAT='Request Handler (19.01.94)') Then Do
'RequestNotify TITLE "Sorry!" PROMPT "Prefs file is not compatible with this version."'
Exit
End
areacount=0
entrycount=0
MessageDir='S:'
ToName='Request Handler'
Do Until Eof('Prefs')
LINE=Strip(ReadLn('Prefs'),'L')
If Upper(Left(LINE,5))='AREA=' Then Do
Area.areacount=Right(LINE,Length(LINE)-5)
areacount=areacount+1
End
If Upper(Left(LINE,6))='ENTRY=' Then Do
Entry.entrycount=Right(LINE,Length(LINE)-6)
entrycount=entrycount+1
End
If Upper(Left(LINE,7))='TONAME=' Then Do
ToName=Right(LINE,Length(LINE)-7)
End
If Upper(Left(LINE,7))='ORIGIN=' Then Do
Origin=Right(LINE,Length(LINE)-7)
End
If Upper(Left(LINE,9))='FROMNAME=' Then Do
FromName=Right(LINE,Length(LINE)-9)
End
End
Call Close('Prefs')
End
Else Exit
If areacount=0 Then Do
'RequestNotify TITLE "Problem" PROMPT "No areas specified."
Exit
End
If entrycount=0 Then Do
'RequestNotify TITLE "Problem" PROMPT "No entried specified."
Exit
End
'ProgressOpen TITLE "Request Handler" PROMPT "Searching areas..."'
REQ=RESULT
Do arealoop=0 To areacount-1
'ProgressUpdate' REQ arealoop+1 areacount
'MessageList'
'GotoArea "'Area.arealoop'"'
If RC=0 Then Do
'IncludeFlag UNREAD'
'GetNumSelected'
If RESULT>0 Then Do
'FirstMessage UNREAD'
'Messages'
NM=0
Do Until NM>0
'GetTo'
If Upper(RESULT)=Upper(ToName) Then Do
'GetFrom'
From=RESULT
'GetFromAddress'
FromAddress=RESULT
'GetSubject'
Subject=RESULT
UnRead=0
If Pos('UNREAD',Upper(Subject))>0 Then UnRead=1
Address Command 'Delete >NIL: "'TEMP'"'
'SaveAscii TO "'TEMP'" OVERWRITE NOHEADER NOTEARLINE NOORIGIN NOKLUDGES NOREFLOW'
If Open('Mes',TEMP,'r') Then Do Until (Eof('Mes') | Left(LINE,3)='---')
LINE=Strip(ReadLn('Mes'),'L')
Do entryloop=0 To entrycount-1
Do c=1 to 4
p.c=0
WORD.c=''
End
p.1=Pos(',',Entry.entryloop)
If p.1=0 Then p.1=Length(Entry.entryloop)+1
Else Do
p.2=Pos(',',Entry.entryloop,p.1+1)
If p.2=0 Then p.2=Length(Entry.entryloop)+1
Else Do
p.3=Pos(',',Entry.entryloop,p.2+1)
If p.3=0 Then p.3=Length(Entry.entryloop)+1
Else Do
p.4=Pos(',',Entry.entryloop,p.3+1)
If p.4=0 Then p.4=Length(Entry.entryloop)+1
End
End
End
WORD.1=Upper(Left(Entry.entryloop,p.1-1))
If p.2>0 Then Do
WORDtemp.2=Left(Entry.entryloop,p.2-1)
WORD.2=Right(WORDtemp.2,Length(WORDtemp.2)-p.1)
If p.3>0 Then Do
WORDtemp.3=Left(Entry.entryloop,p.3-1)
WORD.3=Right(WORDtemp.3,Length(WORDtemp.3)-p.2)
If p.4>0 Then Do
WORDtemp.4=Left(Entry.entryloop,p.4-1)
WORD.4=Right(WORDtemp.4,Length(WORDtemp.4)-p.3)
End
End
End
If Upper(WORD.1)='TEXT' Then Do
NAME=Upper(WORD.2)
FILENAME=WORD.3
SUBJECT=WORD.4
If Upper(LINE)=NAME Then Do
If ~UnRead Then 'MarkMessage CLEAR'
'Write TO "'From'" TOADDR "'FromAddress'" FROM "'FromName'" SUBJECT "'SUBJECT'" ORIGIN "'ORIGIN'" FILE "'FILENAME'" NOSIG NOEDIT NOGUI'
End
End
Else If Upper(WORD.1)='DOS' Then Do
NAME=Upper(WORD.2)
FILENAME=WORD.3
If Upper(LINE)=NAME Then Do
Address Command '"'FILENAME'"'
End
End
Else If Upper(WORD.1)='AREXX' Then Do
NAME=Upper(WORD.2)
FILENAME=WORD.3
PARAMS=WORD.4
If Upper(LINE)=NAME Then Do
/* unsupported */
End
End
End
End
Else Do
Say "Couldn't open temp file (program still running)."
End
Call Close('Mes')
End
'NextMarked'
NM=RC
End
'MessageList'
'SetFlags UNREAD'
End
End
End
'ProgressClose' REQ
If POS=1 Then 'AreaList'
If POS=2 Then 'MessageList'
If POS=3 Then 'Messages'