diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2015-10-25 14:11:23 +0100 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2015-10-25 14:11:23 +0100 |
commit | 29dba079be70723f5202ebfafbae4771b18e7eb0 (patch) | |
tree | 93ccd72121cac75575ab9add5e4d67c3159e612a /service | |
parent | c10358a0f69789306d65daf23f79a07c271268e2 (diff) |
fix #877
Diffstat (limited to 'service')
-rw-r--r-- | service/feedservice.php | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/service/feedservice.php b/service/feedservice.php index 56e43b394..94912017c 100644 --- a/service/feedservice.php +++ b/service/feedservice.php @@ -229,15 +229,27 @@ class FeedService extends Service { $item->setFeedId($existingFeed->getId()); try { - $existingItem = $this->itemMapper->findByGuidHash( + $dbItem = $this->itemMapper->findByGuidHash( $item->getGuidHash(), $feedId, $userId ); - if ($forceUpdate) { - $existingItem->setBody( + // in case of update + if ($forceUpdate || + $item->getPubDate() > $dbItem->getPubDate()) { + + $dbItem->setTitle($item->getTitle()); + $dbItem->setUrl($item->getUrl()); + $dbItem->setAuthor($item->getAuthor()); + $dbItem->setSearchIndex($item->getSearchIndex()); + $dbItem->setRtl($item->getRtl()); + $dbItem->setLastModified($item->getLastModified()); + $dbItem->setPubDate($item->getPubDate()); + $dbItem->setEnclosureMime($item->getEnclosureMime()); + $dbItem->setEnclosureLink($item->getEnclosureLink()); + $dbItem->setBody( $this->purifier->purify($item->getBody()) ); - $this->itemMapper->update($existingItem); + $this->itemMapper->update($dbItem); } } catch(DoesNotExistException $ex){ $item->setBody( |