From 306036c62613fd849a80c83c50cd220f75e64c90 Mon Sep 17 00:00:00 2001
From: Fabio Comuni <fabrix.xm@gmail.com>
Date: Mon, 24 Oct 2011 13:02:38 +0200
Subject: [PATCH] cache api

---
 boot.php           |  1 +
 include/cache.php  | 29 +++++++++++++++++++++++++++++
 include/oembed.php | 16 ++++++----------
 include/poller.php |  3 +--
 4 files changed, 37 insertions(+), 12 deletions(-)
 create mode 100644 include/cache.php

diff --git a/boot.php b/boot.php
index 017e21814b..9623b4b141 100644
--- a/boot.php
+++ b/boot.php
@@ -6,6 +6,7 @@ require_once('include/plugin.php');
 require_once('include/text.php');
 require_once("include/pgettext.php");
 require_once('include/nav.php');
+require_once('include/cache.php');
 
 define ( 'FRIENDIKA_PLATFORM',     'Free Friendika');
 define ( 'FRIENDIKA_VERSION',      '2.3.1140' );
diff --git a/include/cache.php b/include/cache.php
new file mode 100644
index 0000000000..082974c61a
--- /dev/null
+++ b/include/cache.php
@@ -0,0 +1,29 @@
+<?php
+	/**
+	 *  cache api
+	 */
+	 
+	class Cache {
+		public static function get($key){
+			$r = q("SELECT `v` FROM `cache` WHERE `k`='%s'",
+				dbesc($key)
+			);
+			
+			if (count($r)) return $r[0]['v'];
+			return null;
+		}
+		
+		public static function set($key,$value) {
+			q("INSERT INTO `cache` VALUES ('%s','%s','%s')",
+				dbesc($key),
+				dbesc($value),
+				dbesc(datetime_convert()));
+		}
+		
+		public static function clear(){
+			q("DELETE FROM `cache` WHERE `updated` < '%s'",
+				dbesc(datetime_convert('UTC','UTC',"now - 30 days")));			
+		}
+		
+	}
+	 
diff --git a/include/oembed.php b/include/oembed.php
index a8f6636ff7..d40ceb3fd5 100644
--- a/include/oembed.php
+++ b/include/oembed.php
@@ -8,12 +8,9 @@ function oembed_replacecb($matches){
 
 function oembed_fetch_url($embedurl){
 
-	$r = q("SELECT v FROM `cache` WHERE k='%s'",
-				dbesc($embedurl));
+	$txt = Cache::get($embedurl);
 				
-	if(count($r)){
-		$txt = $r[0]['v'];
-	} else {
+	if(is_null($txt)){
 		$txt = "";
 		
 		// try oembed autodiscovery
@@ -44,10 +41,8 @@ function oembed_fetch_url($embedurl){
 		if ($txt[0]!="{") $txt='{"type":"error"}';
 	
 		//save in cache
-		/*q("INSERT INTO `cache` VALUES ('%s','%s','%s')",
-			dbesc($embedurl),
-			dbesc($txt),
-			dbesc(datetime_convert()));*/
+		Cache::set($embedurl,$txt);
+
 	}
 	
 	$j = json_decode($txt);
@@ -154,4 +149,5 @@ function oembed_html2bbcode($text) {
 	} 
 }
 
-?>
+
+
diff --git a/include/poller.php b/include/poller.php
index cef0647b59..a19f0716f6 100644
--- a/include/poller.php
+++ b/include/poller.php
@@ -64,8 +64,7 @@ function poller_run($argv, $argc){
 	}
 
 	// clear old cache
-	q("DELETE FROM `cache` WHERE `updated` < '%s'",
-		dbesc(datetime_convert('UTC','UTC',"now - 30 days")));
+	Cache::clear();
 
 	$manual_id  = 0;
 	$generation = 0;