summaryrefslogtreecommitdiffstats
path: root/service
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2015-10-25 14:11:23 +0100
committerBernhard Posselt <dev@bernhard-posselt.com>2015-10-25 14:11:23 +0100
commit29dba079be70723f5202ebfafbae4771b18e7eb0 (patch)
tree93ccd72121cac75575ab9add5e4d67c3159e612a /service
parentc10358a0f69789306d65daf23f79a07c271268e2 (diff)
fix #877
Diffstat (limited to 'service')
-rw-r--r--service/feedservice.php20
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(