Author: sparky
Date: Mon Mar  1 02:37:18 2010
New Revision: 11221

Modified:
   toys/rsget.pl/Get/FreakShare
Log:
- updated for web changes, recaptcha must be solved manually


Modified: toys/rsget.pl/Get/FreakShare
==============================================================================
--- toys/rsget.pl/Get/FreakShare        (original)
+++ toys/rsget.pl/Get/FreakShare        Mon Mar  1 02:37:18 2010
@@ -11,7 +11,7 @@
 tos: "http://freakshare.net/terms-of-service.html";
 uri: qr{freakshare\.net/files/}
 cookie: fs
-status: BROKEN 2010-02-28
+status: OK 2010-03-01
 
 start:
        GET( $-{_uri} );
@@ -26,17 +26,36 @@
        ! $-{form} = $self->form( match => { body => qr/"Free Download"/ } );
 
        ! m#var time = (\d+)(?:\.\d+);\s*var intervall;#;
-       WAIT( -$1, "starting" );
+       WAIT( -$1, "expecting recaptcha" );
 
+stage_getcaptcha:
        CLICK( $-{form}->post() );
-       
-       ! $-{dlform} = $self->form( match => { onsubmit => qr/^disableButton/ } 
);
 
-       ! m#var time = (\d+)(?:\.\d+);\s*var intervall;#;
-       WAIT( $1, "starting download" );
+stage_solvecaptcha:
+       ! $-{capform} = $self->form( match => { body => qr/recaptcha\.net/ } );
+
+       ! m{ src="(http://api\.recaptcha\.net/challenge.*)"};
+
+       GET( $1, keep_referer => 1 );
+
+       ! m{challenge : '(\S+)',};
+       $-{capform}->set( recaptcha_challenge_field => $1 );
+
+       GET( "http://api.recaptcha.net/image?c="; . $1, keep_referer => 1 );
+
+       CAPTCHA(
+               qr/\S+ \S+/
+       );
+
+       GOTO stage_getcaptcha unless defined $_;
+       $-{capform}->set( recaptcha_response_field => $_ );
 
-       CLICK_DOWNLOAD( $-{dlform}->post() );
+       CLICK_DOWNLOAD( $-{capform}->post() );
+stage_download:
 
-       MULTI() if /Sorry, you cant  download more then 1 at time/;
+       if ( m#recaptcha# ) {
+               CAPTCHA_RESULT( "FAIL" );
+               GOTO stage_solvecaptcha;
+       }
 
 # vim: filetype=perl:ts=4:sw=4
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to