diff options
| author | 2018-05-20 12:21:41 +0200 | |
|---|---|---|
| committer | 2018-05-20 12:21:41 +0200 | |
| commit | 92e8c4b6bf2b4f61698a99473f8fa5c343a99403 (patch) | |
| tree | d94d3d4e1df797f431b2e1f1939777e34138463e /app/Models | |
| parent | fd7b0c1e7854b00f222cad96c376ef8a7d547d7d (diff) | |
| parent | 6881d362b1ff4e153580ee7bf5cdf80a4428516d (diff) | |
Merge branch 'dev' of https://github.com/FreshRSS/FreshRSS into FreshRSS/dev
Diffstat (limited to 'app/Models')
| -rw-r--r-- | app/Models/Feed.php | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/app/Models/Feed.php b/app/Models/Feed.php index 5ed9b1834..7eb079f15 100644 --- a/app/Models/Feed.php +++ b/app/Models/Feed.php @@ -335,6 +335,8 @@ class FreshRSS_Feed extends Minz_Model { public function loadEntries($feed) { $entries = array(); + $guids = array(); + $hasUniqueGuids = true; foreach ($feed->get_items() as $item) { $title = html_only_entity_decode(strip_tags($item->get_title())); @@ -375,9 +377,13 @@ class FreshRSS_Feed extends Minz_Model { } } + $guid = $item->get_id(false, false); + $hasUniqueGuids &= empty($guids['_' . $guid]); + $guids['_' . $guid] = true; + $entry = new FreshRSS_Entry( $this->id(), - $item->get_id(false, false), + $guid, $title === null ? '' : $title, $author === null ? '' : html_only_entity_decode(strip_tags($author->name == null ? $author->email : $author->name)), $content === null ? '' : $content, @@ -392,6 +398,23 @@ class FreshRSS_Feed extends Minz_Model { unset($item); } + $hasBadGuids = $this->attributes('hasBadGuids'); + if ($hasBadGuids != !$hasUniqueGuids) { + $hasBadGuids = !$hasUniqueGuids; + if ($hasBadGuids) { + Minz_Log::warning('Feed has invalid GUIDs: ' . $this->url); + } else { + Minz_Log::warning('Feed has valid GUIDs again: ' . $this->url); + } + $feedDAO = FreshRSS_Factory::createFeedDao(); + $feedDAO->updateFeedAttribute($this, 'hasBadGuids', $hasBadGuids); + } + if (!$hasUniqueGuids) { + foreach ($entries as $entry) { + $entry->_guid(''); + } + } + $this->entries = $entries; } |
