SVN: toys/rsget.pl/Get/UploadingCom

sparky sparky at pld-linux.org
Sat Oct 3 18:33:27 CEST 2009


Author: sparky
Date: Sat Oct  3 18:33:26 2009
New Revision: 10660

Added:
   toys/rsget.pl/Get/UploadingCom
Log:
- new


Added: toys/rsget.pl/Get/UploadingCom
==============================================================================
--- (empty file)
+++ toys/rsget.pl/Get/UploadingCom	Sat Oct  3 18:33:26 2009
@@ -0,0 +1,57 @@
+#!/usr/bin/perl
+
+name: UploadingCom
+short: UC
+uri: qr{uploading\.com/(../)?files/(get/)?[A-Za-z0-9]{8}/}
+cookie: uc
+status: OK 2009-10-03
+
+start:
+	GET( $-{_uri} );
+
+	RESTART( 60 + int rand 180, "temporarily unavailable" )
+		if m{<h1>Service Not Available</h1>};
+	ERROR( "file not found" ) if /Requested file not found/;
+
+	! m{<h2 style=".*?">File download</h2><br/>\s*<h2>(.*?)</h2><br/>\s*File size: <b>($STDSIZE)</b>};
+	my $name = $1; my $size = $2;
+	if ( $name =~ /\.\..{1,5}$/ ) {
+		! m{<title>Download (.*?) for free on uploading\.com</title>};
+		$name = $1;
+	}
+	INFO( name => $name, asize => $size );
+
+	my $form = $self->form( id => "downloadform" );
+	$-{file_id} = $form->get( "file_id" );
+
+	GET( $form->post() );
+	$-{dl_page} = $-{_referer};
+
+	if ( m{var file_link = '.+?'} ) {
+		$-{file_uri} = $1;
+		return $self->stage_download();
+	}
+	! /CONF\s*=\s*{\s*host:\s*'(.*?)'\s*}/;
+	$-{host} = $1;
+
+	! m{start_timer\((\d+)\);};
+	WAIT( -$1, "expecting download link" );
+
+	GET( $-{host} . "files/get/?JsHttpRequest=" . jstime() . "-xml",
+		post => "file_id=$-{file_id}&action=get_link&pass",
+		headers => [ "Content-Type: application/octet-stream" ],
+	);
+stage_download:
+	$-{_referer} = $-{dl_page};
+
+	unless ( $-{file_uri} ) {
+		! m{"link"\s*:\s*"(.*?)"};
+		$-{file_uri} = $1;
+		$-{file_uri} =~ s/\\(.)/$1/g;
+	}
+
+	DOWNLOAD( $-{file_uri} );
+
+	MULTI() if /Your IP address is currently downloading a file/;
+
+# vim:ts=4:sw=4


More information about the pld-cvs-commit mailing list