home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 5 / Amiga Tools 5.iso / internet-tools / wwwcache2.1 / rexx / convcache.rexx < prev   
Encoding:
OS/2 REXX Batch file  |  1995-12-30  |  6.4 KB  |  281 lines

  1. /*  $VER: ConvCache.rexx 1.1 (14.12.95) Stephan Lichtendahl
  2. Convert old style documents and directory tree in new style */
  3.  
  4. cachedir='AmiTCP:Cache/'
  5.  
  6. if ~show(l,'rexxsupport.library') then
  7.   if ~addlib('rexxsupport.library',0,-30,0) then
  8.     exit
  9. if ~show(l,'rexxdossupport.library') then
  10.   if ~addlib('rexxdossupport.library',0,-30,2) then
  11.     exit                                           .
  12.  
  13. zoek=0
  14. nl='0a'x
  15. cr='0d'x
  16.  
  17. call open(2input,cachedir'Cache.html','R')
  18. inhoud = readch(2input,65535)
  19. call close(2input)
  20.  
  21. say 'Updating Env(Arc):Mosaic/prefs ...'
  22. address command 'Type >>'cachedir'RemHTMLlist 'cachedir'HTMLlist'
  23. call UpdateHL
  24.  
  25. say 'Updating ImageList...'
  26. listfile=cachedir'Imagelist'
  27. dir=cachedir'Images/'
  28. call MkNewList
  29. imagelist=list
  30.  
  31. say 'Updating HTMLlist...'
  32. listfile=cachedir'HTMLlist'
  33. dir=cachedir'HTMLs/'
  34. call MkNewList
  35. htmllist=list
  36.  
  37. say 'Updating all HTML documents...'
  38. call MultiFR
  39.  
  40. q=0
  41. say 'Creating images directory tree...'
  42. list=imagelist
  43. dir=cachedir'Images/'
  44. call MoveEm
  45.  
  46. q=1
  47. say 'Creating HTMLs directory tree...'
  48. list=htmllist
  49. dir=cachedir'HTMLs/'
  50. call MoveEm
  51.  
  52. call open(2output,cachedir'Cache.html','W')
  53. call writech(2output,inhoud)
  54. call close(2output)
  55.  
  56. call delete(cachedir'NrOfImage')
  57. call delete(cachedir'Images')
  58. call delete(cachedir'HTMLs')
  59. say 'All done.'
  60. exit 0
  61.  
  62. MkNewList:
  63.   call open(1input,listfile,'R')
  64.   list = readch(1input,65535)
  65.   call close(1input)
  66.   newlist=''
  67.  
  68.   startnr=1
  69.   nr = pos(',',list)
  70.   do while nr > 0
  71.     bestand = substr(list,startnr,nr-startnr)
  72.     stopnr = pos(nl,list,nr)
  73.     urlnaam = substr(list,nr+1,stopnr-nr-1)
  74.     urlpad = substr(urlnaam,pos('://',urlnaam)+3)
  75.  
  76.     newlist=newlist||urlpad||nl
  77.     call MkLocal
  78.     zoek.zoek='/'dir||bestand
  79.     vervang.zoek='/'cachedir||urlpad
  80.     zoek=zoek+1
  81.  
  82.     startnr=stopnr+1
  83.     nr = pos(',',list,startnr)
  84.   end
  85.  
  86.   call open(1output,listfile,'W')
  87.   call writech(1output,newlist)
  88.   call close(1output)
  89. return 0
  90.  
  91. MkLocal:
  92.   zoeknr = pos(':',urlpad)
  93.   if zoeknr > 0 then
  94.     if left(urlpad,10) = 'localhost/' then
  95.       urlpad = substr(urlpad,zoeknr+1)
  96.     else do
  97.       midnr = pos('/',urlpad,zoeknr+1)
  98.       urlpad = delstr(urlpad,zoeknr,midnr-zoeknr)
  99.     end
  100.   if right(urlpad,1) = '/' then
  101.     urlpad=urlpad'.html'
  102. return 0
  103.  
  104. ChkTree:
  105.   zoeknr = pos('/',urlpad)
  106.   do while zoeknr > 0
  107.     pad = cachedir||left(urlpad,zoeknr-1)
  108.     if ~exists(pad) then
  109.       call makedir(pad)
  110.  
  111.     zoeknr = pos('/',urlpad,zoeknr+1)
  112.   end
  113. return 0
  114.  
  115. MoveEm:
  116.   startnr=1
  117.   nr = pos(',',list)
  118.   do while nr > 0
  119.     bestand = substr(list,startnr,nr-startnr)
  120.     stopnr = pos(nl,list,nr)
  121.     urlnaam = substr(list,nr+1,stopnr-nr-1)
  122.     urlpad = substr(urlnaam,pos('://',urlnaam)+3)
  123.  
  124.     call MkLocal
  125.     call ChkTree
  126.     call rename(dir||bestand,cachedir||urlpad)
  127.  
  128.     if q then do
  129.       tekst='HTMLs/'bestand
  130.       zoeknr = pos(tekst'"',inhoud)
  131.       if zoeknr > 0 then do
  132.         inhoud = delstr(inhoud,zoeknr,length(tekst))
  133.         inhoud = insert('/'cachedir||urlpad,inhoud,zoeknr-1)
  134.       end
  135.     end
  136.  
  137.     startnr=stopnr+1
  138.     nr = pos(',',list,startnr)
  139.   end
  140. return 0
  141.  
  142. MultiFR:
  143.   dir=cachedir'HTMLs/'
  144.   files = showdir(dir,'FILES',',')','
  145.   if files = ',' then
  146.     return 0
  147.  
  148.   startnr=1
  149.   stopnr = pos(',',files)
  150.   do until stopnr = 0
  151.     bestand = substr(files,startnr,stopnr-startnr)
  152.  
  153.     call open(6input,dir||bestand,'R')
  154.     inhoud = readch(6input,65535)
  155.     call close(6input)
  156.  
  157.     q=0
  158.     do i=0 for zoek
  159.       nr = pos(zoek.i,inhoud)
  160.       do while nr > 0
  161.         zklen=length(zoek.i)
  162.         tekst=substr(inhoud,nr+zklen,1)
  163.  
  164.         if tekst='#' | tekst='"' then
  165.           if pos('ACTION',upper(substr(inhoud,nr-11,10))) = 0 then do
  166.             q=1
  167.             inhoud = delstr(inhoud,nr,zklen)
  168.             inhoud = insert(vervang.i,inhoud,nr-1)
  169.             zklen=length(vervang.i)
  170.           end
  171.  
  172.         nr = pos(zoek.i,inhoud,nr+zklen)
  173.       end
  174.     end
  175.  
  176.     if q then do
  177.       call open(6output,dir||bestand,'W')
  178.       call writech(6output,inhoud)
  179.       call close(6output)
  180.       say dir||bestand 'updated.'
  181.     end
  182.  
  183.     startnr=stopnr+1
  184.     stopnr = pos(',',files,startnr)
  185.   end
  186. return 0
  187.  
  188. UpdateHL:
  189.   call open(7input,'Env:Mosaic/.mosaic-hotlist-default','R')
  190.   list = readch(7input,65535)
  191.   call close(7input)
  192.  
  193.   dir=cachedir'HTMLs/'
  194.   if open(2input,cachedir'RemHTMLlist','R') then do
  195.     htmllist = nl||readch(2input,65534)
  196.     call close(2input)
  197.  
  198.     startnr=2
  199.     nr = pos(',',htmllist)
  200.     do while nr > 0
  201.       bestand = substr(htmllist,startnr,nr-startnr)
  202.       stopnr = pos(nl,htmllist,nr)
  203.  
  204.       zoeknr = pos(dir||bestand,list)
  205.       if zoeknr > 0 then do
  206.         urlnaam = substr(htmllist,nr+1,stopnr-nr-1)
  207.  
  208.         startnr=zoeknr-17
  209.         nr = pos(nl,list,zoeknr)+2
  210.         list = delstr(list,startnr,nr-startnr)
  211.         startnr=startnr-1
  212.  
  213.         parse value date() with datum maand jaar .
  214.         dag = left(date('W'),3)
  215.         list = insert(urlnaam dag maand datum time() jaar||nl,list,startnr)
  216.       end
  217.  
  218.       startnr=stopnr+1
  219.       nr = pos(',',htmllist,startnr)
  220.     end
  221.  
  222.     call delete(cachedir'RemHTMLlist')
  223.   end
  224.  
  225.   call open(3input,cachedir'HTMLlist','R')
  226.   htmllist = nl||readch(3input,65534)
  227.   call close(3input)
  228.  
  229.   startnr=2
  230.   nr = pos(',',htmllist)
  231.   do while nr > 0
  232.     bestand = substr(htmllist,startnr,nr-startnr)
  233.     stopnr = pos(nl,htmllist,nr)
  234.  
  235.     zoeknr = pos(dir||bestand,list)
  236.     if zoeknr = 0 then do
  237.       urlnaam = substr(htmllist,nr+1,stopnr-nr-1)
  238.       urlpad = substr(urlnaam,pos('://',urlnaam)+3)
  239.       call MkLocal
  240.  
  241.       startnr = pos(urlnaam,list)
  242.       if startnr = 0 then do
  243.         startnr = pos('Default',list)+7
  244.  
  245.         tekst='/'bestand'">'
  246.         midnr = pos(tekst,inhoud)
  247.         if midnr = 0 then
  248.           titel = 'URL: http://'urlpad
  249.         else do
  250.           midnr=midnr+length(tekst)
  251.           nr = pos('<',inhoud,midnr)
  252.           titel = strip(translate((substr(inhoud,midnr,nr-midnr),,nl'"'cr))
  253.         end
  254.         list = insert('©'titel||nl,list,startnr)
  255.  
  256.        end
  257.       else do
  258.         nr = pos(nl,list,startnr)+1
  259.         list = delstr(list,startnr,nr-startnr)
  260.         startnr=startnr-1
  261.         list = insert('©',list,startnr)
  262.       end
  263.  
  264.       parse value date() with datum maand jaar .
  265.       dag = left(date('W'),3)
  266.       list = insert('file://localhost/'cachedir||urlpad dag maand datum time() jaar||nl,list,startnr)
  267.     end
  268.  
  269.     startnr=stopnr+1
  270.     nr = pos(',',htmllist,startnr)
  271.   end
  272.  
  273.   call open(7output,'Env:Mosaic/.mosaic-hotlist-default','W')
  274.   call writech(7output,list)
  275.   call close(7output)
  276.   call open(7output,'EnvArc:Mosaic/.mosaic-hotlist-default','W')
  277.   call writech(7output,list)
  278.   call close(7output)
  279. return 0
  280.  
  281.