diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-10-22 11:35:12 +0200 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-10-22 11:35:12 +0200 |
commit | c102123dc902b855842d3e9942b4629abba83ebb (patch) | |
tree | 8d3058583cc0727ef79daa6d5ab34b2dd669fb0e /service | |
parent | dc8b8301d387d48e38624423cba9cf5323f26291 (diff) |
add caching
Diffstat (limited to 'service')
-rw-r--r-- | service/feedservice.php | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/service/feedservice.php b/service/feedservice.php index 872f05ef8..6ecf543b1 100644 --- a/service/feedservice.php +++ b/service/feedservice.php @@ -192,14 +192,25 @@ class FeedService extends Service { } try { - list(, $items) = $this->feedFetcher->fetch( - $existingFeed->getUrl(), false); + list($fetchedFeed, $items) = $this->feedFetcher->fetch( + $existingFeed->getUrl(), + false, + $existingFeed->getLastModified(), + $existingFeed->getEtag() + ); + + // if there is no feed it means that no update took place + if (!$fetchedFeed) { + return $existingFeed; + } // update number of articles on every feed update if($existingFeed->getArticlesPerUpdate() !== count($items)) { $existingFeed->setArticlesPerUpdate(count($items)); - $this->feedMapper->update($existingFeed); } + $existingFeed->setLastModified($fetchedFeed->getLastModified()); + $existingFeed->setEtag($fetchedFeed->getEtag()); + $this->feedMapper->update($existingFeed); // insert items in reverse order because the first one is // usually the newest item |