SVN: toys/rsget.pl/Get/MediaFire

sparky sparky at pld-linux.org
Thu Apr 8 21:23:10 CEST 2010


Author: sparky
Date: Thu Apr  8 21:23:10 2010
New Revision: 11325

Modified:
   toys/rsget.pl/Get/MediaFire
Log:
- improvements for very unlikely cases


Modified: toys/rsget.pl/Get/MediaFire
==============================================================================
--- toys/rsget.pl/Get/MediaFire	(original)
+++ toys/rsget.pl/Get/MediaFire	Thu Apr  8 21:23:10 2010
@@ -11,14 +11,14 @@
 short: MF
 web: "http://www.mediafire.com/"
 tos: "http://www.mediafire.com/terms_of_service.php"
-uri: qr{mediafire\.com/(file/|\?)[a-z0-9]+}
+uri: qr{mediafire\.com/(file/|\?|download\.php\?)[a-z0-9]+}
 cookie: mf
 slots: max
 status: OK 2010-04-08
 
 unify:
 	return "http://www.mediafire.com/?$1" if
-		m{mediafire\.com/(?:file/|\?)([a-z0-9]+)};
+		m{mediafire\.com/(?:file/|\?|download\.php\?)([a-z0-9]+)};
 
 start:
 	GET( $-{_uri} );
@@ -47,10 +47,17 @@
 	my %vars = map { /var (.*?)='(.*?)'/ } split /;/, $vars;
 
 	my @esc = m/(\S+=unescape.*?eval|eval\(".*?"\))/g;
-	! scalar @esc;
-	foreach my $e ( @esc ) {
-		$_ = jseval( $e );
-		if ( /getElementById\('([0-9a-f]+)'\)/ ) {
+	if ( scalar @esc ) {
+		warn "Has escapes\n";
+		foreach my $e ( @esc ) {
+			$_ = jseval( $e );
+			if ( /getElementById\('([0-9a-f]+)'\)/ ) {
+				last if $-{func_id} eq $1;
+			}
+		}
+	} else {
+		warn "Old style\n";
+		while ( s/^.*?getElementById\('([0-9a-f]+)'\)//s ) {
 			last if $-{func_id} eq $1;
 		}
 	}


More information about the pld-cvs-commit mailing list