<?
ini_set('memory_limit', '64M');
set_time_limit(0);
//MySQL
require($_SERVER['DOCUMENT_ROOT'].'/source/mysql.php');
$db = new DB;
function myecho($str) {
echo $str.'<br />'."\n";
ob_flush();
flush();
}
function get_html($get, $host) {
$hdr = "GET ".$get." HTTP/1.1\r\n";
$hdr .= "Host: ".$host."\r\n";
$hdr .= "User-Agent: GoogleBot/1.0\r\n";
$hdr .= "Cookie: age_check=1;screen_width=1680;\r\n\r\n";
$stuff = '';
$socket = fsockopen($host, 80);
if(!$socket) { return false; }
fwrite($socket, $hdr);
while(!feof($socket)) {
$stuff .= fgets($socket, 128);
}
fclose($socket);
return $stuff;
}
function get_file($url, $path) {
$cont = file_get_contents($url);
$f = fopen($path, 'w');
fwrite($f, $cont, strlen($cont));
fclose($f);
}
?>
<html>
<head>
<title>PornBot</title>
<style type="text/css">
body { font: 9pt Arial; }
</style>
</head>
<body>
<?
//Загрузим ключевики
$keys = file($_SERVER['DOCUMENT_ROOT'].'/keys.txt');
//Какую страницу парсить
$page = (isset($_GET['page']) && is_numeric($_GET['page']) ) ? $_GET['page'] : '1';
//Получаем главную страницу
myecho('Получаю главную страницу ('.$page.')...');
$html = get_html('/?page='.$page, 'youporn.com');
myecho('Страница получена, обрабатываю данные.');
//Вытаскиваем ссылки роликов
preg_match_all('/<h1><a href=\"(.+)\">(.+)<\/a><\/h1>/i', $html, $temp1);
//Вытаскиваем превью картинки и кол-во multiple-шотов
preg_match_all('/<img id=\"thumb[0-9]+\" src=\"(.+)\" num=\"([0-9]+)\" width=\"160\" height=\"120\"/i', $html, $temp2);
//Вытаскиваем длину записи
preg_match_all('/<h2>([0-9]+)<span>:<\/span>([0-9]+)<\/h2>/i', $html, $temp3);
//Компонуем
for($i=0;$i<count($temp1[1]);$i++) {
$video[$i]['page_link'] = $temp1[1][$i];
$video[$i]['img_preview'] = $temp2[1][$i];
$video[$i]['m_shots'] = $temp2[2][$i];
$video[$i]['duration'] = $temp3[1][$i].':'.$temp3[2][$i];
}
myecho('Количество фильмов на странице: '.count($video).'.<br />');
$counter = 0;
//-----------------------------------------//
// Начинаем пробегать по страницам роликов //
//-----------------------------------------//
for($i=0;$i<count($video);$i++) {
myecho('<b>Ролик №'.($i+1).'</b>');
//Получаем страницу с роликом
myecho('Получаю страницу "'.$video[$i]['page_link'].'"...');
$html = get_html($video[$i]['page_link'], 'youporn.com');
myecho('Страница получена, обрабатываю данные.');
//Название ролика
preg_match('/\/watch\/[0-9]+\/([a-z0-9\- ]+)\//i', $video[$i]['page_link'], $caption);
$video[$i]['caption'] = trim(str_replace('-', ' ', $caption[1]));
myecho('Название ролика: '.$video[$i]['caption']);
myecho('Длина ролика: '.$video[$i]['duration']);
//FLV и размер
preg_match('/<a href=\"(.+)\">FLV - Flash Video format<\/a> \(([0-9\,]+) KB\)/i', $html, $temp);
$video[$i]['flv'] = $temp[1];
$video[$i]['size'] = $temp[2];
myecho('Ссылка на FLV: '.$video[$i]['flv']);
myecho('Размер: '.$video[$i]['size']);
if((int)$video[$i]['size'] < 33) {
//Заношу в БД
$sql = 'INSERT INTO at_videos (caption, duration, size, addtime) VALUES ("'.trim($keys[rand(0, count($keys)-1)]).'", "'.$video[$i]['duration'].'", "'.$video[$i]['size'].'", '.time().')';
$db->query($sql);
myecho('Информация занесена в БД');
$id = $db->last_id();
myecho('Присвоенный id: '.$id);
//Скачиваем
myecho('Скачиваю картинку...');
if(strstr($video[$i]['img_preview'], 'nothumb')) {
myecho('Картинки превью для этого ролика нет.');
} else {
get_file($video[$i]['img_preview'], $_SERVER['DOCUMENT_ROOT'].'/stuff/screenshots/'.$id.'.jpg');
myecho('Картинка скачана');
}
myecho('Скачиваю видеоролик...');
get_file($video[$i]['flv'], $_SERVER['DOCUMENT_ROOT'].'/stuff/videos/'.$id.'.flv');
myecho('Видеоролик скачан');
$counter++;
if($counter == 16) { myecho('<b>16 роликов скачано</b>'); break; }
} else {
myecho('<i>Не скачиваю ролик</i>');
}
myecho('<br />');
}
require($_SERVER['DOCUMENT_ROOT'].'/source/xml-sitemap-gen.php');
?>
</body>
</html>