From ef89309a89ce9168a2cde6d0e92675d1f77906fc Mon Sep 17 00:00:00 2001 From: NoPlagiarism <37241775+NoPlagiarism@users.noreply.github.com> Date: Thu, 1 Jun 2023 15:04:18 +0500 Subject: [PATCH] [API] Implement timestamp filter in Newsfeed API (#809) * Implement timestamp filter in Newsfeed API * Merge new parameter into Newsfeed.get --- VKAPI/Handlers/Newsfeed.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/VKAPI/Handlers/Newsfeed.php b/VKAPI/Handlers/Newsfeed.php index 16bd3123..d9992430 100644 --- a/VKAPI/Handlers/Newsfeed.php +++ b/VKAPI/Handlers/Newsfeed.php @@ -7,7 +7,7 @@ use openvk\VKAPI\Handlers\Wall; final class Newsfeed extends VKAPIRequestHandler { - function get(string $fields = "", int $start_from = 0, int $offset = 0, int $count = 30, int $extended = 0, int $forGodSakePleaseDoNotReportAboutMyOnlineActivity = 0) + function get(string $fields = "", int $start_from = 0, int $start_time = 0, int $end_time = 0, int $offset = 0, int $count = 30, int $extended = 0, int $forGodSakePleaseDoNotReportAboutMyOnlineActivity = 0) { $this->requireUser(); @@ -33,6 +33,8 @@ final class Newsfeed extends VKAPIRequestHandler ->where("wall IN (?)", $ids) ->where("deleted", 0) ->where("id < (?)", empty($start_from) ? PHP_INT_MAX : $start_from) + ->where("? <= created", empty($start_time) ? 0 : $start_time) + ->where("? >= created", empty($end_time) ? PHP_INT_MAX : $end_time) ->order("created DESC"); $rposts = []; @@ -45,7 +47,7 @@ final class Newsfeed extends VKAPIRequestHandler return $response; } - function getGlobal(string $fields = "", int $start_from = 0, int $offset = 0, int $count = 30, int $extended = 0) + function getGlobal(string $fields = "", int $start_from = 0, int $start_time = 0, int $end_time = 0, int $offset = 0, int $count = 30, int $extended = 0) { $this->requireUser(); @@ -55,7 +57,9 @@ final class Newsfeed extends VKAPIRequestHandler $queryBase .= " AND `nsfw` = 0"; $start_from = empty($start_from) ? PHP_INT_MAX : $start_from; - $posts = DatabaseConnection::i()->getConnection()->query("SELECT `posts`.`id` " . $queryBase . " AND `posts`.`id` < " . $start_from . " ORDER BY `created` DESC LIMIT " . $count . " OFFSET " . $offset); + $start_time = empty($start_time) ? 0 : $start_time; + $end_time = empty($end_time) ? PHP_INT_MAX : $end_time; + $posts = DatabaseConnection::i()->getConnection()->query("SELECT `posts`.`id` " . $queryBase . " AND `posts`.`id` <= " . $start_from . " AND " . $start_time . " <= `posts`.`created` AND `posts`.`created` <= " . $end_time . " ORDER BY `created` DESC LIMIT " . $count . " OFFSET " . $offset); $rposts = []; $ids = [];