diff --git a/classes/api.php b/classes/api.php index 08c1846d2..2d420e527 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 1898aa2ea..996e99f42 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,