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;