SVN: toys/rsget.pl/Get/FileSonic
sparky
sparky at pld-linux.org
Thu Oct 14 00:31:33 CEST 2010
Author: sparky
Date: Thu Oct 14 00:31:32 2010
New Revision: 11843
Modified:
toys/rsget.pl/Get/FileSonic
Log:
- updated, uses recaptcha now
Modified: toys/rsget.pl/Get/FileSonic
==============================================================================
--- toys/rsget.pl/Get/FileSonic (original)
+++ toys/rsget.pl/Get/FileSonic Thu Oct 14 00:31:32 2010
@@ -29,16 +29,51 @@
INFO( aname => $fn, asize => $1 );
! m#<a class="downloadNow" href="(.*?)" id="free_download">#;
- CLICK( $1, keep_referer => 1 );
+ $-{dl_start} = $1;
+ CLICK( $-{dl_start}, post => "", keep_referer => 1 );
MULTI() if m#<span>Download session in progress</span>#;
- ! m#downloadUrl = "(.*?)"#;
- $-{file_uri} = $1;
+stage_getlink:
+ ( $-{file_uri} ) = m{<p><a href="(.*?)"><span>Start download now!</span></a></p>};
- ! /var countDownDelay = (\d+);/;
- WAIT( - $1, "starting download" );
+ GOTO stage_download if $-{file_uri};
+ if ( /var countDownDelay = (\d+);/ ) {
+ $-{delay} = $1;
+ GOTO stage_wait;
+ }
+
+ ! m{Recaptcha\.create\("(.*?)"};
+ $-{captcha_key} = $1;
+
+ GET( "http://www.google.com/recaptcha/api/challenge?k=$-{captcha_key}&ajax=1&cachestop=" . rand,
+ keep_referer => 1 );
+
+ ! ( $-{captcha_challenge} ) = m{challenge\s*:\s*'(.*?)'};
+
+ GET( "http://www.google.com/recaptcha/api/image?c=" . $-{captcha_challenge},
+ keep_referer => 1 );
+
+ CAPTCHA(
+ qr/\S+ \S+/
+ );
+
+ GET( $-{dl_start}, post => {
+ recaptcha_challenge_field => $-{captcha_challenge},
+ recaptcha_response_field => $_
+ } );
+
+ GOTO stage_getlink;
+
+stage_wait:
+ WAIT( -( $-{delay} + 5 ), "expecting download link" );
+
+ GET( $-{dl_start}, post => "" );
+
+ GOTO stage_getlink;
+
+stage_download:
CLICK_DOWNLOAD( $-{file_uri} );
# vim: filetype=perl:ts=4:sw=4
More information about the pld-cvs-commit
mailing list