home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #6 / amigamamagazinepolishissue1998.iso / opus / v5 / web_update / webupdate.lha / WebUpdate.dopus5 next >
Text File  |  1997-08-17  |  4KB  |  145 lines

  1. /* $VER: WebUpdate.dopus5 1.15 (17 AUG 97)
  2. ** by Charles Patterson <midian@azstarnet.com>
  3. ** http://www.azstarnet.com/~midian/
  4. **
  5. ** Description: Connects to FTP site, compares web page file dates then
  6. **              uploads updated files.
  7. **
  8. ** Requirements: DirectoryOpus v5.5 (© 1996 by Jonathan Potter)
  9. **               Online with a TCP stack (no kidding :)
  10. **               rexxreqtools.library 1.3 (© 1992-94 Rafael D'Halleweyn)
  11. **
  12. ** Instructions: Copy script to DOPUS5:Arexx then run
  13. **               webupdate.dopus5 anyway you want to. :)
  14. */
  15. OPTIONS RESULTS
  16.  
  17. PARSE ARG prefs
  18.  
  19. IF ~OPEN('env','ENV:WebUpdate.prefs',R) | prefs = '?' THEN DO
  20.     IF OPEN('env','ENV:WebUpdate.prefs',R) THEN DO
  21.         DO z = 1 to 5
  22.             defstring.z = READLN('env')
  23.         END
  24.         CLOSE('env')
  25.     END
  26.     ELSE DO
  27.         defstring.1='ftp.somewhere.com'
  28.         defstring.2='username'
  29.         defstring.4='/users/home/username/'
  30.         defstring.5='DH2:Homepage'
  31.     END
  32.     env.1 = RTGETSTRING(defstring.1,'Enter your internet host')
  33.     IF ~rtresult THEN EXIT
  34.     env.2 = RTGETSTRING(defstring.2,'Enter your user name')
  35.     IF ~rtresult THEN EXIT
  36.     env.3 = RTGETSTRING(,'Enter your password',,,"rtgs_invisible=TRUE")
  37.     IF ~rtresult THEN EXIT
  38.     env.4 = RTGETSTRING(defstring.4,'Enter the remote path')
  39.     IF ~rtresult THEN EXIT
  40.     env.5 = RTGETSTRING(defstring.5,'Enter the local path')
  41.     IF ~rtresult THEN EXIT
  42.     OPEN('env','ENVARC:WebUpdate.prefs',W)
  43.     DO n = 1 to 5
  44.         WRITELN('env',env.n)
  45.     END
  46.     CLOSE('env')
  47.     ADDRESS COMMAND 'COPY ENVARC:WebUpdate.prefs ENV:WebUpdate.prefs'
  48.     EXIT
  49. END
  50.  
  51. OPEN('env','ENV:WebUpdate.prefs',R)
  52. DO n = 1 to 5
  53.     env.n = READLN('env')
  54. END
  55. CLOSE('env')
  56.  
  57. LISTER.1.0=env.4
  58. LISTER.0.0=env.5
  59.  
  60. IF ~SHOW('P',DOPUS.1) THEN ADDRESS COMMAND RUN DOPUS5:DirectoryOpus
  61.  
  62. ADDRESS DOPUS.1
  63. DOPUS FRONT
  64.  
  65. DOPUS VERSION
  66. IF ( result='RESULT' | TRANSLATE(result,'.',' ') < 5.1218 ) THEN DO
  67.     DOPUS REQUEST '"This script requires DOpus v5.5 or greater." OK'
  68.     EXIT
  69. END
  70.  
  71. DOPUS SCREEN
  72. screen=RESULT
  73. PARSE VAR screen sinfo.0 screen
  74. PARSE VAR screen sinfo.1 screen
  75. IF sinfo.1 > 600 THEN DO
  76.     LISTER NEW "0/11/262/351" LISTER.0.0
  77. END
  78. ELSE DO
  79.     LISTER NEW "0/11/150/200" LISTER.0.0
  80. END
  81. LISTER.0.1=RESULT
  82.  
  83. /* Connect here */
  84. COMMAND WAIT FTPCONNECT env.1 env.2 env.3 DIR LISTER.1.0
  85. LISTER REQUEST LISTER.0.1 '"When Remote directory '||'0a'x||'is listed click" OK'
  86.  
  87. LISTER QUERY ALL
  88. lists=RESULT
  89. k=0
  90. DO WHILE lists ~= ''
  91.     PARSE VAR lists list.k lists
  92. END
  93. LISTER.1.1=list.k
  94.  
  95. DO n = 0 TO 1
  96.     LISTER SET LISTER.n.1 TITLE 'Listing Files'
  97.     LISTER REFRESH LISTER.n.1 FULL
  98.     LISTER SET LISTER.n.1 BUSY 1 WAIT
  99.     LISTER QUERY LISTER.n.1 FILES stem file.n
  100.     LISTER QUERY LISTER.n.1 NUMFILES
  101.     NFiles.n = RESULT
  102.     DO f = 0 TO NFiles.n
  103.         LISTER QUERY LISTER.n.1 ENTRY file.n.f stem fileinfo.n.f
  104.     END
  105. END
  106.  
  107. DO n = 0 to 1
  108.     LISTER SET LISTER.n.1 BUSY 0
  109.     LISTER SET LISTER.n.1 TITLE 'Comparing...'
  110.     LISTER REFRESH LISTER.n.1 FULL
  111.     LISTER SET LISTER.n.1 BUSY 1 WAIT
  112. END
  113.  
  114. filetrans=''
  115. DO c = 0 TO (NFiles.0 - 1)
  116.     DO z = 0 TO (NFiles.1 - 1)
  117.         IF file.0.c = file.1.z THEN DO
  118.             IF fileinfo.0.c.date > fileinfo.1.z.date THEN
  119. filetrans=filetrans file.0.c
  120.             ITERATE c
  121.         END
  122.     END
  123.     filetrans=filetrans file.0.c
  124. END
  125.  
  126. /* Upload files */
  127. LISTER SET LISTER.0.1 TITLE 'Uploading...'
  128. LISTER SET LISTER.1.1 TITLE 'Receiving...'
  129. DO n = 0 to 1
  130.     LISTER SET LISTER.n.1 BUSY 0
  131.     LISTER REFRESH LISTER.n.1 FULL
  132. END
  133. DO WHILE filetrans ~= ''
  134.     PARSE VAR filetrans fileup filetrans
  135.     LISTER SELECT LISTER.0.1 fileup
  136. END
  137.  
  138. COMMAND WAIT SOURCE LISTER.0.1 DEST LISTER.1.1 COPY
  139.  
  140. LISTER REQUEST LISTER.1.1 '"Click OK when upload is finished." OK'
  141. LISTER CLOSE LISTER.0.1
  142. COMMAND FTPQUIT
  143. EXIT
  144.  
  145.