SVN: toys/fun/rsget.pl

sparky sparky at pld-linux.org
Thu Mar 5 17:02:39 CET 2009


Author: sparky
Date: Thu Mar  5 17:02:38 2009
New Revision: 10172

Modified:
   toys/fun/rsget.pl
Log:
- save pages with errors for subsequent inspection


Modified: toys/fun/rsget.pl
==============================================================================
--- toys/fun/rsget.pl	(original)
+++ toys/fun/rsget.pl	Thu Mar  5 17:02:38 2009
@@ -462,6 +462,19 @@
 {
 	my $self = shift;
 	my $msg = shift;
+	my $data = shift;
+	if ( $data ) {
+		my $n = 0;
+		my $name;
+		do {
+			$name = "errorlog." . (++$n) . ".html";
+		} while ( -r $name );
+		open ERR_OUT, '>', $name;
+		print ERR_OUT $data;
+		close ERR_OUT;
+
+		$msg .= "; saved $name";
+	}
 
 	$self->print( $msg );
 	$self->finish( $msg );
@@ -477,12 +490,13 @@
 {
 	my $self = shift;
 	my $var = shift;
+	my $data = shift;
 	my $msg = "";
 	$msg = " (undefined var: $var)" if $var;
 	if ( ++$self->{try} < 8 ) {
 		return $self->wait( 2 ** $self->{try}, \&start, "unknown problem$msg, waiting" );
 	} else {
-		return $self->error( "unknown problem$msg, aborting" );
+		return $self->error( "unknown problem$msg, aborting", $data );
 	}
 }
 
@@ -527,7 +541,7 @@
 	} elsif ( $body =~ /form id="ff" action="(.*?)"/m ) {
 		$link = $1;
 	} else {
-		return $self->problem( "link" );
+		return $self->problem( "link", $body );
 	}
 
 	$self->curl( $link, \&stage3, post => 'dl.start=Free' );
@@ -548,7 +562,7 @@
 		return $self->wait( $m * 60 + 10, \&stage1, "free limit reached, waiting" );
 	}
 	unless ( $body =~ /var c=([0-9]+);/m ) {
-		return $self->problem( "var c=" );
+		return $self->problem( "var c=", $body );
 	}
 	my $wait = $1;
 
@@ -620,7 +634,7 @@
 		if ($body =~ /MAINTENANCE/ ) {
 			return $self->wait( 10 * 60, \&stage1, "server maintenence, will try in" );
 		}
-		return $self->problem( "link" );
+		return $self->problem( "link", $body );
 	}
 	$link =~ s/&amp;/&/g;
 
@@ -649,7 +663,7 @@
 		if ( $body =~ m/$search/ ) {
 			$self->{$name} = $1;
 		} else {
-			return $self->problem( $name )
+			return $self->problem( $name, $body )
 		}
 	}
 
@@ -696,11 +710,11 @@
 		return $self->wait( $1 / 100, \&stage1, "free limit reached, waiting" );
 	}
 	unless ( $body =~ /please wait .*countdown\(([0-9]+),/ ) {
-		return $self->problem( "countdown" );
+		return $self->problem( "countdown", $body );
 	}
 	my $wait = $1 / 100 + 1;
 	unless ( $body =~ m#<a class="Orange_Link" href="(.*?)"#) {
-		return $self->problem( "Orange_Link" );
+		return $self->problem( "Orange_Link", $body );
 	}
 	$self->{file_url} = $1;
 
@@ -929,7 +943,7 @@
 	my ($self, $body, $url) = @_;
 
 	if ( $url =~ m{/(upload|error)\.html} ) {
-		return $self->error( "some problem" );
+		return $self->error( "some problem", $body );
 	}
 	$self->print("downloading");
 	$self->{referer} = $url;
@@ -1007,7 +1021,7 @@
 		if ( $body =~ m/$search/ ) {
 			$self->{$name} = $1;
 		} else {
-			return $self->problem( $name )
+			return $self->problem( $name, $body )
 		}
 	}
 
@@ -1049,7 +1063,7 @@
 		if ( $body =~ m/$search/ ) {
 			$self->{$name} = $1;
 		} else {
-			return $self->problem( $name )
+			return $self->problem( $name, $body )
 		}
 	}
 
@@ -1177,7 +1191,10 @@
 	$self->{referer} = $url;
 
 	if ( $url =~ m#/\?view=# ) {
-		return $self->error( ($url =~ /fileremoved/) ? "file not found" : "unknown error" );
+		if ( $url =~ /fileremoved/) {
+			return $self->error( "file not found" );
+		}
+		return $self->error( "unknown error", $body );
 	}
 	if ( $body =~ /Or wait (\d+) minutes/ ) {
 		return $self->wait( $1 * 60, \&stage1, "free limit reached, waiting" );


More information about the pld-cvs-commit mailing list