summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorDaniel Schaal <daniel@schaal.email>2017-01-04 11:09:46 +0100
committerBernhard Posselt <BernhardPosselt@users.noreply.github.com>2017-01-04 11:09:46 +0100
commit04f66c9710faf9438adcc69028eed082c98a5178 (patch)
tree3e11906b5e318b0fdddccfe6e8b9d30af44dcb0f /lib
parent41932775bcf79d5f80060e87b5051bd9b5937c5f (diff)
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
Diffstat (limited to 'lib')
-rw-r--r--lib/Db/Item.php6
-rw-r--r--lib/Fetcher/FeedFetcher.php3
-rw-r--r--lib/Service/FeedService.php3
3 files changed, 10 insertions, 2 deletions
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(