Author: sparky
Date: Sun Oct  4 22:39:30 2009
New Revision: 10688

Modified:
   toys/rsget.pl/RSGet/Processor.pm
Log:
- allow multiple download commands


Modified: toys/rsget.pl/RSGet/Processor.pm
==============================================================================
--- toys/rsget.pl/RSGet/Processor.pm    (original)
+++ toys/rsget.pl/RSGet/Processor.pm    Sun Oct  4 22:39:30 2009
@@ -17,6 +17,7 @@
 }
 
 my $is_sub = 0;
+my $last_cmd = undef;
 sub p_sub
 {
        my $sub = shift;
@@ -31,7 +32,13 @@
 {
        return unless $is_sub;
        $is_sub--;
-       pr "\treturn \${self}->error( 'unexpected end of script' );\n}\n";
+
+       my $error = 'unexpected end of script';
+       if ( $last_cmd and $last_cmd eq "download" ) {
+               $error = 'download is a HTML page';
+       }
+       $last_cmd = undef;
+       pr "\treturn \${self}->error( '$error' );\n}\n";
 }
 
 my $space;
@@ -128,6 +135,7 @@
 
        $processed = "";
        $space = "";
+       $last_cmd = undef;
        $is_sub = 0;
 
        $opts{uri} = [ map { eval $_ } @{$opts{uri}} ];
@@ -140,6 +148,7 @@
        use warnings;
        use RSGet::Get;
        use RSGet::Tools;
+       use URI::Escape;
 
        BEGIN {
                our @ISA;
@@ -158,7 +167,7 @@
                $space = "";
                $space = $1 if s/^(\s+)//;
 
-               if ( s/^(GET|WAIT|CAPTCHA)\s*\(// ) {
+               if ( s/^(GET|WAIT|CAPTCHA|DOWNLOAD)\s*\(// ) {
                        my $cmd = lc $1;
                        my $next_stage = "stage" . ++$stage;
                        my @skip;
@@ -172,6 +181,7 @@
                                p_line();
                        }
                        p_subend();
+                       $last_cmd = $cmd;
                        p_sub( $next_stage );
                } elsif ( s/^(GET|WAIT|CAPTCHA)_NEXT\s*\(\s*(.*?)\s*,// ) {
                        my $cmd = lc $1;
@@ -200,15 +210,6 @@
                } elsif ( s/^SEARCH\s*\(// ) {
                        pr $space . 'return if $self->search( ';
                        p_line();
-               } elsif ( s/^DOWNLOAD\s*\(\s*// ) {
-                       p_ret( "download" );
-                       p_line();
-                       until ( /;\s*$/ ) {
-                               $_ = shift @machine;
-                               p_line();
-                       }
-                       p_subend();
-                       p_sub( "stage_is_html" );
                } elsif ( s/^(PRINT|LOG|COOKIE)\s*\(// ) {
                        p_func( lc $1 );
                        p_line();
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to