home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / UPCHECK / UPLOAD20.ZIP / UPLOAD.PPS < prev    next >
Text File  |  1993-10-24  |  6KB  |  142 lines

  1. ;*****************************************************************************
  2. ;*                                                                           *
  3. ;*                            UPLOAD.PPE v2.00                               *
  4. ;*                   PCBOARD 15.0 Upload Extension Checker                   *
  5. ;*                                                                           *
  6. ;*                        Written by Steven Hauswirth                        *
  7. ;*                 Written in PCBoard Programming Language                   *
  8. ;*                                                                           *
  9. ;*                          "The Power Palace BBS"                           *
  10. ;*               Node 1 - 312-594-0643 - [14.4 v32b] - 80386/40              *
  11. ;*                                                                           *
  12. ;*   This PPE will check to see if the user is trying to upload a type of    *
  13. ;*   file that you do not want in the current conference (by extension).     *
  14. ;*   It will also display a pre-upload text file based on which conference   *
  15. ;*   the user is in.                                                         *
  16. ;*****************************************************************************
  17. STRING TEMP          ;Temporary Storage variable
  18. STRING NUM_FILES     ;Number of upload processors configuration files to swap
  19. STRING NAME_EXT      ;Name of current extension not to allow
  20. STRING CONF_NUM      ;Number of current conference indexed to in the config file
  21. STRING NUM_EXT       ;Number of extensions not allowed in the current indexed conference
  22.                      ;in the config file
  23. STRING FILE_NAME     ;Name of file to be uploaded
  24. STRING STUFF         ;Variable to stuff into keyboard on exit
  25. STRING CMDLINE       ;Command line used to call this PPE
  26. STRING FILE_LEAD     ;Leader to be stuffed into kbd. 9
  27.  
  28. INTEGER K            ;Loop counter
  29.  
  30. ;**************************************************************************
  31. ;* Initialize some variables and get command line passed to PPE           *
  32. ;**************************************************************************
  33.  
  34. FILE_NAME = ""
  35.  
  36. CMDLINE = TOKENSTR()
  37. TOKENIZE CMDLINE
  38.  
  39. IF (TOKCOUNT() > 0) GETTOKEN FILE_NAME     ;Get command line to see if a file
  40.                                            ;name was passed
  41.  
  42. IF (UPPER(FILE_NAME) = "/PCBTEXT") THEN
  43.         FILE_LEAD = ""                     ;If being called from PCBTEXT
  44.         FILE_NAME = ""                     ;then replace the "Upload" prompt
  45. ELSE
  46.         FILE_LEAD = "U "                   ;Else need to stuff a "U"
  47. ENDIF
  48.  
  49. ;**************************************************************************
  50. ;* Index past the upload processor configuration file names in the        *
  51. ;* UPLOAD.CFG file, to get to information for the current conference, the *
  52. ;* conference specific pre-upload screen, and not allowed extensions.     *
  53. ;**************************************************************************
  54.  
  55. FOPEN 1, PPEPATH() + PPENAME() + ".CFG", O_RD, S_DN
  56. FGET 1, NUM_FILES
  57. IF (UPPER(NUM_FILES) = "NONE") GOTO SKIP   ;Config files option wont be used
  58.  
  59. FGET 1, TEMP    
  60. FGET 1, TEMP
  61. FOR K = 1 TO NUM_FILES
  62.      FGET 1, TEMP            
  63.      IF (FERR(1)) GOTO EXIT 
  64. NEXT
  65.  
  66. ;**************************************************************************
  67. ;* Check to see if current conference has its own pre-upload screen to be *
  68. ;* displayed. If not then display the default one.                        *
  69. ;**************************************************************************
  70.  
  71. :SKIP
  72. IF (FILE_NAME != "") GOTO GOT_NAME     
  73. IF (EXIST(PPEPATH() + PPENAME() + "." + STRING(CURCONF()))) THEN
  74.         DISPFILE PPEPATH() + PPENAME() + "." + STRING(CURCONF()), GRAPH + LANG
  75. ELSE
  76.         DISPFILE PPEPATH() + PPENAME() + ".DEF", LANG + GRAPH
  77. ENDIF
  78.  
  79. ;**************************************************************************
  80. ;* Ask for filename to be uploaded. Do some minor error checking          *
  81. ;**************************************************************************
  82.  
  83. INPUTSTR "Enter the Filename to Upload (Enter)=none",FILE_NAME,@X0E,12,MASK_FILE(),UPCASE+NEWLINE+LFAFTER+FIELDLEN+GUIDE
  84.  
  85. IF (LEN(FILE_NAME) = 0) THEN     
  86.      STUFF = CHR(13)
  87.      GOTO EXIT
  88. ENDIF
  89.  
  90. :GOT_NAME
  91. FILE_NAME = FILE_LEAD + FILE_NAME                ;Stuff "U" if needed to filename
  92. FGET 1, CONF_NUM
  93. IF (UPPER(CONF_NUM) = "NONE") THEN  ;Check to see if .ext limiting option is to be used
  94.         STUFF = FILE_NAME
  95.         GOTO EXIT
  96. ENDIF
  97.  
  98. ;**************************************************************************
  99. ;* Index to the correct portion of the config file to get the names of    *
  100. ;* of the extensions that are not allowed in the current conference.      *
  101. ;**************************************************************************
  102. FGET 1, NUM_EXT        ;Get the number of not allowed extension from config file
  103.  
  104. :SEARCH
  105. WHILE ( CONF_NUM <> STRING(CURCONF()) & !FERR(1) ) DO
  106.      FOR K = 1 TO NUM_EXT
  107.           FGET 1, NAME_EXT
  108.      NEXT
  109. FGET 1, CONF_NUM
  110. FGET 1, NUM_EXT
  111. ENDWHILE
  112.  
  113. IF (FERR(1)) THEN
  114.      STUFF = FILE_NAME
  115.      GOTO EXIT
  116. ENDIF
  117.  
  118. ;*************************************************************************
  119. ;* Look to see if the extension entered is one that is not allowed. And i*
  120. ;* if it is then display a message to the user.                          *
  121. ;*************************************************************************
  122. FOR K = 1 TO NUM_EXT
  123.      FGET 1, NAME_EXT
  124.      IF (FERR(1)) GOTO EXIT
  125.      IF (RIGHT(FILE_NAME,LEN(FILE_NAME)-INSTR(FILE_NAME,".")) = NAME_EXT) THEN
  126.           PRINTLN "You have tried to upload a filetype that is not allowed in this conference."
  127.           PRINTLN "Please join the appropriate conference and try your upload again."
  128.           PRINTLN
  129.           STUFF = CHR(13)
  130.           WAIT
  131.           GOTO EXIT
  132.      ENDIF
  133. NEXT
  134. STUFF = FILE_NAME
  135.  
  136. ;**************************************************************************
  137. ;* Close files and stuff keyboard                                         *
  138. ;**************************************************************************
  139. :EXIT
  140. FCLOSE 1
  141. KBDSTUFF STUFF
  142. END