<?
set_time_limit(0);
ini_set('memory_limit', '2048M');
ini_set('display_errors', 1);
error_reporting(E_ALL);
include_once 'lib/php/include/dbConstants.php';

function http_build_query_for_curl( $arrays, &$new = array(), $prefix = null ) {

    if ( is_object( $arrays ) ) {
        $arrays = get_object_vars( $arrays );
    }

    foreach ( $arrays AS $key => $value ) {
        $k = isset( $prefix ) ? $prefix . '[' . $key . ']' : $key;
        if ( is_array( $value ) OR is_object( $value )  ) {
            http_build_query_for_curl( $value, $new, $k );
        } else {
            $new[$k] = $value;
        }
    }
}

$stime = time();
//include_once("lib/php/include/db.php");

if($_GET['debug']=="ms123")
	echo "Setting memcache<br>";

class mCache extends Memcache {
	static private $instance = null;
	static private $port = 11211;
	static function mGet() {
		if(self::$instance == null) {
			self::$instance = new Memcache;
			self::$instance->addServer("192.168.16.229", self::$port);
			self::$instance->addServer("192.168.16.230", self::$port);
			self::$instance->addServer("192.168.16.231", self::$port);
			self::$instance->addServer("192.168.16.232", self::$port);
			self::$instance->addServer("192.168.16.233", self::$port);
		}
		return self::$instance;
	}
}

function connect_db()
{
	$db_name = "Admin";
	
	if($_GET['debug'] == "ms123")
		echo "DB Selected -  ".MSACOMMON_DB_HOST_ADMIN."<br>";

	$db = mysql_connect(MSACOMMON_DB_HOST_ADMIN, MSACOMMON_DB_USER_ADMIN, MSACOMMON_DB_PASS_ADMIN);
	if(!$db)
		echo mysql_error()."<br>";

	mysql_select_db($db_name, $db);
	return $db;
}

$expire = "86400";
$adv_keywords = array();

$db = connect_db();
if($db && $_GET['debug'] == "ms123")
	echo "DB OK <br>";

//$kSql = "SELECT ck.keyword from campaign_keywords ck left join campaign c on (ck.campaign_id = c.id) where c.status = 'A' order by ck.bid desc";
$kSql = "select * from all_campaign_keywords";
$kRes = mysql_query($kSql, $db);
if($_GET['debug'] == "ms123")
{
	echo mysql_error($kRes);
	echo "<br>";
}
while($kRow = mysql_fetch_assoc($kRes))
{	
	$adv_keywords[trim(strtolower($kRow['keyword']))] = 1;
}

if($_GET['debug'] == "ms123")
	echo "Campaign_keywords ".count($adv_keywords)." - ".(time() - $stime)."<br>";

/*$bSql = "SELECT bk.keyword from ads_campaign_keywords_broadmatch bk left join campaign c on (bk.campaign_id = c.id) where c.status = 'A' order by bk.bid desc";
$bRes = mysql_query($bSql, $db);
while($bRow = mysql_fetch_assoc($bRes))
{
	$adv_keywords[trim(strtolower($bRow['keyword']))] = 1;
}

if($_GET['debug'] == "ms123")
	echo "ads_campaign_keywords_broadmatch ".count($adv_keywords)." - ".(time() - $stime)."<br>";
*/
$arr_size = round(count($adv_keywords)/4000);

for($i=0; $i<4000; $i++)
{
	$slicedArr = array();
	$k = $i+1;

	$slicedArr = array_slice($adv_keywords, ($i*$arr_size), $arr_size, true);
	$mkey =  md5("crawler_advKeywords__690__ebnl4k_".$k);

	if($_GET['debug'] == "ms123")
		echo count($slicedArr)." - {$k} - {$mkey} - ";
	if(mCache::mGet()->get($mkey))
		$r = mCache::mGet()->replace($mkey, $slicedArr, 0, $expire);
	else
		$r = mCache::mGet()->set($mkey, $slicedArr, 0, $expire);

	/*$curl_data = array();
	$curlStr = "";
	$curl_data['mkey'] = $mkey;
	$curl_data['val'] = $slicedArr;
	$curl_data['expire'] = "86400";
	$curl_data['mservers'] = array('172.31.6.33','172.31.6.34','172.31.6.36');
	$curl_data['debug'] = "ms123";
	
	http_build_query_for_curl($curl_data, $curlStr);
	$cURL = curl_init();
	curl_setopt($cURL, CURLOPT_URL, "http://54.193.116.98/aws/setMemcache.php");
	curl_setopt($cURL, CURLOPT_HEADER, 0);
	curl_setopt($cURL, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($cURL, CURLOPT_USERAGENT, "AdMedia bot");
	curl_setopt($cURL, CURLOPT_TIMEOUT, 30);
	curl_setopt($cURL, CURLOPT_POST, 1); 
	curl_setopt($cURL, CURLOPT_HTTPHEADER, array('Expect:'));
    curl_setopt($cURL, CURLOPT_POSTFIELDS, $curlStr); */
	
	if($_GET['debug'] == "ms123")
	{
		var_dump($r);
		echo "<br>";
	}
}

/*if($_GET['debug'] == "ms123")
	echo $arr_size."<br>";

$adv_keywords_ch = array_chunk($adv_keywords, $arr_size, true);
if($_GET['debug'] == "ms123")
	echo $arr_size." - ".count($adv_keywords_ch)."<br>";

foreach($adv_keywords_ch as $j=>$akch)
{
	$k = $j+1;
	if($k <= 10)
	{
		$mkey =  md5("crawler_advKeywords_686_".$k);

		if($_GET['debug'] == "ms123")
			echo count($akch)." - {$k} - {$mkey} - ";
		$r = mCache::mGet()->set($mkey, $akch, 0, $expire);
		if($_GET['debug'] == "ms123")
		{
			var_dump($r);
			echo "<br>";
		}
	}
}
*/
mysql_close($db);
?>