SVN: toys/rsget.pl/Link/SecuredIn

sparky sparky at pld-linux.org
Sun Oct 4 15:50:47 CEST 2009


Author: sparky
Date: Sun Oct  4 15:50:47 2009
New Revision: 10676

Modified:
   toys/rsget.pl/Link/SecuredIn
Log:
- simplified


Modified: toys/rsget.pl/Link/SecuredIn
==============================================================================
--- toys/rsget.pl/Link/SecuredIn	(original)
+++ toys/rsget.pl/Link/SecuredIn	Sun Oct  4 15:50:47 2009
@@ -28,46 +28,45 @@
 
 start:
 	GET( $-{_uri} );
-stage_captcha:
-	$-{referer} = $-{_referer};
 
-	unless ( m#<form action="" id="frm_captcha" method="post"># ) {
-		return $self->stage_getlinks();
-	}
-	$-{form} = $self->form( id => "frm_captcha" );
-	my $h = $-{form}->get( "captcha_hash" );
+	$-{cap_form} = $self->form( id => "frm_captcha" );
+	GOTO stage_find_links unless $-{cap_form};
+
+stage_captcha:
+	my $h = $-{cap_form}->get( "captcha_hash" );
 	my $img = "captcha-$h.jpg";
 
-	GET( $img );
-	$-{_referer} = $-{referer};
+	GET( $img, keep_referer => 1 );
 
 	CAPTCHA( "image/jpeg" );
+	$-{cap_form}->set( captcha_key => $_ );
+
+	GET( $-{cap_form}->post() );
 
-	$-{form}->set( captcha_key => $_ );
-	GET( $-{form}->post() );
-stage_getlinks:
-	$-{referer} = $-{_referer};
-	if ( m#<form action="" id="frm_captcha" method="post"># ) {
-		return $self->stage_captcha();
-	}
+	$-{cap_form} = $self->form( id => "frm_captcha" );
+	GOTO stage_captcha if $-{cap_form};
+
+stage_find_links:
 
 	my @list;
 	push @list, $1 while s/accessDownload\(\d+, \d+, '(\d+-[0-9a-f]+)', \d+\);//;
+
 	ERROR("no links") unless @list;
+
 	$-{list} = \@list;
 	$-{outlist} = [];
 
-	GET( "/ajax-handler.php", post => { cmd => "download", download_id => shift @{$-{list}} } );
-stage_next_uri:
-	$_ = cipher( $_ );
-	s/\s+$//;
-	push @{$-{outlist}}, $_;
-
-	if ( @{$-{list}} ) {
-		$-{_referer} = $-{referer};
-		GET_NEXT( stage_next_uri, "/ajax-handler.php",
-			post => { cmd => "download", download_id => shift @{$-{list}} } );
-	}
+stage_get_link:
+	GET( "/ajax-handler.php",
+		post => { cmd => "download", download_id => shift @{$-{list}} },
+		keep_referer => 1 );
+
+	my $uri = cipher( $_ );
+	$uri =~ s/\s+$//;
+	$uri =~ s/ /%20/g;
+	push @{$-{outlist}}, $uri;
+
+	GOTO stage_get_link if @{$-{list}};
 
 	LINK( @{$-{outlist}} );
 


More information about the pld-cvs-commit mailing list