]> git.mxchange.org Git - friendica.git/commitdiff
Support post URL search term in api_search()
authorHypolite Petovan <hypolite@mrpetovan.com>
Thu, 12 Dec 2019 22:04:59 +0000 (17:04 -0500)
committerHypolite Petovan <hypolite@mrpetovan.com>
Fri, 13 Dec 2019 01:59:19 +0000 (20:59 -0500)
include/api.php

index 0828d9646e22b1d80b737e6c2edd7168d07bb019..fb166cfb4a5e83520609a266f7ab17386c504046 100644 (file)
@@ -1507,7 +1507,9 @@ function api_search($type)
        $a = \get_app();
        $user_info = api_get_user($a);
 
-       if (api_user() === false || $user_info === false) { throw new ForbiddenException(); }
+       if (api_user() === false || $user_info === false) {
+               throw new ForbiddenException();
+       }
 
        if (empty($_REQUEST['q'])) {
                throw new BadRequestException('q parameter is required.');
@@ -1571,7 +1573,21 @@ function api_search($type)
                }
        }
 
-       $statuses = Item::selectForUser(api_user(), [], $condition, $params);
+       $statuses = [];
+
+       if (parse_url($searchTerm, PHP_URL_SCHEME) != '') {
+               $id = Item::fetchByLink($searchTerm, api_user());
+               if (!$id) {
+                       // Public post
+                       $id = Item::fetchByLink($searchTerm);
+               }
+
+               if (!empty($id)) {
+                       $statuses = Item::select([], ['id' => $id]);
+               }
+       }
+
+       $statuses = $statuses ?: Item::selectForUser(api_user(), [], $condition, $params);
 
        $data['status'] = api_format_items(Item::inArray($statuses), $user_info);