= $startpage) { foreach($parsedjson['data']['children'] as $item) { if ($limit != 0 && $downloads >= $limit) { $runagain = false; } else { if (is_image($item['data']['url']) && !is_blacklisted($item['data']['domain'])) { download_file($item['data']['url'], $item['data']['title']); } elseif (is_imgur($item['data']['url']) && !is_blacklisted($item['data']['domain'])) { download_file(is_imgur($item['data']['url']), $item['data']['title']); } } } } else { echo "Skipping Page...\n"; sleep(2); } if ($parsedjson['data']['after'] == '' || $parsedjson['data']['after'] == null) { $runagain = false; } else { if ($runagain != false) { $lastitem = end($parsedjson['data']['children']); $after = $lastitem['data']['name']; $runagain = true; } } $page++; } echo "Done!\n"; } function is_image($url) { if (preg_match("/^.*\.(jpg|jpeg|png|gif)$/i", $url)) return true; else return false; } function is_imgur($url) { if (preg_match("/^http:\/\/imgur.com\/[a-zA-Z0-9]+/i", $url) || preg_match("/^http:\/\/www.imgur.com\/[a-zA-Z0-9]+/i", $url)) { $imageurl = str_replace("http://imgur.com/","",$url); $imageurl = str_replace("http://www.imgur.com/","",$imageurl); $imageurl = "http://i.imgur.com/".$imageurl.".jpg"; return $imageurl; } else return false; } function is_blacklisted($domain) { global $blacklist; $match = false; foreach ($blacklist as $blacklistdomain) { if (strpos($domain,$blacklistdomain)) $match = true; } return $match; } function download_file($url, $title) { global $savedir, $downloads; $filename = create_filename($title, $url); $i = 1; while (file_exists($savdir."/".$filename)) { $filename = create_filename($title,$url,$i); $i++; } $contents = file_get_contents($url); if ($contents != '') { file_put_contents($savedir."/".$filename, $contents); if (check_image($filename)) { $downloads++; echo "File ".$downloads.": ".$title."\n"; return true; } else { echo "Corrupt Image: ".$title."\n"; } } else return false; } function check_image($filename) { global $savedir; $check = getimagesize($savedir."/".$filename); if (preg_match("/^image\/.+/", $check['mime'])) return true; else return false; } // Sanitization from Wordpress codebase function create_filename($filename, $url, $num=0) { $filename = strip_tags($filename); $filename = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', '---$1---', $filename); $filename = str_replace('%', '', $filename); $filename = preg_replace('|---([a-fA-F0-9][a-fA-F0-9])---|', '%$1', $filename); $filename = strtolower($filename); $filename = preg_replace('/&.+?;/', '', $filename); $filename = str_replace('.', '-', $filename); $filename = preg_replace('/[^%a-z0-9 _-]/', '', $filename); $filename = preg_replace('/\s+/', '-', $filename); $filename = preg_replace('|-+|', '-', $filename); $filename = trim($filename, '-'); $extension = preg_match("/^.*\.(jpg|jpeg|png|gif)$/i", $url, $match); if ($num > 0) return $filename."-".$num.".".$match[1]; else return $filename.".".$match[1]; } run(); ?>