home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 13
/
AACD13.ISO
/
AACD
/
Resources
/
System
/
BoingBag1
/
Internet
/
AWeb
/
Plugins
/
HTTX
/
HTTXPluginPRT.awebrx
< prev
Wrap
Text File
|
1999-10-02
|
4KB
|
239 lines
/*
$VER: HTTXPluginPRT 3.0 (14.8.99) by Gabriele Favrin
Print current document as text using HTTX
*/
options results
options Failat 999
if ~Show('L', 'rexxsupport.library') then do
call addlib('rexxsupport.library', 0, -30, 0)
end
parse ARG mode mode_data .
parse SOURCE . . . resolved .
plugin_path=FindPath(resolved)
prefs_info=0
prefs_report=1
prefs_save_noheader=0
prefs_print_noheader=0
prefs_temppath="T:"
req_title = '"Print as text"'
temp_out = prefs_temppath"temp_HTTXP_Output.txt"
temp_name = prefs_temppath"temp_HTTXP_file"
temp_inc = prefs_temppath"temp_HTTXP_header"
del_list = '"'prefs_temppath'temp_HTTXP_#?"'
eol = '0A'x
trg = ""
force = ""
string = ""
option = ""
append = ""
converted = 0
Call ReadCfg()
if (mode == "TARGET") then do
trg="TARGET" mode_data
end
'Get URL VAR' doc_url trg
if rc ~= 0 then do
'Request 'req_title' "No document displayed, save aborted." "_Ok"'
exit 0
end
'Get TITLE VAR' doc_title trg
'Get FRAMES ALL' trg 'STEM' frms
if (frms.0 = 0) then do
Call SaveHTML()
Call Convert()
Call CleanUp()
end
else do
prefs_report=0
'Request' req_title '"Selected document contains frames." "Convert _All|_Select frame(s)|_Cancel"'
if rc == 5 then exit 0
option=result
do ct=0 for (frms.0)+1
if ct > 0 then do
doc_url=frms.ct.url
doc_title=frms.ct.name
trg="TARGET="frms.ct.id
end
if option == 1 then do
'Get FRAMESET' trg
if (result == 0) then do
if converted then do
drop append
string=eol||"----"||eol
end
Call SaveHTML()
Call Convert()
Call CleanUp()
end
end
else do
'Open "'doc_url'"'
'Wait "'doc_url'"'
'Get FRAMESET'
if (result == 0) then do
'Request' req_title '"Convert this document?" "_Yes|_No|_Cancel"'
if (rc == 5) then do
Call CleanUp()
if (ct > 0) then do
'GO' ct 'BACK'
end
exit 0
end
if result == 1 then do
trg=""
string=""
Call SaveHTML()
Call Convert()
Call CleanUp()
end
end
end
end
if option == 1 then do
Call displayOutput()
Call CleanUp()
end
else do
if (option == 2) & (ct > 0) then do
'GO' ct 'BACK'
end
Call CleanUp()
end
end
exit 0
CleanUp:
address command 'C:Delete >NIL: QUIET' del_list
return
SaveHTML:
'SaveAs "'temp_name'" NOICON' trg
if (rc ~= 0) then do
'Request 'req_title' "Error while saving HTML on temporary path*N *N'prefs_temppath'" "_Ok" NOWAIT'
exit 0
end
return
Convert:
'Get MIME VAR' mtype trg
if (Upper(mtype) == "TEXT/HTML") then do
drop force
end
else do
force=""
end
Call PrepareFile()
res=httx()
if (res == 212) then do
'Request 'req_title' "File is not HTML, print anyway?" "_Print|_Cancel"'
if (rc ~= 5) then do
address command 'C:Copy "'temp_name'" "PRT:"'
prefs_report=0
res=0
Call displayOutput()
end
end
else do
if option == "" then do
Call displayOutput()
end
end
converted=1
return
httx:
address command '"'plugin_path'HTTX" >"'temp_out'" "'temp_name'" PRINT NOHEADER GETNOTE CFG=HTTXprt.prefs INCLUDE="'temp_inc'"' force append
return rc
DisplayOutput:
if (prefs_report == 1) then do
'Open "file:///'temp_out'" RELOAD'
'Wait "file:///'temp_out'"'
end
else do
if (res ~= 0) then do
address command 'sys:rexxc/rxset HTTXPlugin_fault `fault' res'`'
err=getclip(HTTXPlugin_fault)
'Request 'req_title' "Error 'err'" "_Ok" NOWAIT'
end
end
return
PrepareFile:
if Open(fp, temp_inc, 'W') then do
if (prefs_save_noheader == 0) then do
if (prefs_info == 1) then do
'Get INFO STEM' infos trg
if (infos.0 > 0) then do
string=string||eol||"Header:"||eol
do ctx=1 for infos.0
if (infos.ctx.type ~= "CACHE") then do
string=string||infos.ctx.value||eol
if infos.ctx.type == "LINK" then string=string||eol||infos.ctx.url
end
end
end
end
string=string||eol||'URL : 'doc_url||eol'Title: 'doc_title
end
WriteCH(fp, string)
Call Close(fp)
end
return
ReadCfg:
if Open(rcfg_fp, 'ENV:HTTXPlugin.config', 'R') then do
cfg=ReadLN(rcfg_fp)
if Left(cfg, 6) == "prefs_" then do
interpret translate(strip(cfg), ';',' ')
prefs_savedir=Translate(prefs_savedir, ' ', ';')
end
Call Close(rcfg_fp)
end
FindPath:
procedure
parse ARG pathf
dir_pos=Max(lastpos('/', pathf), lastpos(':', pathf))
if dir_pos > 0 then do
return(left(pathf,dir_pos))
end
else do
return('')
end