File: //home/httpd/mech_ftp/baretube.com/admin/csv_photos_cron.php
<?php
include('db.php');
$counter = 0;
$errors = 0;
if (file_exists("$basepath/admin/scrapers_photos")) {
$files = scandir("$basepath/admin/scrapers_photos");
foreach ($files as $file) {
if ($file !== '.' && $file !== '..' && file_exists("$basepath/admin/scrapers_photos/$file")) {
include_once "$basepath/admin/scrapers_photos/$file";
}
}
}
function unlinkRecursive($dir, $deleteRootToo) {
if (!$dh = @opendir($dir)) {
return;
}
while (false !== ($obj = readdir($dh))) {
if ($obj == '.' || $obj == '..') {
continue;
}
if (!@unlink($dir . '/' . $obj)) {
unlinkRecursive($dir . '/' . $obj, true);
}
}
closedir($dh);
if ($deleteRootToo) {
@rmdir($dir);
}
return;
}
ini_set('user_agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9');
include('scrape_class.php');
function getAttribute($attrib, $tag) {
$re = '/' . $attrib . '=["\']?([^"\' ]*)["\' ]/is';
preg_match($re, $tag, $match);
if ($match) {
return urldecode($match[1]);
} else {
return false;
}
}
function parseUrl($url) {
$r = "^(?:(?P<scheme>\w+)://)?";
$r .= "(?:(?P<login>\w+):(?P<pass>\w+)@)?";
$r .= "(?P<host>(?:(?P<subdomain>[-\w\.]+)\.)?" . "(?P<domain>[-\w]+\.(?P<extension>\w+)))";
$r .= "(?::(?P<port>\d+))?";
$r .= "(?P<path>[-\w/]*/(?P<file>\w+(?:\.\w+)?)?)?";
$r .= "(?:\?(?P<arg>[\w=&]+))?";
$r .= "(?:#(?P<anchor>\w+))?";
$r = "!$r!"; // Delimiters
preg_match($r, $url, $out);
return $out;
}
function scrapeGallery($url) {
global $config;
$collection = array();
$headers = get_headers($url);
$parsed = parseUrl($url);
foreach ($headers as $i) {
if (stripos($i, 404) !== false) {
//404 gallery, no point continueing.
return false;
}
if (stripos($i, "Location") === 0) { // lookup for redirection ("Location" at the beginning of the string)
$newLoc = trim(str_replace("Location: ", "", $i));
if (stripos($newLoc, "http://") !== false || stripos($newLoc, "https://") !== false || stripos($newLoc, "//") !== false) {
$url = $newLoc;
} else {
$url = "$parsed[scheme]://" . $parsed[host] . '/' . $newLoc;
}
$context = stream_context_create(array('http' => array('follow_location' => true)));
break;
}
}
$scraper = false;
foreach ($config['_scrapers'] as $key => $domains) {
foreach ($domains as $domain) {
if (strpos($domain, $parsed['domain']) !== false) {
$scraper = $key;
break;
}
}
if ($scraper !== false) {
break;
}
}
if ($scraper !== false && function_exists("scrape{$scraper}")) {
$collection = call_user_func("scrape{$scraper}", $url);
} else {
$context = stream_context_create(array('http' => array('follow_location' => true)));
$url_data = file_get_contents($url, false, $context);
$html = str_get_html($url_data);
$base = $html->find('base');
$links = $html->find('a');
$parsed_file = parseUrl($url);
$files_path = ($base[0]->attr['href'] != "") ? $base[0]->attr['href'] : "$parsed[scheme]://" . $parsed_file['host'] . str_replace($parsed_file['file'], '', $parsed_file['path']);
foreach ($links as $link) {
if (stripos($link->href, ".jpg") !== false || stripos($link->href, ".jpeg") !== false) {
if (stripos($link->href, 'http://') !== false || stripos($link->href, 'https://') !== false || substr($link->href, 0, 2) == '//') {
if (substr($link->href, 0, 2) == '//') {
$collection[] = $parsed['scheme'] . ':' . $link->href;
} else {
$collection[] = $link->href;
}
} else {
if (substr($link->href, 0, 1) == '/') {
$collection[] = $parsed['scheme'] . '://' . $parsed['host'] . $link->href;
} else {
$collection[] = $files_path . $link->href;
}
}
}
}
}
return $collection;
}
$result = dbQuery("SELECT * FROM `csv_import_photos` ORDER BY `record_num` DESC", false);
if (is_array($result) && count($result) > 0) {
dbQuery("UPDATE `status` SET `csv_photos_import_running` = 1, `csv_photos_import_total` = '" . count($result) . "' WHERE `csv_photos_import_total` = 0", false);
}
foreach ($result as $arr) {
$arr = mysql_real_escape_array($arr);
unset($insertpaysite);
//check if paysite exists (if specified)
if ($arr['paysite']) {
$arr['paysite'] = trim($arr['paysite']);
$rresult = dbQuery("SELECT `record_num` FROM `paysites` WHERE `name` LIKE '$arr[paysite]'", false);
if (count($rresult) > 0) {
$rrow = $rresult[0];
$insertpaysite = $rrow['record_num'];
} else {
dbQuery("INSERT INTO `paysites` (`name`) VALUES ('$arr[paysite]')");
$insertpaysite = mysqli_insert_id($dblink);
}
} else {
$insertpaysite = $arr['default_paysite'];
}
if ($arr['local'] != '') {
$i = $arr['local'];
$ftp_path = $basepath . '/csv_photos';
$content_path = $gallery_path;
if (is_dir('../csv_photos/' . $i)) {
$newfilename = uniqid();
echo "mv \"$basepath/csv_photos/$i\" \"$content_path/$newfilename\"";
shell_exec("mv \"$basepath/csv_photos/$i\" \"$content_path/$newfilename\"");
unset($array);
$array = scandir($content_path . '/' . $newfilename);
foreach ($array as $j) {
if ($j != '.' && $j != '..') {
$finalarray[] = $j;
}
}
mkdir($content_path . '/' . $newfilename . '/thumbs');
shuffle($finalarray);
dbQuery("INSERT INTO `content` (`title`, `filename`, `thumbnail`, `description`, `keywords`, `date_added`, `submitter`, `ip`, `approved`, `paysite`, `photos`) VALUES ('$arr[title]', '$newfilename', '', '$arr[desc]', '$arr[keywords]', NOW(), '$arr[submitter]', '', 0, '$insertpaysite', 1)");
$insert = mysqli_insert_id($dblink);
unset($insertsArr);
foreach ($finalarray as $i) {
dbQuery("INSERT INTO `images` (`title`, `filename`, `gallery`) VALUES ('','$i','$insert')");
$insertsArr[] = mysqli_insert_id($dblink);
}
if (is_array($insertsArr)) {
dbQuery("UPDATE `content` SET `thumbnail` = '" . $insertsArr[0] . "' WHERE `record_num` = '$insert'");
$counter++;
}
unlinkRecursive("$ftp_path/$i", true);
}
} elseif ($arr['flv']) {
echo "is_flv";
$i = uniqid();
$ftp_path = $basepath . '/csv_photos';
$content_path = $gallery_path;
$path = "../csv_photos/$i";
mkdir($path);
chmod($path, 0777);
unset($files);
$files = scrapeGallery($arr['flv']);
print_r($files);
$counter = 1;
if (is_array($files)) {
foreach ($files as $k) {
$string = file_get_contents($k);
file_put_contents($path . '/' . $counter . '.jpg', $string);
chmod($path . '/' . $counter . '.jpg', 0777);
$counter++;
unset($string);
}
if (is_dir('../csv_photos/' . $i)) {
$newfilename = uniqid();
//mkdir($content_path.'/'.$newfilename);
echo "mv \"$basepath/csv_photos/$i\" \"$content_path/$newfilename\"";
shell_exec("mv \"$basepath/csv_photos/$i\" \"$content_path/$newfilename\"");
//dir_copy($ftp_path.'/'.$i,$content_path.'/'.$newfilename);
unset($array);
unset($finalarray);
$array = scandir($content_path . '/' . $newfilename);
foreach ($array as $j) {
if ($j != '.' && $j != '..') {
$finalarray[] = $j;
}
}
mkdir($content_path . '/' . $newfilename . '/thumbs');
shuffle($finalarray);
dbReconnect();
dbQuery("INSERT INTO content (title, filename, thumbnail, description, keywords, date_added, submitter, ip, approved, paysite, photos) VALUES ('$arr[title]', '$newfilename', '', '$arr[desc]', '$arr[keywords]', NOW(), '$arr[submitter]', '', 0, '$insertpaysite', 1)");
$insert = mysqli_insert_id($dblink);
unset($insertsArr);
foreach ($finalarray as $i) {
dbQuery("INSERT INTO images (title, filename, gallery) VALUES ('','$i','$insert')");
$insertsArr[] = mysqli_insert_id($dblink);
}
dbQuery("UPDATE content SET thumbnail = '" . $insertsArr[0] . "' WHERE record_num = '$insert'");
$counter++;
unlinkRecursive($ftp_path . '/' . $i, true);
}
}
}
$parray = array_map_array('trim', explode(',', $arr['keywords']));
if(is_array($parray) && !empty($parray)) {
foreach ($parray as $p) {
$p = trim($p);
$rresult = dbQuery("SELECT `record_num` FROM `niches` WHERE `name` LIKE '$p' OR (`csv_match` != '' AND `csv_match` LIKE '%$p%')", false);
if (count($rresult) > 0) {
$rrow = $rresult[0];
dbQuery("INSERT INTO `content_niches` (`niche`, `content`) VALUES ('$rrow[record_num]', '$insert')");
unset($rrow, $rresult);
}
}
}
unset($parray);
$pornstarInserted = false;
unset($aka);
$parray = array_map_array('trim', explode(',', $arr['pornstars']));
foreach ($parray as $p) {
$rresult = dbQuery("SELECT `record_num` FROM `pornstars` WHERE `name` LIKE '$p' OR `aka` LIKE '%$p%'", false);
if (count($rresult) > 0) {
$rrow = $rresult[0];
dbQuery("INSERT INTO `content_pornstars` (`pornstar`, `content`) VALUES ('$rrow[record_num]', '$insert')");
$pornstarInserted = true;
unset($rrow, $rresult);
} else {
$subresult = dbQuery("SELECT `name`, `aka`, `record_num` FROM `pornstars` ORDER BY `name`", false);
foreach ($subresult as $subrow) {
similar_text($p, trim($subrow['name']), $sim);
if ($sim > 85) {
dbQuery("INSERT INTO `content_pornstars` (`pornstar`, `content`) VALUES ('$subrow[record_num]', '$insert')");
$pornstarInserted = true;
} else {
$aka = explode(',', $aka);
foreach ($aka as $a) {
similar_text($p, trim($a), $sim);
if ($sim > 85) {
dbQuery("INSERT INTO `content_pornstars` (`pornstar`, `content`) VALUES ('$subrow[record_num]', '$insert')");
$pornstarInserted = true;
}
}
}
}
}
if (!$pornstarInserted) {
dbQuery("UPDATE `content` SET `pornstartmp` = '$arr[pornstars]' WHERE `record_num` = '$insert'");
}
if (!$arr['pornstars']) {
$arr['pornstars'] = 'None Specified';
}
dbQuery("UPDATE `content` SET `pornstartmp` = '$arr[pornstars]' WHERE `record_num` = '$insert'");
}
dbQuery("DELETE FROM `csv_import_photos` WHERE `record_num` = '$arr[record_num]'");
if (dbValue("SELECT COUNT(`record_num`) AS `count` FROM `csv_import_photos`", 'count') == 0) {
dbQuery("UPDATE `status` SET `csv_photos_import_running` = 0, `csv_photos_import_total` = 0", false);
}
}
echo "$counter galleries successfully imported. $errors Errors Occured";
exit();
?>