|
|
||||||
|
CountDown v1.1 Text | |||||
| #!/usr/local/bin/perl #################################################################### # Countdown Version 1.1 # Copyright 1998 Edward Preble info@datatrendsoftware.com # Created 11/30/98 Last Modified 12/01/98 # Datatrend Software http://www.datatrendsoftware.com/cgi.html #################################################################### # This script will do the following: # 1. Is activated by a link, # "http://www.site.com/scripts/countdown.cgi?file.anything" # 2. Will add a count to "countdown.log", for the proper file. # 3. Will auto-forward to "file.anything" for download. # 4. The interface is seamless, no user prompts. #################################################################### # COPYRIGHT NOTICE # Copyright 1998 Edward Preble All Rights Reserved. # # This script is free. You may use and modify this script as you please. # Do not remove this header, as it is the only thing that gives me credit # for my work in writing this code. If you wish to sell this code, you # must obtain permission from the authors first. # # Scripts provided by Datatrend Software are supplied "as-is". You agree # to indemnify the author's from any liability that may arise from the use # of this script. We will provide support for bugs and operation issues, # but NOT for installation. Sorry for that, but it is just too time # consuming and the volume of requests is truly staggering. # # Obtain permission before redistributing this software over the Internet or # in any other medium. In all cases copyright and header must remain intact #################################################################### # # You must modify the the location of PERL in the first line above to match # the location on your server. Your system admin must help you with this. # You must also modify the following variables to match your preferences. # This is the counter log filename $Counter = '/usr/yourdir/docs/scripts/logs/countdown.log'; # This is the location of the file that will be downloaded $DownloadFileDir = 'http://www.yoursite.com/scripts/downloads'; ########################################################## # No changes need to be made after these lines ########################################################## $File = $ENV{'QUERY_STRING'}; # Strip off anything up to, and including, the last "/", if present if ($File =~ /\//) { ($File) = $File =~ /^.*\/([^\/]+)$/g; } $DownloadFile = "$DownloadFileDir/$File"; # Add hit to main counter open (CNT,"+<$Counter") || &endIt; flock (CNT,2); seek (CNT,0,0); @infile = <CNT>; # This will put the hits in order from max to min for each file added $record = 0; # Starting record in the log is always 0 $correctspot = 'N'; # Tells script if this record is the one that was hit # Proceeds as long as the record number is less than the total # number of records in the file and the correct record hasn't been found yet. while (($correctspot eq 'N') && ($record <= $#infile)) { ($count,$filename,$eol) = split(/\|/,$infile[$record]); if ($filename eq $File) #if this is the right record, hit it, trip correctspot {$count++; $infile[$record] = join ("\|",$count,$filename,"\n"); $correctspot = 'Y'; } $record++; } if ($correctspot eq 'N') { $count = 1; $newrecord = join ("\|",$count,$File,"\n"); push @infile, $newrecord; } @outfile = sort {($b =~ /(\d+)/)[0] <=> ($a =~ /(\d+)/)[0]} @infile; seek (CNT,0,0); print (CNT @outfile); truncate (CNT,tell(CNT)); close (CNT); print "Content-type: text/html\n"; print "Location: $DownloadFile\n\n"; sub endIt # exit on error { exit; } # end endIt |
||||||
AutoContact|AutoMail|Bookkeeper|CountDown|CountLink| |
|