#!/usr/bin/perl
use File::Basename;
($pat, $to, $from, $refpat) = @ARGV;
$pat and
  ($ph) = $pat =~ /(+)/, $ph
  or die "usage: $0 http://somesite/^V^V.jpg [max] [min] [referer^V^V]\n";
if ($to) {
	$auto_stop = 0;
} else {
	$auto_stop = 1;
	$to = 2000;
}
$from ||= 0;

$w = length($ph);
$f = "%0${w}.0f";
$pat =~ s/%/%%/g;
$pat =~ s/(+)/$f/;

if ($refpat) {
	($ph) = $refpat =~ /(+)/, $ph;
	$w = length($ph);
	$f = "%0${w}.0f";
	$refpat =~ s/%/%%/g;
	$refpat =~ s/(+)/$f/;
} else {
	$refpat ||= 'self';
}

warn "from $from to $to auto_stop $auto_stop\n";

for ($i = $from; $i < $to; ++$i) {
	$url = sprintf $pat, $i;
	$ENV{REFERER} = sprintf $refpat, $i;
	my $out;
	if ($ENV{BASENAME}) {
		($out = $url) =~ s/\?.*//;
		$out = basename($out);
	} else {
		($out = $url) =~ s,/,|,g;
	}
	$out ||= sprintf("%03d.jpg", $i);
	$x = system "wget-scrape", "--max-redirect=0", "-O=$out", $url;
	if (! -s $out || `file "$out"` =~ /HTML/) {
		warn "bad 1 $out";
		warn "file: ", `file "$out"`;
		unlink $out;
		$x = 1;
	}
	if ($x && $i > 0 && $auto_stop) {
		warn "bad 2  x $x i $i";
		exit;
	}
}
