HEX
Server: Apache
System: Linux msm5694.mjhst.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: camjab_ssh (1000)
PHP: 5.3.29
Disabled: NONE
Upload Files
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();
?>