SVN: toys/fun/rsget.pl

sparky sparky at pld-linux.org
Thu Jan 8 20:49:40 CET 2009


Author: sparky
Date: Thu Jan  8 20:49:40 2009
New Revision: 10058

Modified:
   toys/fun/rsget.pl
Log:
- added uploaded.to


Modified: toys/fun/rsget.pl
==============================================================================
--- toys/fun/rsget.pl	(original)
+++ toys/fun/rsget.pl	Thu Jan  8 20:49:40 2009
@@ -3,6 +3,11 @@
 # 2008 (c) Przemysław Iskra <sparky at pld-linux.org>
 # Use/modify/distribute under GPL v2 or newer.
 #
+=item TODO:
+- removing URI from list should stop download
+- new URI higher in the list should replace any connection
+  to the same network is still in the wait stage
+=cut
 use strict;
 use warnings;
 use Time::HiRes;
@@ -904,6 +909,10 @@
 sub stage2
 {
 	my ($self, $body, $url) = @_;
+
+	if ( $url =~ m{/(upload|error)\.html} ) {
+		return $self->error( "some problem" );
+	}
 	$self->print("downloading");
 	$self->{referer} = $url;
 
@@ -1102,6 +1111,55 @@
 }
 
 # }}}
+package Get::UploadedTo; # {{{
+
+BEGIN {
+	our @ISA;
+	@ISA = qw(Get);
+}
+
+sub new
+{
+	my $proto = shift;
+	my $class = ref $proto || $proto;
+	my $url = shift;
+
+	Get::makenew( "UT", $class, $url );
+}
+
+sub stage1
+{
+	my $self = shift;
+
+	$self->print("starting...");
+	delete $self->{referer};
+	$self->curl( $self->{url}, \&stage2 );
+}
+
+sub stage2
+{
+	my ($self, $body, $url) = @_;
+	$self->print("starting......");
+	$self->{referer} = $url;
+
+	if ( $body =~ /Or wait (\d+) minutes/ ) {
+		return $self->wait( $1 * 60, \&stage1, "free limit reached, waiting" );
+	}
+	($self->{file_url}) = ($body =~ m#<form name="download_form" method="post" action="(.*)">#);
+	my ($wait) = ($body =~ m#var secs = (\d+); // Wartezeit#);
+
+	$self->wait( $wait, \&stage3, "starting in" );
+}
+
+sub stage3
+{
+	my $self = shift;
+	$self->print("downloading");
+
+	$self->download( post => "download_submit=Download");
+}
+
+# }}}
 package main; # {{{
 
 my $get_list = shift @ARGV || 'get.list';
@@ -1135,6 +1193,9 @@
 		} elsif ( $line =~ m{^\s*(http://(www\.)?megaupload\.com/\?d=.*?)\s*$} ) {
 			$url = $1;
 			new Get::MegaUpload( $1 );
+		} elsif ( $line =~ m{^\s*(http://uploaded\.to/file/.*?)\s*$} ) {
+			$url = $1;
+			new Get::UploadedTo( $1 );
 		}
 
 		if ( $url ) {


More information about the pld-cvs-commit mailing list