From 5858aaf7fc4f4ebfe7cc4036d46a93397b06ccde Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Wed, 1 Apr 2020 02:08:45 +0200 Subject: API return proper newestItemTimestampUsec (#2854) * API return proper newestItemTimestampUsec #fix https://github.com/FreshRSS/FreshRSS/issues/2853 * Minor naming * Add newestItemTimestampUsec for labels * Do not use t.name after all --- p/api/greader.php | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'p/api') diff --git a/p/api/greader.php b/p/api/greader.php index 2d1acca16..69962e9d5 100644 --- a/p/api/greader.php +++ b/p/api/greader.php @@ -411,14 +411,17 @@ function unreadCount() { //http://blog.martindoms.com/2009/10/16/using-the-googl $totalLastUpdate = 0; $categoryDAO = FreshRSS_Factory::createCategoryDao(); + $feedDAO = FreshRSS_Factory::createFeedDao(); + $feedsNewestItemUsec = $feedDAO->listFeedsNewestItemUsec(); + foreach ($categoryDAO->listCategories(true, true) as $cat) { $catLastUpdate = 0; foreach ($cat->feeds() as $feed) { - $lastUpdate = $feed->lastUpdate(); + $lastUpdate = isset($feedsNewestItemUsec['f_' . $feed->id()]) ? $feedsNewestItemUsec['f_' . $feed->id()] : 0; $unreadcounts[] = array( 'id' => 'feed/' . $feed->id(), 'count' => $feed->nbNotRead(), - 'newestItemTimestampUsec' => $lastUpdate . '000000', + 'newestItemTimestampUsec' => $lastUpdate, ); if ($catLastUpdate < $lastUpdate) { $catLastUpdate = $lastUpdate; @@ -427,7 +430,7 @@ function unreadCount() { //http://blog.martindoms.com/2009/10/16/using-the-googl $unreadcounts[] = array( 'id' => 'user/-/label/' . htmlspecialchars_decode($cat->name(), ENT_QUOTES), 'count' => $cat->nbNotRead(), - 'newestItemTimestampUsec' => $catLastUpdate . '000000', + 'newestItemTimestampUsec' => $catLastUpdate, ); $totalUnreads += $cat->nbNotRead(); if ($totalLastUpdate < $catLastUpdate) { @@ -436,17 +439,20 @@ function unreadCount() { //http://blog.martindoms.com/2009/10/16/using-the-googl } $tagDAO = FreshRSS_Factory::createTagDao(); + $tagsNewestItemUsec = $tagDAO->listTagsNewestItemUsec(); foreach ($tagDAO->listTags(true) as $label) { + $lastUpdate = isset($tagsNewestItemUsec['t_' . $label->id()]) ? $tagsNewestItemUsec['t_' . $label->id()] : 0; $unreadcounts[] = array( 'id' => 'user/-/label/' . htmlspecialchars_decode($label->name(), ENT_QUOTES), 'count' => $label->nbUnread(), + 'newestItemTimestampUsec' => $lastUpdate, ); } $unreadcounts[] = array( 'id' => 'user/-/state/com.google/reading-list', 'count' => $totalUnreads, - 'newestItemTimestampUsec' => $totalLastUpdate . '000000', + 'newestItemTimestampUsec' => $totalLastUpdate, ); echo json_encode(array( -- cgit v1.2.3