SVN: toys/rsget.pl/Get/TurboBit
sparky
sparky at pld-linux.org
Sat Oct 24 02:17:58 CEST 2009
Author: sparky
Date: Sat Oct 24 02:17:57 2009
New Revision: 10843
Modified:
toys/rsget.pl/Get/TurboBit
Log:
- use new tools: click, forms, keep_referer
- added captcha processor, results are rather poor
Modified: toys/rsget.pl/Get/TurboBit
==============================================================================
--- toys/rsget.pl/Get/TurboBit (original)
+++ toys/rsget.pl/Get/TurboBit Sat Oct 24 02:17:57 2009
@@ -5,8 +5,8 @@
uri: qr{turbobit\.net/}
uri: qr{turbobit\.ru/}
cookie: tb
-slots: 8
-status: OK 2009-09-13
+slots: max
+status: OK 2009-10-24
start:
GET( $-{_uri} );
@@ -22,25 +22,35 @@
INFO( name => $name, asize => $size );
! m#<td><a class="free" href="(.*?)" onclick#;
- GET( $1 );
-stage_captcha:
- $-{c_page} = $-{_referer};
+ CLICK( $1 );
- unless ( m#<img alt="Captcha" src="(.*?)"# ) {
+stage_captcha:
+ if ( m#<img alt="Captcha" src="(.*?)"# ) {
+ $-{capimg} = $1;
+ } else {
! m#var Timeout = {\s*limit: (\d+),#s;
RESTART( $1, "free limit reached" );
}
- GET( $1 );
+ ! $-{form} = $self->form( match => { body => qr#<img alt="Captcha"# } );
+
+stage_getimg:
+ GET( $-{capimg}, keep_referer => 1 );
+
+ CAPTCHA(
+ qr/[A-Z0-9]{4}/i,
+ process => \&tb_decaptcha,
+ );
- CAPTCHA( "image/png" );
- $-{_referer} = $-{c_page};
+ GOTO stage_getimg unless defined $_;
- GET( "#", post => { captcha_response => $_ } );
- $-{dl_page} = $-{_referer};
+ $-{form}->set( captcha_response => uc $_ );
+ GET( $-{form}->post() );
- unless ( /updateTime: function/ ) {
- PRINT( "Invalid captcha" );
- return $self->stage_captcha();
+ if ( /updateTime: function/ ) {
+ CAPTCHA_RESULT( "OK" );
+ } else {
+ CAPTCHA_RESULT( "FAIL" );
+ GOTO stage_captcha;
}
! m{\$\("#timeout"\)\.load\("(/download/timeout/.*?)"\);};
@@ -49,12 +59,28 @@
! m#var Timeout = {\s*limit: (\d+),#;
WAIT( -$1, "starting download" );
- GET( $-{dl_link} );
-
- $-{_referer} = $-{dl_page};
+ GET( $-{dl_link}, keep_referer => 1 );
! m#<a href='(.*?)'>#;
- DOWNLOAD( $1 );
+ CLICK_DOWNLOAD( $1 );
+
+perl:
+
+sub tb_color_select
+{
+ my @s = sort { $a <=> $b } @_;
+ return $s[2];
+}
+
+sub tb_decaptcha
+{
+ my $img = shift;
+ $img->color_filter( \&tb_color_select );
+ $img->luma_emphasize( 200, 160 );
+ local $_ = $img->ocr();
+ s/\s+//g;
+ return $_;
+}
# vim:ts=4:sw=4
More information about the pld-cvs-commit
mailing list