summaryrefslogtreecommitdiff
path: root/providers/Provider.php
diff options
context:
space:
mode:
Diffstat (limited to 'providers/Provider.php')
-rw-r--r--providers/Provider.php8
1 files changed, 5 insertions, 3 deletions
diff --git a/providers/Provider.php b/providers/Provider.php
index 02031ad..2e14d2b 100644
--- a/providers/Provider.php
+++ b/providers/Provider.php
@@ -24,16 +24,18 @@ abstract class Provider {
abstract protected function _spamFilter($items);
+ abstract protected function _mapItems($content);
+
abstract protected function _sortContent($content);
protected function _getItems() {
$cacheFile = sprintf($this->_getCachePath(), $this->_feed);
$this->_cacheTime = file_exists($cacheFile) ? filemtime($cacheFile) : 0;
if ($this->_cacheTime > strtotime('-' . $this->_cacheTimeout)) {
- return json_decode($this->_getCache($cacheFile));
+ return unserialize($this->_getCache($cacheFile));
} else {
$content = $this->_fetchItems();
- file_put_contents($cacheFile, json_encode($content));
+ file_put_contents($cacheFile, serialize($content));
$this->_cacheTime = time();
return $content;
}
@@ -44,7 +46,7 @@ abstract class Provider {
if (isset($this->_options['spamfilter'])) {
$items = $this->_spamFilter($items);
}
- return $this->_sortContent($items);
+ return $this->_sortContent($this->_mapItems($items));
}
public function cacheTime() {