summaryrefslogtreecommitdiffstats
path: root/fetcher
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2014-10-22 22:19:14 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2014-10-22 22:19:14 +0200
commitea6f93d515f226f67202aafc107b1e4098ddf036 (patch)
tree5293b982086fa51e4274e955a9217b8436940c74 /fetcher
parent1d0d912870adcb4ed0dfba31c68f61340ed3304d (diff)
use factories for reader and favicon since they have state and cant be reused
Diffstat (limited to 'fetcher')
-rw-r--r--fetcher/feedfetcher.php25
1 files changed, 14 insertions, 11 deletions
diff --git a/fetcher/feedfetcher.php b/fetcher/feedfetcher.php
index 4efe0215c..b7ddce91a 100644
--- a/fetcher/feedfetcher.php
+++ b/fetcher/feedfetcher.php
@@ -13,21 +13,22 @@
namespace OCA\News\Fetcher;
-use \PicoFeed\Favicon;
-use \PicoFeed\Reader;
-
use \OCA\News\Db\Item;
use \OCA\News\Db\Feed;
+use \OCA\News\Utility\PicoFeedFaviconFactory;
+use \OCA\News\Utility\PicoFeedReaderFactory;
class FeedFetcher implements IFeedFetcher {
- private $faviconFetcher;
- private $reader;
+ private $faviconFactory;
+ private $readerFactory;
private $time;
- public function __construct(Reader $reader, Favicon $faviconFetcher, $time){
- $this->faviconFetcher = $faviconFetcher;
- $this->reader = $reader;
+ public function __construct(PicoFeedReaderFactory $readerFactory,
+ PicoFeedFaviconFactory $faviconFactory,
+ $time){
+ $this->faviconFactory = $faviconFactory;
+ $this->readerFactory = $readerFactory;
$this->time = $time;
}
@@ -57,7 +58,8 @@ class FeedFetcher implements IFeedFetcher {
*/
public function fetch($url, $getFavicon=true, $lastModified=null,
$etag=null) {
- $resource = $this->reader->download($url, $lastModified, $etag);
+ $reader = $this->readerFactory->build();
+ $resource = $reader->download($url, $lastModified, $etag);
$modified = $resource->getLastModified();
$etag = $resource->getEtag();
@@ -67,7 +69,7 @@ class FeedFetcher implements IFeedFetcher {
}
try {
- $parser = $this->reader->getParser();
+ $parser = $reader->getParser();
if (!$parser) {
throw new \Exception(
@@ -184,7 +186,8 @@ class FeedFetcher implements IFeedFetcher {
$feed->setAdded($this->time->getTime());
if ($getFavicon) {
- $favicon = $this->faviconFetcher->find($feed->getLink());
+ $faviconFetcher = $this->faviconFactory->build();
+ $favicon = $faviconFetcher->find($feed->getLink());
$feed->setFaviconLink($favicon);
}