#!/usr/bin/perl
#
# Image/Script Ninja by Pete
# Takes URLs and prints the locations of images (and optionally downloads the
# images) and the scripts found on the pages. 'isninja.pl --help' for more information.
# Use it while you can, for tomorrow it will be illegal.
print "Starting Image/Script Ninja...\n\n\n";
# Make sure the user supplied the correct arguments and didn't specify '--help'.
if ( @ARGV < 1 || "@ARGV" =~ /--help/ ) {
print "Usage:\nisninja.pl [--getimages] url1 [url2, url3...]\n";
print "URL(s) must end in a filename (*.html, etc.) or a trailing slash.\n";
print "--getimages downloads the image instead of only printing its URL.\n";
exit;
}
# See if user wanted to save the images
if ( "@ARGV" =~ /--getimages/ ) {
$getimages = 1;
}
else {
$getimages = 0;
}
# Go through each URL
for ( $loop = 0 ; $loop < @ARGV ; $loop++ ) {
# Make sure it's not the argument!
if ( $ARGV[$loop] eq "--getimages" ) {
next;
}
# Grab the file
@file = `wget $ARGV[$loop] --output-document=-`;
# To keep everything seperate
print "\n\nResults from $ARGV[$loop]...\n";
$scrnum = 0;
$imgnum = 0;
# Check each line
for ( $line = 0 ; $line < @file ; $line++ ) {
# Is there an image?
if ( $file[$line] =~ /
]/, $file[$line] );
for ( $loop2 = 0 ; $loop2 < @fs ; $loop2++ ) {
if ( $fs[$loop2] =~ /scr/i ) {
@top = split( /\"/, $fs[$loop2] );
for (
$loop3 = 1 ;
$top[ $loop3 - 1 ] !~ /src/i ;
$loop3++
)
{
;
}
$tmp = $ARGV[$loop];
$tmp2 = chop($tmp);
while ( $tmp2 ne "/" ) {
$tmp2 = chop($tmp);
}
$imgurl = $tmp . '/' . $top[$loop3];
$imgnum++;
print "Image #$imgnum; $imgurl\n";
if ($getimages) {
system("wget $imgurl");
}
}
}
}
# Is there a script?
if ( $file[$line] =~ /
$scrnum++;
print "===Script #$scrnum===\n";
# The nested stuff is here in case anyone uses a script
# to print otu another script or something.
$nested = 0;
while ( $line < @file ) {
print $file[$line];
if ( $file[$line] =~ /