#!/bin/sh -- # A comment mentioning perl, indented for bash's sake. eval 'exec perl -S $0 ${1+"$@"}' if 0; $prefix = 'ftp://metalab.unc.edu/pub/electronic-publications/Dr-Fun'; $prefix = 'http://www.ibiblio.org/Dave/Dr-Fun'; $view = 'xv -geometry +1+1'; $view = 'gw eog'; $min = 9309; #$max = 9808; #$max = 9912; $max = 10412; $skip = '98(08|09|10|11|12)|99(0[1-8])'; # Dr-Fun/df200001/df20000106.jpg #$max = 10001; $ymin = int($min/100); $ymax = int($max/100); $tmp = "/tmp/drfun.jpg"; $try = "/var/tmp/drfun.try"; $Ntry = 30; $debug = 0; srand(); $tries = 0; while ( $tries < $Ntry ) { if ( $ARGV[0] ne '' ) { $argv_mode = 1; $tmp2 = $ARGV[0]; $t2 = $tmp2; $t2 =~ s,\d\d\.jpg,,; $url = "$prefix/$t2/$tmp2"; print STDOUT "ARGV try: $url\n"; shift; if ( ! @ARGV ) { $tries = $Ntry + 1; } } else { $tries++; $year = $ymin + int(($ymax + 1 - $ymin)*rand()); $year = $ymin if $year < $ymin; $year = $ymax if $year > $ymax; $month = 1 + int(12 * rand()); $month = 1 if $month < 1; $month = 12 if $month > 12; $month = "0$month" if $month < 10; $day = 1 + int(31 * rand()); $day = 1 if $day < 1; $day = 31 if $day > 31; $day = "0$day" if $day < 10; $ym = "${year}${month}"; if ( $ym > $max ) { print STDOUT "max skip: $ym\n"; next; } if ( $ym < $min ) { print STDOUT "min skip: $ym\n"; next; } if ( $ym =~ /$skip/o ) { print STDOUT "skip match: $ym\n"; next; } $year += 1900 if $year >= 100; $ym = "${year}${month}"; $date = "df${ym}${day}.jpg"; if ( -s $try ) { $grep = `grep "^$date" $try`; if ( $grep ne '' ) { if ( $tries == $Ntry ) { print STDOUT "try=$tries: RE-RUNNING: $date\n"; } else { print STDOUT "ALREADY TRIED: $date\n"; next; } } } $url = "$prefix/df${ym}/$date"; } if ( $debug ) { $goes++; print STDERR "$url\n"; next; } system("wcat -cb $url > $tmp"); if ( -s "$tmp" && `file "$tmp" | grep JPEG` =~ /JPEG/ ) { if ( ! $argv_mode ) { system("echo $date >> $try") if -s $try; } if ( $ENV{DISPLAY} eq '' ) { $ENV{DISPLAY} = ':0'; } system("$view $tmp &"); if ( @ARGV ) { sleep 5; } else { last; } } else { if ( ! $argv_mode ) { system("echo $date-ZERO >> $try") if -s $try; } else { last if ! @ARGV; } } } print STDOUT "debug: \[$goes/$tries]\n" if $debug;