diff options
Diffstat (limited to 'service/feedservice.php')
-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( |