aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xapp/Controllers/feedController.php10
-rw-r--r--app/Controllers/importExportController.php2
-rw-r--r--app/Models/EntryDAOPGSQL.php4
-rw-r--r--lib/lib_rss.php7
4 files changed, 8 insertions, 15 deletions
diff --git a/app/Controllers/feedController.php b/app/Controllers/feedController.php
index d5ae235ad..7f36e0388 100755
--- a/app/Controllers/feedController.php
+++ b/app/Controllers/feedController.php
@@ -377,17 +377,13 @@ class FreshRSS_feed_Controller extends Minz_ActionController {
$read_upon_reception = $feed->attributes('read_upon_reception') !== null ? (
$feed->attributes('read_upon_reception')
) : FreshRSS_Context::$user_conf->mark_when['reception'];
- if ($isNewFeed) {
- $id = min(time(), $entry_date) . uSecString();
- $entry->_isRead($read_upon_reception);
- } elseif ($entry_date < $date_min) {
- $id = min(time(), $entry_date) . uSecString();
+ $id = uTimeString();
+ $entry->_id($id);
+ if ($entry_date < $date_min) {
$entry->_isRead(true); //Old article that was not in database. Probably an error, so mark as read
} else {
- $id = uTimeString();
$entry->_isRead($read_upon_reception);
}
- $entry->_id($id);
$entry = Minz_ExtensionManager::callHook('entry_before_insert', $entry);
if ($entry === null) {
diff --git a/app/Controllers/importExportController.php b/app/Controllers/importExportController.php
index 80b9868ec..1d7176929 100644
--- a/app/Controllers/importExportController.php
+++ b/app/Controllers/importExportController.php
@@ -585,7 +585,7 @@ class FreshRSS_importExport_Controller extends Minz_ActionController {
$feed_id, $item['id'], $item['title'], $author,
$content, $url, $published, $is_read, $is_starred
);
- $entry->_id(min(time(), $entry->date(true)) . uSecString());
+ $entry->_id(uTimeString());
$entry->_tags($tags);
if (isset($newGuids[$entry->guid()])) {
diff --git a/app/Models/EntryDAOPGSQL.php b/app/Models/EntryDAOPGSQL.php
index aef258b6f..e571e457f 100644
--- a/app/Models/EntryDAOPGSQL.php
+++ b/app/Models/EntryDAOPGSQL.php
@@ -37,7 +37,9 @@ BEGIN
INSERT INTO `' . $this->prefix . 'entry` (id, guid, title, author, content, link, date, `lastSeen`, hash, is_read, is_favorite, id_feed, tags)
(SELECT rank + row_number() OVER(ORDER BY date) AS id, guid, title, author, content, link, date, `lastSeen`, hash, is_read, is_favorite, id_feed, tags
FROM `' . $this->prefix . 'entrytmp` AS etmp
- WHERE NOT EXISTS (SELECT 1 FROM `' . $this->prefix . 'entry` AS ereal WHERE etmp.id_feed = ereal.id_feed AND etmp.guid = ereal.guid)
+ WHERE NOT EXISTS (
+ SELECT 1 FROM `' . $this->prefix . 'entry` AS ereal
+ WHERE (etmp.id = ereal.id) OR (etmp.id_feed = ereal.id_feed AND etmp.guid = ereal.guid))
ORDER BY date);
DELETE FROM `' . $this->prefix . 'entrytmp` WHERE id <= maxrank;
END $$;';
diff --git a/lib/lib_rss.php b/lib/lib_rss.php
index 89e9ddfea..bff59d5cc 100644
--- a/lib/lib_rss.php
+++ b/lib/lib_rss.php
@@ -303,12 +303,7 @@ function lazyimg($content) {
function uTimeString() {
$t = @gettimeofday();
- return $t['sec'] . str_pad($t['usec'], 6, '0');
-}
-
-function uSecString() {
- $t = @gettimeofday();
- return str_pad($t['usec'], 6, '0');
+ return $t['sec'] . str_pad($t['usec'], 6, '0', STR_PAD_LEFT);
}
function invalidateHttpCache($username = '') {