WILD.PPE - By Dan Shore - SysOp The Shoreline BBS (301) 946-2771 October 4, 1996 Purpose - Give the user an opportunity to select which files to flag during a wildcard download instead of all the files being flagged first by PCB, then having to edit the files right before downloading. When issuing the download command which contains wildcard requests, the user will be prompted with a list of filenames. At this point they flag the files they wish to download by number (ranges also accepted). These flagged files are then passed back to PCB to process (ratio's, time, etc.) once they exit the PPE. ******************************************************************* WARNING --- WARNING --- WARNING --- WARNING --- WARNING For this PPE to function correctly you MUST be running PCB 15.21 ******************************************************************* YOU MAY NOT ENGAGE IN NOR PERMIT THIRD PARTIES TO ENGAGE IN ANY OF THE FOLLOWING: 1. ATTEMPT TO DISASSEMBLE, DE-COMPILE, OR REVERSE ENGINEER THE SOFTWARE OR THE FILES IT GENERATES IN ANY WAY. 2. MAKING ANY KIND OF ALTERATION TO THE SOFTWARE OR THE FILES THAT ARE CONTAINED WITHIN THE MAINMAIL ARCHIVE FILE. 3. GRANTING SUB-LICENSES, LEASE OR OTHER RIGHTS IN THE SOFTWARE TO OTHERS. WARRANTY AND DISCLAIMER: ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ THIS PRODUCT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE RESULTS AND PERFORMANCE OF THE PROGRAM IS ASSUMED BY YOU. FURTHERMORE, I THE AUTHOR DO NOT WARRANT, GUARANTEE, OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF OR THE RESULTS OF THE USE OF THE PROGRAM, OR THAT THE PROGRAM WILL RUN WITHOUT ERROR, AND YOU RELY ON THE PROGRAM AND RESULTS SOLELY AT YOUR OWN RISK. I THE AUTHOR CANNOT ACCEPT RESPONSIBILITY FOR SYSTEM DAMAGE, LOSS OF PROFIT, OR ANY OTHER SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES RESULTING FROM THE USE OR INABILITY TO USE THIS PRODUCT. WILD.PPE is copyrighted (c)1995 by Daniel A. Shore. ALL RIGHTS RESERVED. --------------------------------------------------------------------------- A. INSTALLATION ÄÄÄÄÄÄÄÄÄÄÄÄ 1. Add two new entries to your CMD.LST file(s) Your entries in CMD.LST should look something like the following: Charges Per PPE/MNU File Specification -or- Command Sec Minute Use Keystroke Substitution ĶĶĶĶĶĶĶĶĶĶĶĶĶĶ ĶĶĶ ĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶ ĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶĶ D 5 0 0 C:\PCB\PPE\WILD\WILD.PPE DB 5 0 0 C:\PCB\PPE\WILD\WILD.PPE (Change the security level and path to match your system) 2. Change PCBText entries 61 & 728 to the following: !c:\pcb\ppe\wild\wild.ppe DL Or you can change your PCBText by using: MKPCBTXT C:\PCB\GEN\PCBTEXT /I:61 "!c:\pcb\ppe\wild\wild.ppe DL" MKPCBTXT C:\PCB\GEN\PCBTEXT /I:728 "!c:\pcb\ppe\wild\wild.ppe DL" (Change the paths to match your system) Change PCBText entries 223 & 585 to the following: !c:\pcb\ppe\wild\wild.ppe FL Or you can change your PCBText by using: MKPCBTXT C:\PCB\GEN\PCBTEXT /I:223 "!c:\pcb\ppe\wild\wild.ppe FL" MKPCBTXT C:\PCB\GEN\PCBTEXT /I:585 "!c:\pcb\ppe\wild\wild.ppe FL" (Change the paths to match your system) 3. Edit the WILD.CFG which contains a MINIMUM of 2 entries. Example of WILD.CFG: ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 51 110 A. The first entry is for the maximum number of files that will be matched per wildcard request (a wildcard request is a filename that contains a DOS wildcard). A setting of 51 makes for a nice full screen display to the user. The SysOp is able to change this value to whatever you wish. REMEMBER the higher the number the longer a search will take. Do not enter a number that is higher than 99. If the user cannot find their file in 99 files then their search criteria is too large. B. The second entry is the security level that allows a "*.*" WildCard download. If the users security level is GREATER THAN OR EQUAL TO this level, then they are allowed to perform a "*.*" download. If their security level is lower than this value and they attempt a "*.*" download, the file "ALLSEC" (which is located in the same directory as WILD.PPE) will be displayed to the user. The SysOp can customize this file in any way they wish. (Remember the batch download limit in PCB is 99 files max.) NOTE: WILD.CFG must reside in the same directory as WILD.PPE 4. The file WHLP is a help file, and must reside in the same directory as WILD.PPE (Language specific help files are supported) 5. All text displayed by WILD.PPE is contained in an external file called "WILDTXT". This file MUST be in the same directory as WILD.PPE (Language specific WILDTXT and language specific YES/NO replies are supported) WILD.PPE and Filename Stacking ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ WILD.PPE will accept stacking of filenames for processing. Below are examples of what the user can do: At the Main Menu prompt: ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ (47 min. left) Main Board Command? D Z*.* WINZIP60.ZIP WIN*.* At the "Enter filename to download prompt": ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Enter the filename to Download (Enter)=none? Z*.* WINZIP60.ZIP WIN*.* WILD.PPE will process the WILDCARD requests FIRST and then will pass the NON-wildcard filenames to PCB for processing once ALL the wildcard requests have been processed. As you may have noticed, normal filenames along with wildcard requests are accepted on the command line. ============================================================================= B. WHAT WILL THE USER SEE WHEN DOWNLOADING USING WILDCARDS: ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Below is an example of a wildcard download session using WILD.PPE (We have commented each section to let you know what is occuring) ============================================================================= *1. User starts a download by stacking their request at the main board command prompt. (The PPE will allow multiple filenames stacked here or the user can enter "D", then RETURN, and enter in their request(s) at the "Enter the filename to Download (Enter)=none" prompt.) ============================================================================= (47 min. left) Main Board Command? d cdsk*.* ============================================================================= *2. The PPE is now invoked, due to it finding a wildcard request on the command line (CDSK*.*). While the search is in progress, the user can interrupt it at any time by hitting the ENTER key (this is a safeguard built in in case of a long or incorrect search entered by a user that needs to be interrupted). Once the search is completed, the user is informed how many filenames matched their wildcard request. A list of filenames is then presented to the user, followed by the wildcard command prompt. ============================================================================= Hit [ENTER] to interrupt search... Wildcard search in progress for : CDSK*.* Total Filenames matching your Wildcard Request = 3 Files matching your request ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 1. CDSKA821.ZIP 2. CDSKB821.ZIP 3. CDSKC821.ZIP WildCmd: E)dit,H)elp,F)lag,L)ist,R)elist,(Enter)=quit? (F) ============================================================================= *3. The user can flag files by entering the NUMBER(s) of the file(s), instead of typing the filenames. They can enter single numbers, multiple numbers seperated by spaces or semi-colons, or a range of numbers using a hyphen. In our example the user has choosen to "F"lag files, and has decided to flag a range of files "1-3". The user is then informed of how many files have been flagged by their request. (If a file number is out of range, they will be properly informed.) WILD.PPE will not allow a user to FLAG more files than allowed by the password file setting for batch download limits. The program will alsonot allow the same file to be flagged twice. ============================================================================= Enter File NUMBER(s) to Flag, Ex: 1 2 5-9 14 etc. ([ENTER] Quits)? 1-3 3 Wildcard files have been flagged WildCmd: E)dit,H)elp,F)lag,L)ist,R)elist,(Enter)=quit? (E) ============================================================================= *4. The user can edit (remove) files they have flagged by choosing the "E"dit command. They will first be presented with a prompt asking them if they wish to remove All Flagged Files. If they enter NO then each filename they flagged will be displayed to them at which time they have the option of keeping the file or not: ============================================================================= **NOTE** You can remove ALL files at once or be prompted for each file Do you wish to remove All Flagged Files (Y,[N]) (Enter=no) Keep CDSKA821.ZIP in flagged file list? (Y,[N])? y Keep CDSKB821.ZIP in flagged file list? (Y,[N])? y Keep CDSKC821.ZIP in flagged file list? (Y,[N])? y WildCmd: E)dit,H)elp,F)lag,L)ist,R)elist,(Enter)=quit? (L) ============================================================================= *5. The user can list files they have flagged, as a way to verify or check what files are currently flagged (these are files only flagged for THIS current wildcard request). In this example the user choose to "L"ist flagged files, and they are presented with the following: ============================================================================= List of Flagged Wildcard Files for Downloading 1. CDSKA821.ZIP 2. CDSKB821.ZIP 3. CDSKC821.ZIP WildCmd: E)dit,H)elp,F)lag,L)ist,R)elist,(Enter)=quit? (H) ============================================================================= *6. At the Wildcard command prompt, the user can get help for the available Wildcard commands (the file WHLP is displayed). In this example, the user choose "H"elp and they are presented with the following: ============================================================================= Wildcard Command Help [E]dit ..... Edit list of files that were flagged in this Wildcard session [H]elp ..... Show this menu [F]lag ..... Flag file(s) from the displayed list of filenames [L]ist ..... Show Wildcard files that are currently flagged in this session [Q]uit ..... Exit Wildcard (hit ENTER) [R]elist ... Display the list of files again WildCmd: E)dit,H)elp,F)lag,L)ist,R)elist,(Enter)=quit? (R) ============================================================================= *7. With all the selections available to a user, the original list of filenames can scroll off the screen. By choosing the "R"elist command, the user can once again see the list of matching filenames for their wildcards request without having to perform another search. ============================================================================= Files matching your request ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 1. CDSKA821.ZIP 2. CDSKB821.ZIP 3. CDSKC821.ZIP WildCmd: E)dit,H)elp,F)lag,L)ist,R)elist,(Enter)=quit? ( ) ============================================================================= *8. When the user is finished flagging, viewing, editing, or relisting files, all they have to do is hit ENTER to exit WILD.PPE If they flagged files while in the PPE these files will be flagged and processed by PCB for downloading. In this example the user flagged three wildcard files, and exited the PPE, and the following was presented to them: ============================================================================= Checking file transfer request. Please wait, Dan ... (1) CDSKA821.ZIP 413533 bytes, 5.2 minutes (approximate) (2) CDSKB821.ZIP 198945 bytes, 2.6 minutes (approximate) (3) CDSKC821.ZIP 392147 bytes, 5 minutes (approximate) Download Flagged Files? (Y) (4) Enter the filename to Download (Enter)=none? C. IMPORTANT POINTS ABOUT WILD.PPE ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ *** ANY FILE THAT IS LOCATED IN A DIRECTORY OR AN INDEX IN YOUR *** *** DLPATH.LST CAN BE MATCHED FOR DOWNLOAD BY WILD.PPE. WHILE *** *** THIS MAKES WILD.PPE A VERY POWERFUL PPE, IT CAN ALSO CAUSE *** *** SOME SECURITY PROBLEMS. READ ITEMS #2 AND #3 IN THIS SECTION *** *** ON HOW TO STOP WILD.PPE FROM MATCHING SPECIFIC FILENAMES OR *** *** FROM MATCHING ANY FILES IN DEFINED DIRECTORIES. *** 1. As you may have noticed, we let PCB take care of the actual flagging of the files so it can check ratios, time remaining and anything else that restricts the user during downloading. Since PCB already performs this action, it was not worth "recreating the wheel" as they say, within the PPE. 2. When WILD.PPE is searching for files, it will not put a filename in the listing for users to flag if the file is restricted by the FSEC file. For example, lets say you have the following in your FSEC: Directory: E:\SPFILES\*.* Security Level: 10 If the users security level is less than 10, any file that matches their request in E:\SPFILES will not be shown to the user as a file that can be flagged. If their security level allows them access to this directory, and there is a password associated with these files, once the user exits the PPE, PCB will ask for the password. Again, we let PCB take care of "most" of the security and restriction features of downloading. One restriction that we do check is WILD.PPE will not allow a user to flag more files than is allowed by the batch download limit set in the passwords file (PCBSetup). 3. Within WILD.PPE there are two other OPTIONAL ways to *BLOCK* files or directories from being matched by WILD.PPE. THE FIRST WAY TO BLOCK FILES OR DIRECTORIES ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ The first way is to add UP TO 20 extra lines to the WILD.CFG file with a maximum of 10 lines containing filenames, and 10 lines containing directories. Currently your WILD.CFG which has two entries might look something like this: 51 <---- Maximum number of files to match 110 <---- Security level to allow *.* searches Now let's say you wanted to block some filenames and some directories from being matched. Here is what your WILD.CFG might look like: 51 110 DAN.ZIP WIND110.ZIP JOHNSON.ZIP C:\PCB\JUNK\ D:\EXTRA\ E:\PARTS\ ELEC321.ZIP STUFF.ZIP HANGKUS.ZIP NOTE: ž Each extra line cannot exceed 256 characters in length or unpredictable results will occur with the PPE. ž Each entry should be seperated by a space of a semi-colon. ž Each dirctory entry must END with a backslash ž You can only have 10 filename lines and 10 directory lines. Any more than 10 will be ignored by the PPE. No matter which conferences a wildcard download request is made in, the WILD.CFG file will be read and the filenames and directories will be used to block matches. THE SECOND WAY TO BLOCK FILES OR DIRECTORIES ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ BUT......what if you have more filenames or directories to block then can be supported in the WILD.CFG file? There is another option for you, but it will require more work and maintenance. Under the wildcard PPE directory you would have sub-directories which would be a number. These numbers would correlate to conference numbers. Below is an example of conferences #21 and #45: PPE ÄÄ WILDCARD ³ ĆÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ ³ ³ ³ ³ 21 (Conference #21) 45 (Conference #45) ³ ³ ĄÄÄÄ FIL21 & DIR21 ĄÄÄÄ FIL45 and DIR45 Each of the sub-directories (21 & 45) could contain two files called: FILxxxxx - Contains filenames to not match DIRxxxxx - Contains paths to not match Format of each file: ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 10 lines maximum with up to 256 characters per line. FILxxxxx ÄÄÄÄÄÄÄÄ filename filename filename DIRxxxxx ÄÄÄÄÄÄÄÄ c:\junk\ c:\test\ d:\stuff\ NOTE: ž Use spaces or semi-colons to seperate filenames or directories Now...if you wish to limit files in a particular conference you will need to make the subdirectory and create the FILxxxxx with the filenames you wish to reject. If you wish to included directories to skip, then you also need to create the DIRxxxx in the ### directory. You will not need to have a sub-directory for every conference on your BBS, just the ones you want to have limited from the PPE, or the ones you do not have in the .CFG file. NOTE: ž YOU CAN ONLY HAVE 10 LINES TOTAL BETWEEN THE .CFG FILE AND THE LINES CONTAINED IN THE SUB-DIRECTORIES! ANY MORE THAN 10 LINES WILL BE IGNORED. THE .CFG FILE IS PROCESSED FIRST, WITH THE FILxxxxx AND DIRxxxxx PROCESSED SECOND. D. WILDTXT ÄÄÄÄÄÄÄ This file contains all the text displayed by WILD.PPE (The program will support language specific WILDTXT files). It is recommended not to move any of the text in this file around as it will then display prompts in the wrong places. You are welcome to change the colors or the wording of any line in this file. NOTE: Lines #46 and #47 are used when the program is searching for a wildcard match. #46 is for users that have ANSI support, and #47 is for those that do not. #46 will display a TWIRLY to the user, while #47 will display WAIT, one letter at a time. You can change these two lines to anything you wish AS LONG AS YOU DO NOT USE MORE THAN FOUR (4) CHARACTERS PER LINE. To use a LANGUAGE specific WILDTXT file, just add the extension you defined to be used for that specific language. For instance, lets say you are using ENGLISH and BOEHMIAN for language options for your users. ENGLISH has no extension and BOHEMIAN has .BOH as the extension. So for WILD.PPE to function correctly for both languages, you will need a WILDTXT and a WILDTXT.BOH file. The language file are defined in PCBSetup under: File Location/Configuration Files/Name/Loc of Multi-Lang. Data File E. Registration ÄÄÄÄÄÄÄÄÄÄÄÄ This program is being released under the "Freeware" concept. F. Source Code ÄÄÄÄÄÄÄÄÄÄÄ Source code for this PPE is available, but only if your purchase it. The cost for the source code is $25.00 You can mail me a letter requesting the source code and pay by Personal Check, Company Check, or Money Order. Do not send cash through the mail. G. Special Thanks ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ A special thanks to : Tom Hansen of "Church Chatters BBS" 402-593-8863 (ShutDown) (Thanks Tom, we all are going to miss your BBS...Hope to see you back up and running real soon!!!!) Buddy Driever of "The PC Addiction BBS" 303-434-7515 Thanks guys for your testing, suggestions, and assistance. H. Conclusion ÄÄÄÄÄÄÄÄÄÄ This archive has been zipped with an authenticity verification stamp. When you unzip this archive you should see at the end: Authentic files Verified! # MMJ131 THE SHORELINE BBS If you do not see this, then the file has either been tampered with or has been rezipped by an upload processor. If you have any questions, comments, suggestions, etc. please feel free to contact me via NetMail, the PCBoard or the PCBNet conferece in FIDO, or the PPL conference on RIME. Dan Shore (301) 946-2771 - Node 1 (public access) The Shoreline BBS (301) 946-4202 - Node 2 (subscribers) 4312 Ferrara Court (301) 946-8153 - Node 3 (public access) Silver Spring, MD 20906 (301) 946-5733 - Node 4 (public access) Fido Address - 1:109/458 1:109/457 RIME Address - #1205 or SHORELINE E-Mail Address - dan.shore%sline@ghawk.com