Report abuse

<?php

/*****************************************
 * Скрипт парсинга рекламной системы Nolix
 * с подсчётом интересной статистики.
 *
 * Сделал BrokenBrake.biz.
 * http://brokenbrake.biz/2010/08/27/shepelev-liar
 ****************************************/

error_reporting(7);
header('Content-Type: text/plain; charset=UTF-8');

$DB = 'DB.php';
if (file_exists($DB)) include($DB);

$width = 11; // Сколько страниц обрабатывать за раз
$range = urlencode(join(',', range($_GET['from'], $_GET['from'] + $width)));
$time = time();
$pipeURL = "http://pipes.yahoo.com/pipes/pipe.run?_id=17b1b6567c7bc54203b789a78e34464b&_render=php&range=$range&time=$time";

if (isset($_GET['from'])) // Сбор информации
{
	$pipe = unserialize(file_get_contents($pipeURL));
	if ($pipe['value']['items'][0]['ID'])
	{
		foreach ($pipe['value']['items'] as $one)
		{
			//if ($one['count']) unset($one['strings'][0]);
			//else unset($one['strings']);
			unset($one['strings']);

			$URI = $one['URL']; $last = $one['ID'];
			if (!isset($base[$URI]))
			{
				$base[$URI] = $one;
			}
			else $base[$URI]['ID'] .= ', '.$one['ID']; // Считаем, по скольким ID Nolix
			$result[] = $one['URL'].", ({$one['ID']})";
		}
		file_put_contents($DB, '<?php $base ='.var_export($base, true).';');
		//print_r($result);
		//echo 'Всего '.count($base);
		//sleep(1);
		header("Location: ./?from=$last", true, 302);
	}
	else // Если труба какая-то корявая...
	{
		print_r($pipe);
	}
}

else // Просто просмотр базы
{
//print_r($base);
	foreach ($base as $URI => $data)
	{
		if (strpos($data['ID'], ',')) $data['ID'] = preg_replace("/\,.*/", '', $data['ID']);
		$list[] = "{$data['ID']}		$URI		{$data['title']}	{$data['count']}";
		if ($data['count']) $active++;
		if ($data['count'] == 1) $smile++;
		$num += $data['count'];
	}
	$count = count($list);
	$empty = $count - $active;

	echo  "
		Всего сайтов в системе: $count;
		из них имеют хотя бы одного рекламодателя: $active;
		из них имеют ТОЛЬКО ОДНОГО рекламодателя: $smile.
		Остальные сайты-пустышки: $empty.
		Всего строк в ротации: $num.

		Полный список
ID		URI	Название сайта		Количество строк
".join("\n", $list);

}