<?
/**
 * RSS ENgine Parser 
 * Yannick 6/31/10
 * Version 1
 *
 * @Array   All parameter should be passed in an array
 * Array[KEY]=>[VALUE]
 * List available :
 * Database on 30.32.
 */

		class lib_Memcache 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.30.51", self::$port);
			}
			return self::$instance;
		}
	}

//require_once('/lib/php/include/memcache.php');
############ USAGE #########
# 	
#	$data = array(  "feed" => "FeedName",
#					"category" => "CategoryName",
#					"keyword" => "Search",
#					"limit" => "10");
#	$RSSFeed = RssEngine($data);
#
##############################
function RssEngine($Input)
{
	##### INIT ######
	if(!$Input['limit'])
		$Input['limit'] = 10;

	#### MEMCACHE SETUP #####
	//lib_InitMemcache();	
	$expire = 60*60*1;
	if ($Input['category']){
		$mkey = "RssCategory__".md5($Input['category']);
	} elseif($Input['keyword']){
		$mkey = "RssKeyword__".md5($Input['keyword']);
	}
	$ServerArray = array("192.168.16.221");
	if(stristr($_SERVER['HTTP_HOST'],"yield.com")){
		$mkey .= "___";
	}
	
	if (!$Data_return = lib_Memcache::mGet($ServerArray)->get($mkey))
	{
		$db = ConnectToSlaveLP();
		##### FETCH FEED FROM DATABASE ######

		if($Input['category'])
		{
			
			$query = "SELECT id, title, description, link, source, date 
					FROM rss_article
					WHERE category like '".$Input['category']."%' 
					limit ".$Input['limit'];
		}
		else if($Input['keyword'])
		{
			$query = "SELECT id , title, description, link, source, date 
					FROM rss_article
					WHERE title like '%".strtolower($Input['keyword'])."%'
					limit ".$Input['limit'];
		}
		$result = mysql_query($query, $db);

		for($i = 0; $row = mysql_fetch_assoc($result); $i++)
		{
			$Data[$i]['id'] = $row['id'];
			$Data[$i]['title'] = trim($row['title']);
			$Data[$i]['description'] = trim($row['description']);
			$Data[$i]['link'] = trim($row['link']);
			$Data[$i]['source'] = trim($row['source']);
			$Data[$i]['date'] = trim($row['date']);			
			$Data[$i]['titleLink'] = trim($Data[$i]['title']);
			$Data[$i]['titleLink'] = str_replace('?', '', $Data[$i]['titleLink']);
			$Data[$i]['titleLink'] = str_replace('/', '', $Data[$i]['titleLink']);
			$Data[$i]['titleLink'] = str_replace(':', '', $Data[$i]['titleLink']);
			$Data[$i]['titleLink'] = str_replace(' ', '-', $Data[$i]['titleLink']);
			$Data[$i]['titleLink'] = str_replace('"', '', $Data[$i]['titleLink']);
			$Data[$i]['titleLink'] = str_replace('%', '', $Data[$i]['titleLink']);
			$Data[$i]['titleLink'] = str_replace('*', '', $Data[$i]['titleLink']);
		}
		
		if (is_array($Data) && count($Data)>0){
			lib_Memcache::mGet($ServerArray)->set($mkey, $Data, 0, $expire);
		} 
	} else {
		if (is_array($Data_return) && count($Data_return) > 0){
			$Data = $Data_return;
		}
	}
	return($Data);		
}

##############################
#
#	$RSSFeed = RssEngineDetail($ArticleID);
#
##############################
function RssEngineDetail($ArticleID)
{
	##### FETCH FEED FROM DATABASE ######
	$db = ConnectToRssEngine();

		$query = "SELECT title, description, link, source, pubDate, date 
				FROM rss_article
				WHERE id = '".$ArticleID."'";

		$result = mysql_query($query, $db);
		$row = mysql_fetch_assoc($result);

		##### INSERT READ STATUS TO KEEP THE ARTICLE ####
		if($row['title'])
		{
			$query = "UPDATE rss_article
						SET `read` = 1
						WHERE id = '".$ArticleID."'";

			$result = mysql_query($query, $db);
		}

		$Data['title'] = $row['title'];
		$Data['description'] = $row['description'];
		$Data['link'] = $row['link'];
		$Data['source'] = $row['source'];
		if($row['pubDate'])
			$Data['date'] = $row['pubDate'];
		else
			$Data['date'] = $row['date'];

	return($Data);		
}

?>
