SVN: toys/rsget.pl/Premium/RapidShare
sparky
sparky at pld-linux.org
Mon Dec 6 00:46:30 CET 2010
Author: sparky
Date: Mon Dec 6 00:46:30 2010
New Revision: 11954
Added:
toys/rsget.pl/Premium/RapidShare (contents, props changed)
Log:
- plugin for premium account at rapidshare
Added: toys/rsget.pl/Premium/RapidShare
==============================================================================
--- (empty file)
+++ toys/rsget.pl/Premium/RapidShare Mon Dec 6 00:46:30 2010
@@ -0,0 +1,68 @@
+# $Id$
+# Get::RapidShare - Premium file getter plugin for rsget.pl
+#
+# 2010 (c) Przemysław Iskra <sparky at pld-linux.org>
+# This program is free software,
+# you may distribute it under GPL v2 or newer.
+
+name: RapidShare
+short: *RS
+web: "http://rapidshare.com/"
+tos: "http://rapidshare.com/#!rapidshare-ag/rapidshare-ag_agb"
+uri: qr{(?:rs[a-z0-9]+\.)?rapidshare\.com/files/\d+/.+}
+uri: qr{(?:rs[a-z0-9]+\.)?rapidshare\.com/?#!download\|\d+\|\d+\|.+?\|\d+}
+uri: qr{(?:rs[a-z0-9]+\.)?rapidshare\.de/files/\d+/.+}
+uri: qr{(?:rs[a-z0-9]+\.)?rapidshare\.de/?#!download\|\d+\|\d+\|.+?\|\d+}
+cookie: rs.p
+slots: max
+status: OK 2010-10-04
+
+pre:
+ my ($user, $pass);
+ if ( my $s = setting("premium_rapidshare") ) {
+ ($user, $pass) = ($s =~ /^(.+?):(.+)/) or die "Premium user:pass incorrect\n";
+ } else {
+ die "Premium user:pass not given\n";
+ }
+
+unify:
+ return $_;
+
+start:
+ $-{__uri} = $-{_uri} unless $-{__uri};
+
+ GET( $-{__uri} );
+
+ ERROR( "file not found: $1" )
+ if /^ERROR: (File .*)/;
+
+ if ( m{<script type="text/javascript">location="(.*?)"} ) {
+ $-{__uri} = "http://rapidshare.com$1";
+
+ RESTART( 1, "found correct uri: $-{__uri}" );
+ }
+
+ if ( ( $-{id}, $-{name}, my $size ) = $-{_referer} =~ m{#!download\|[0-9a-z]+\|(\d+)\|(.+?)\|(\d+)} ) {
+ INFO( name => $-{name}, asize => "$size KB" );
+ } else {
+ ERROR( "unknown error, uri is: $-{_referer}" );
+ }
+
+ CLICK( "https://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=getaccountdetails_v1&withcookie=1&withpublicid=1&login=$user&password=$pass&cbf=RSAPIDispatcher&cbid=1" );
+
+ # switch plugin to regular (non premium)
+ if ( /ERROR: Login failed/ ) {
+ INFO( getter => "Get::RapidShare" );
+ DELAY( 15, "Login as $user failed, switching to anonymous" );
+ }
+
+ ! /\\ncookie=([0-9A-F]+)\\n/;
+ $-{cookie} = $1;
+
+ CLICK( "http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=download_v1&cookie=$-{cookie}&editparentlocation=1&try=1&fileid=$-{id}&filename=$-{name}" );
+
+ ! my ( $host, $dlauth, $wait ) = m{DL:(.*?),([0-9A-F]+?),(\d+)};
+
+ DOWNLOAD( "http://$host/cgi-bin/rsapi.cgi?sub=download_v1&cookie=$-{cookie}&editparentlocation=1&fileid=$-{id}&filename=$-{name}&bin=1&dlauth=0&wantpremdl=1" );
+
+# vim: filetype=perl:ts=4:sw=4
More information about the pld-cvs-commit
mailing list