Author: sparky
Date: Mon Oct 12 19:53:12 2009
New Revision: 10766

Added:
   toys/rsget.pl/Get/BadongoCom
Log:
- new, service with many options, but overly complicated and rather poor quality


Added: toys/rsget.pl/Get/BadongoCom
==============================================================================
--- (empty file)
+++ toys/rsget.pl/Get/BadongoCom        Mon Oct 12 19:53:12 2009
@@ -0,0 +1,101 @@
+#!/usr/bin/perl
+
+name: BadongoCom
+short: BC
+uri: qr{badongo\.com/}
+cookie: !badongo
+status: OK 2009-10-11
+
+unify:
+       s/#.*//; s{/$}{};
+       my $host = "http://www.badongo.com";;
+       return "$host/file/$1" if m{/c?file/(\d+(/.*)?)};
+       return "$host/vid/$1/1" if m{/c?vid/(\d+)};
+       return "$host/pic/$1" if m{/pic/(\d+)};
+       return "$host/file/$1" if m{/audio/(\d+)};
+
+start:
+       COOKIE( [ (qw(.badongo.com TRUE / FALSE), time + 86400, 'badongoL', 
'en' ) ] );
+
+       GET( $-{_uri} );
+
+       GOTO stage_getlink if $-{_referer} =~ m{/c(?:file|vid)/};
+
+       ERROR( "file not found" ) if /<div id="fileError">/;
+
+       if ( not /This file has been split/ or $-{_referer} =~ m{/\d+/(.+)$} ) {
+               my $part = $1;
+               ! m{<div class="finfo">(.*?)</div>};
+               my $name = $1;
+               ! m{<div class="ffileinfo">Views : \d+ \| Filesize : 
($STDSIZE)</div>};
+               my $size = $1;
+               if ( $part ) {
+                       INFO( name => "$name.$part", quality => "part of $1" );
+               } else {
+                       INFO( name => $name, asize => $1 );
+               }
+       }
+
+       GOTO stage_getpic if $-{_referer} =~ m{/pic/};
+
+stage_getcaptcha:
+       my $rsrnd = jstime();
+       $-{_referer} =~ m{.*/(.*?)$};
+       GET( "$1?rs=displayCaptcha&rst=&rsrnd=$rsrnd&rsargs[]=yellow",
+               keep_referer => 1 );
+
+       ! m{<img src=\\"(/ccaptcha.*?)\\"};
+       my $img = $1;
+
+       ! s/^.*?<form/<form/s;
+       ! s{</form>.*$}{</form>}s;
+       s/\\n/ /g;
+       s/\\"/"/g;
+
+       ! $-{form} = $self->form( source => $_ );
+
+       GET( $img, keep_referer => 1 );
+
+       CAPTCHA( "image/jpeg" );
+
+       $-{form}->set( user_code => $_ );
+       GET( $-{form}->post() );
+
+       GOTO stage_getcaptcha unless $-{_referer} =~ m{/c(?:file|vid)/};
+
+       if ( my @links = m{<a href="(http://www\.badongo\.com/file/\d+/..)">}g 
) {
+               LINK( @links );
+       }
+
+stage_getlink:
+       ! /var check_n = (\d+);/;
+       WAIT( $1, "getting download link" );
+
+       my $linkType = "getFileLink";
+       $linkType = "getVidLink" if $-{_referer} =~ m{/cvid/};
+       my $rsrnd = jstime();
+       $-{_referer} =~ m{.*/(.*?)$};
+       GET( "$1?rs=$linkType&rst=&rsrnd=$rsrnd&rsargs[]=yellow" );
+
+       ! m{doDownload\(\\'(.*?)\\'\)};
+       $-{dllink} = $1;
+
+       GET( $-{dllink} . "/ifr?pr=1&zenc=" );
+
+       $-{file_uri} = $-{dllink} . "/loc?pr=1";
+       GOTO stage_download;
+
+stage_getpic:
+       ! m{/pic/(\d+)};
+       GET( "$1?size=original" );
+
+       ! m{<img src="(http://mediacache.*)" border="0">};
+       $-{file_uri} = $1;
+ 
+stage_download:
+       DOWNLOAD( $-{file_uri} );
+
+       RESTART( -(60 + int rand 300), "free limit reached" )
+               if /You have exceeded your Download Quota/;
+
+# vim: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