home *** CD-ROM | disk | FTP | other *** search
- /*
- $VER: AWebNews.cnfg 1.7
- 22 Dec 1996
- */
-
- /* Play with this script you could regret it !
-
- ... rename and wildcard delete happen
- ... external comands are enabled
-
- See comments at start of news.awebrx for usage.
- */
-
- /*Show calling parameters at top of page use 'on' or 'off'*/
- showcomand='off'
-
-
-
- options results
- term='.'||'0d'x
- newsgroupsfile="newsgroups"
-
- ports = show('P')
- parse var ports dummy 'AWEB.' portnr .
- address value 'AWEB.' || portnr
-
- 'GET ACTIVEPORT'
-
- awebhost = result
-
- if ~show('L','rexxsupport.library') then
- if ~addlib('rexxsupport.library',0,-30,0) then
- exit(20)
-
- parse arg addr
- parse source prog_type result_flag called resolved ext host .
-
- last_slash = lastpos('/',called)
- last_colon = lastpos(':',called)
- dir_pos = max(last_slash,last_colon)
- if dir_pos > 0 then
- current_dir = left(called,dir_pos)
- else
- current_dir = ''
-
-
- address value awebhost
- call readinfo
- if ft='config' then call writeconfig
- if ft='del' then call deletegroups
- call configinfo
-
- if many=''then many='10'
- if bacc=''then bacc='#ffffff'
- if texc=''then texc='#000000'
- if spath='' then spath='t:'
- if bfile='' then bfile='t:AWebNews.batch'
- address command 'delete T:configawebnews.#?.html >NIL:'
- fname='T:configawebnews.'time(S)'.html'
-
- if open(1,fname,w) then do
-
- call writeln(1,'<html><head><title>')
- call writeln(1,'News Reader Utilities')
- call writeln(1,'</title></head>')
- if colo='on' then call writeln(1,'<body bgcolor="'bacc'" text="'texc'">')
- if showcomand='on' then call writeln(1,addr '<br>')
-
- call writeln(1,'<form action="x-aweb:rexx/'||called||'">')
- call writeln(1,'<a name = "config"></a>')
- call writeln(1,'<center><hr>')
- call writeln(1,' <input type="submit" value="Store Configuration"> - ')
- call writeln(1,'<a href="x-aweb:rexx/'current_dir'news.awebrx">Read News </a>')
- call writeln(1,' - <a href="#dpage">Maintain News Groups</a> - ')
- call writeln(1,'<a href="file://localhost/'current_dir'AWebNews_doc.html#cfg">Help</a><br>')
- call writeln(1,'<table>')
- call writeln(1,'<tr><td><td align=center><b>Reader Configuration </b> - ')
- call writeln(1,'<a href="file://localhost/'current_dir'AWebNews_doc.html#cfg">Help</a>')
- call writeln(1,'<tr><td align=center><b>Required</b> ')
- call writeln(1,'<tr><td>News Host<td><input size=54 name="host" value="'NewsHost'">')
- call writeln(1,'<tr><td align=center><b>Optional</b>')
-
- call writeln(1,'<tr><td>Get How Many ?<td><input size=3 name="many" value="'many'"> ')
- call writeln(1,'( for retrieving several files at a time )')
-
- if scan = 'on' then call writeln(1,'<tr><td>Display <td>Index List <input type="checkbox" checked name="scan"> ')
- else call writeln(1,'<tr><td>Display<td> Index List<input type="checkbox" name="scan">')
-
- if sho = 'on' then call writeln(1,'Short Headers <input type="checkbox" checked name="sho"> ')
- else call writeln(1,'Short Headers <input type="checkbox" name="sho"> ')
- if lho = 'on' then call writeln(1,'Long Headers <input type="checkbox" checked name="lho"> ')
- else call writeln(1,'Long Headers <input type="checkbox" name="lho"> ')
-
- call writeln(1,'<tr><td>Filter')
- call writeln(1,'<td><input size=30 name="phil" value="'fixta(phil)'">')
- if fcase = 'on' then call writeln(1,' Ignore case <input type="checkbox" checked name="fcase"> ')
- else call writeln(1,' Ignore case <input type="checkbox" name="fcase"> ')
- if philo = 'on' then call writeln(1,' Use Filter <input type="checkbox" checked name="philo"> ')
- else call writeln(1,' Use Filter <input type="checkbox" name="philo"> ')
-
- call writeln(1,'<tr><td>Colors ')
- call writeln(1,'<td>Background <input size=7 name="bacc" value='bacc'>')
- call writeln(1,'Text <input size=7 name="texc" value='texc'> Use colors')
- if colo='on' then call writeln(1,'<input type="checkbox" checked name="colo"> ')
- else call writeln(1,'<input type="checkbox" name="colo"> ')
-
-
- call writeln(1,'<tr><td>Save Path <td><input size=54 name="spath" value="'spath'">')
- call writeln(1,'<tr><td>Batch File <td><input size=54 name="bfile" value="'bfile'">')
- call writeln(1,'<tr><td><td><hr>')
- call writeln(1,'<tr><td><a name = "postconfig"></a>')
- call writeln(1,'<td align=center><b>Posting Configuration</b> - ')
- call writeln(1,'<a href="file://localhost/'current_dir'AWebNews_doc.html#post_cfg">Help</a>')
- call writeln(1,'<tr><td align=center><b>Required</b>')
- call writeln(1,'<tr><td>From:<td><input size=54 name="eadr" value="'eadr'">')
- if tah='' then tah=15
- if taw='' then taw=75
- call writeln(1,'<tr><td>Text Area <td><input size=3 name="taw" value="'taw'"> ')
- call writeln(1,' wide <input size=3 name="tah" value="'tah'"> high ')
- call writeln(1,'<tr><td align=center><b>Optional</b>')
- call writeln(1,'<tr><td>Distribution: <td><input size=54 name="disth" value="'disth'">')
- if disto='on' then call writeln(1,' <td>use <input type="checkbox" checked name="disto"> ')
- else call writeln(1,'<td>use <input type="checkbox" name="disto">')
- call writeln(1,'<tr><td>Reply-To:<td><input size=54 name="reph" value="'reph'">')
- if repo='on' then call writeln(1,'<td>use <input type="checkbox" checked name="repo"> ')
- else call writeln(1,'<td>use <input type="checkbox" name="repo">')
-
- call writeln(1,'<tr><td>Signature file<td><input size=54 name="sigf" value="'sigf'">')
- if sigo='on' then call writeln(1,'<td>use <input type="checkbox" checked name="sigo"> ')
- else call writeln(1,' <td>use <input type="checkbox" name="sigo"> ')
-
- call writeln(1,'<tr><td>Headers file<td><input size=54 name="headf" value="'headf'">')
- if heado='on' then call writeln(1,'<td>use <input type="checkbox" checked name="heado"> ')
- else call writeln(1,'<td>use <input type="checkbox" name="heado"> ')
-
- call writeln(1,'<tr><td>Follow ups ')
-
- if qhead='on' then call writeln(1,'<td> Quote Header <input type="checkbox" checked name="qhead"> ')
- else call writeln(1,'<td>Quote header <input type="checkbox" name="qhead">')
-
- if qbody='on' then call writeln(1,' Quote Body <input type="checkbox" checked name="qbody"> ')
- else call writeln(1,' Quote Body <input type="checkbox" name="qbody">')
- call writeln(1,'</table>')
-
- call writeln(1,' <input type="submit" value="Store Configuration">')
- call writeln(1,'<input type="hidden" value="config" name="ft"> ')
-
- call writeln(1,'</form>')
-
- call writeln(1,'<form action="x-aweb:rexx/'||called||'">')
- call writeln(1,'<a name="dpage"></a>')
- call writeln(1,'<hr><center><b>Maintain Group List</b>')
- call writeln(1,'<a href="file://localhost/'current_dir'AWebNews_doc.html#form_delete_ng">Help</a><br>')
- call writeln(1,'<br>Select News Groups to REMOVE from list')
- call writeln(1,'<br><select multiple name="grouplist" size="5">')
-
- if open(7,current_dir||newsgroupsfile,r) then do
-
- groupinfo='.'
- do while groupinfo~=""
- groupinfo = readln(7)
- parse var groupinfo grp list
- if grp~="" then call writeln(1,'<option> 'grp)
-
- end
- call close(7)
- end
- call writeln(1,'</select><br>')
- call writeln(1,'<b>CAUTION </b><input type="submit" value="DELETE news groups"> can not be undone!<br>')
- call writeln(1,'<a href="#config">Configuration</a>')
- call writeln(1,' - <a href="x-aweb:rexx/'current_dir'news.awebrx">Read News </a>')
- call writeln(1,'<input type="hidden" value="del" name="ft"> ')
- call writeln(1,'</form>')
- call writeln(1, '<hr></body></html>')
- call close(1)
-
- end
- 'OPEN file://localhost/'fname'#config'
- 'ALLOWCMD'
- 'SCREENTOFRONT'
- 'ACTIVATEWINDOW'
- exit
-
- configinfo:
- if open(2,current_dir||'newsconfig',r) then do
- configinfo = fixhtml(readch(2,3000))
-
- parse var configinfo . 'qhead ' qhead '0a'x
- parse var configinfo . 'qbody ' qbody '0a'x
- parse var configinfo . 'colo ' colo '0a'x
- parse var configinfo . 'texc ' texc '0a'x
- parse var configinfo . 'bacc ' bacc '0a'x
- parse var configinfo . 'repo ' repo '0a'x
- parse var configinfo . 'reph ' reph '0a'x
- parse var configinfo . 'eadr ' eadr '0a'x
- parse var configinfo . 'disto ' disto '0a'x
- parse var configinfo . 'disth ' disth '0a'x
- parse var configinfo . 'sigo ' sigo '0a'x
- parse var configinfo . 'sigf ' sigf '0a'x
- parse var configinfo . 'heado ' heado '0a'x
- parse var configinfo . 'headf ' headf '0a'x
- parse var configinfo . 'bfile ' bfile '0a'x
- parse var configinfo . 'host ' NewsHost '0a'x
- parse var configinfo . 'many ' many '0a'x
- parse var configinfo . 'sho ' sho '0a'x
- parse var configinfo . 'lho ' lho '0a'x
- parse var configinfo . 'spath ' spath '0a'x
- parse var configinfo . 'tah ' tah '0a'x
- parse var configinfo . 'taw ' taw '0a'x
- parse var configinfo . 'scan ' scan '0a'x
- parse var configinfo . 'phil ' phil '0a'x
- parse var configinfo . 'philo ' philo '0a'x
- parse var configinfo . 'fcase ' fcase '0a'x
- call close(2)
- end
- return
-
- readinfo:
- phil=fixphil(addr);
- parse var addr . 'colo="' colo '"' .
- parse var addr . 'bacc="' bacc '"' .
- parse var addr . 'texc="' texc '"' .
- parse var addr . 'tah="' tah '"' .
- parse var addr . 'taw="' taw '"' .
- parse var addr . 'qbody="' qbody '"' .
- parse var addr . 'qhead="' qhead '"' .
- parse var addr . 'eadr="' eadr '"' .
- parse var addr . 'disto="' disto '"' .
- parse var addr . 'disth="' disth '"' .
- parse var addr . 'sigo="' sigo '"' .
- parse var addr . 'spath="' spath '"' .
- parse var addr . 'sigf="' sigf '"' .
- parse var addr . 'heado="' heado '"' .
- parse var addr . 'headf="' headf '"' .
- parse var addr . 'repo="' repo '"' .
- parse var addr . 'reph="' reph '"' .
- parse var addr . 'bfile="' bfile '"' .
- parse var addr . 'host="' NewsHost '"' .
- parse var addr . 'ft="' ft '"' .
- parse var addr . 'many="' many '"' .
- parse var addr . 'sho="' sho '"' .
- parse var addr . 'lho="' lho '"' .
- parse var addr . 'scan="' scan '"' .
- parse var addr . 'fcase="' fcase '"' .
- parse var addr . 'philo="' philo '"' .
- return
-
- writeconfig:
- if exists(current_dir||'newsconfig') then call delete(current_dir||'newsconfig')
- if open(2,current_dir||'newsconfig',w) then do
- call writeln(2,'host 'NewsHost)
- call writeln(2,'bfile 'bfile)
- call writeln(2,'many 'many)
- call writeln(2,'spath 'spath)
- call writeln(2,'sho 'sho)
- call writeln(2,'lho 'lho)
- call writeln(2,'tah 'tah)
- call writeln(2,'taw 'taw)
- call writeln(2,'scan 'scan)
- call writeln(2,'eadr 'eadr)
- call writeln(2,'sigo 'sigo)
- call writeln(2,'sigf 'sigf)
- call writeln(2,'heado 'heado)
- call writeln(2,'headf 'headf)
- call writeln(2,'disto 'disto)
- call writeln(2,'disth 'disth)
- call writeln(2,'repo 'repo)
- call writeln(2,'reph 'reph)
- call writeln(2,'qbody 'qbody)
- call writeln(2,'qhead 'qhead)
- call writeln(2,'bacc 'bacc)
- call writeln(2,'texc 'texc)
- call writeln(2,'colo 'colo)
- call writeln(2,'fcase 'fcase)
- call writeln(2,'phil 'phil)
- call writeln(2,'philo 'philo)
- call close(2)
- end
- return
-
- deletegroups:
- if open(6,current_dir||newsgroupsfile'.new',w) then do
- if open(7,current_dir||newsgroupsfile,r) then do
- do until groupinfo = ''
- groupinfo = readln(7)
- parse var groupinfo grp .
-
- listwork=addr
- dflag=''
- do until nextgrp=''
- parse var listwork . 'grouplist="' nextgrp '"' listwork
- if nextgrp=grp then dflag='on'
- end
- if dflag~='on'&groupinfo~='' then call writeln(6,groupinfo)
- end
- call close(7)
- end
-
- call close(6)
- if exists(current_dir||newsgroupsfile) then call delete(current_dir||newsgroupsfile)
- call rename(current_dir||newsgroupsfile'.new', current_dir||newsgroupsfile)
- end
-
-
- return
-
- fixhtml: procedure
- parse arg a
- a=a'-'
- c=''
- parse var a b '&' a
- do while a~=''
- c=c||b'&'
- parse var a b '&' a
- end
- a=c||b
-
- c=''
- parse var a b '<' a
- do while a~=''
- c=c||b'<'
- parse var a b '<' a
- end
- a=c||b
- c=''
-
- parse var a b '>' a
- do while a~=''
- c=c||b'>'
- parse var a b '>' a
- end
- a=c||b
- return left(a,length(a)-1)
-
- fixta: procedure
- parse arg a
- a=fixhtml(a)
- a=a'-'
- c=''
- parse var a b '"' a
- do while a~=''
- c=c||b'"'
- parse var a b '&' a
- end
- a=c||b
- return left(a,length(a)-1)
-
- fixphil: procedure
- parse arg a
- c=''
- parse var a b '*"' a
- do while a~=''
- c=c||b'*q'
- parse var a b '*"' a
- end
- a=c||b
- parse var a . 'phil="' a '"' .
- c=''
- parse var a b '*' a
- do while a~=''
- d=left(a,1)
- if d='N' then c=c||b||'0a'x
- else if d='q' then c=c||b||'"'
- else if d='"'|d='*'|d="'"|d='$'then c=c||b||d
- else do
- c=c||b||'*'
- a=d||a
- end
- parse VALUE (substr(a,2)) WITH b '*' a
- end
- return c||b
-
-