From 04f66c9710faf9438adcc69028eed082c98a5178 Mon Sep 17 00:00:00 2001 From: Daniel Schaal Date: Wed, 4 Jan 2017 11:09:46 +0100 Subject: Add updatedDate to item model (#81) * Update picoFeed to v0.1.28 * Add updated_date to database and bump version to 10.1.1 * Add updatedDate to item model * Check for updatedDate when updating a feed * Fix unit test to check for newer updatedDate --- lib/Db/Item.php | 6 ++++++ lib/Fetcher/FeedFetcher.php | 3 ++- lib/Service/FeedService.php | 3 ++- 3 files changed, 10 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/Db/Item.php b/lib/Db/Item.php index 943002c32..f19843c8e 100644 --- a/lib/Db/Item.php +++ b/lib/Db/Item.php @@ -57,6 +57,7 @@ class Item extends Entity implements IAPI, \JsonSerializable { protected $title; protected $author; protected $pubDate; + protected $updatedDate; protected $body; protected $enclosureMime; protected $enclosureLink; @@ -69,6 +70,7 @@ class Item extends Entity implements IAPI, \JsonSerializable { public function __construct() { $this->addType('pubDate', 'integer'); + $this->addType('updatedDate', 'integer'); $this->addType('feedId', 'integer'); $this->addType('status', 'integer'); $this->addType('rtl', 'boolean'); @@ -122,6 +124,7 @@ class Item extends Entity implements IAPI, \JsonSerializable { 'title' => $this->getTitle(), 'author' => $this->getAuthor(), 'pubDate' => $this->getPubDate(), + 'updatedDate' => $this->getUpdatedDate(), 'body' => $this->getBody(), 'enclosureMime' => $this->getEnclosureMime(), 'enclosureLink' => $this->getEnclosureLink(), @@ -144,6 +147,7 @@ class Item extends Entity implements IAPI, \JsonSerializable { 'title' => $this->getTitle(), 'author' => $this->getAuthor(), 'pubDate' => $this->getPubDate(), + 'updatedDate' => $this->getUpdatedDate(), 'body' => $this->getBody(), 'enclosureMime' => $this->getEnclosureMime(), 'enclosureLink' => $this->getEnclosureLink(), @@ -164,6 +168,7 @@ class Item extends Entity implements IAPI, \JsonSerializable { 'title' => $this->getTitle(), 'author' => $this->getAuthor(), 'pubDate' => $this->getPubDate(), + 'updatedDate' => $this->getUpdatedDate(), 'body' => $this->getBody(), 'enclosureMime' => $this->getEnclosureMime(), 'enclosureLink' => $this->getEnclosureLink(), @@ -186,6 +191,7 @@ class Item extends Entity implements IAPI, \JsonSerializable { $item->setTitle($import['title']); $item->setAuthor($import['author']); $item->setPubDate($import['pubDate']); + $item->setUpdatedDate($import['updatedDate']); $item->setBody($import['body']); $item->setEnclosureMime($import['enclosureMime']); $item->setEnclosureLink($import['enclosureLink']); diff --git a/lib/Fetcher/FeedFetcher.php b/lib/Fetcher/FeedFetcher.php index 9336d6914..194a927f9 100644 --- a/lib/Fetcher/FeedFetcher.php +++ b/lib/Fetcher/FeedFetcher.php @@ -240,7 +240,8 @@ class FeedFetcher implements IFeedFetcher { $item->setUrl($parsedItem->getUrl()); $item->setGuid($parsedItem->getId()); $item->setGuidHash($item->getGuid()); - $item->setPubDate($parsedItem->getDate()->getTimestamp()); + $item->setPubDate($parsedItem->getPublishedDate()->getTimestamp()); + $item->setUpdatedDate($parsedItem->getUpdatedDate()->getTimestamp()); $item->setRtl($this->determineRtl($parsedItem, $parsedFeed)); // unescape content because angularjs helps against XSS diff --git a/lib/Service/FeedService.php b/lib/Service/FeedService.php index c1c1aa64a..f17b759e3 100644 --- a/lib/Service/FeedService.php +++ b/lib/Service/FeedService.php @@ -246,7 +246,7 @@ class FeedService extends Service { // in case of update if ($forceUpdate || - $item->getPubDate() > $dbItem->getPubDate()) { + $item->getUpdatedDate() > $dbItem->getUpdatedDate()) { $dbItem->setTitle($item->getTitle()); $dbItem->setUrl($item->getUrl()); @@ -255,6 +255,7 @@ class FeedService extends Service { $dbItem->setRtl($item->getRtl()); $dbItem->setLastModified($item->getLastModified()); $dbItem->setPubDate($item->getPubDate()); + $dbItem->setUpdatedDate($item->getUpdatedDate()); $dbItem->setEnclosureMime($item->getEnclosureMime()); $dbItem->setEnclosureLink($item->getEnclosureLink()); $dbItem->setBody( -- cgit v1.2.3