From 0bd172cd6a6f8ddad4aea1b18fe6d2b1e27f8690 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 5 Aug 2015 10:13:30 +0300 Subject: [PATCH] experimental: if using adaptive/unread mode w/ auto catchup don't calculate offsets because we're only interested in top $limit headlines anyway --- classes/api.php | 3 ++- include/functions2.php | 14 +++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/classes/api.php b/classes/api.php index 08c1846d..2d420e52 100644 --- a/classes/api.php +++ b/classes/api.php @@ -686,7 +686,8 @@ class API extends Handler { "offset" => $offset, "since_id" => $since_id, "include_children" => $include_nested, - "check_first_id" => $check_first_id + "check_first_id" => $check_first_id, + "api_request" => true ); $qfh_ret = queryFeedHeadlines($params); diff --git a/include/functions2.php b/include/functions2.php index 1898aa2e..996e99f4 100644 --- a/include/functions2.php +++ b/include/functions2.php @@ -463,6 +463,7 @@ $override_vfeed = isset($params["override_vfeed"]) ? $params["override_vfeed"] : false; $start_ts = isset($params["start_ts"]) ? $params["start_ts"] : false; $check_first_id = isset($params["check_first_id"]) ? $params["check_first_id"] : false; + $api_request = isset($params["api_request"]) ? $params["api_request"] : false; $ext_tables_part = ""; $query_strategy_part = ""; @@ -491,6 +492,7 @@ } $view_query_part = ""; + $disable_offsets = false; if ($view_mode == "adaptive") { if ($search) { @@ -502,9 +504,10 @@ if ($cat_view && $feed > 0 && $include_children) $unread += getCategoryChildrenUnread($feed); - if ($unread > 0) - $view_query_part = " unread = true AND "; - + if ($unread > 0) { + $view_query_part = " unread = true AND "; + $disable_offsets = !$api_request && get_pref("CDM_AUTO_CATCHUP"); + } } } @@ -522,6 +525,7 @@ if ($view_mode == "unread" && $feed != -6) { $view_query_part = " unread = true AND "; + $disable_offsets = !$api_request && get_pref("CDM_AUTO_CATCHUP"); } if ($limit > 0) { @@ -762,6 +766,10 @@ } } + if ($disable_offsets) { + $offset_query_part = ""; + } + $query = "SELECT DISTINCT date_entered, guid, -- 2.39.5