X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FSearch.php;h=e26cc0edc3a55792b682ad397cac11e4d87fafb7;hb=fb63274aafa176ee2eff964e809306719e80c847;hp=bd4a81a5f4bd7582115af4ca383514a85ffad7aa;hpb=3d67987cbce975b60932b01c7b61131a01e5913a;p=friendica.git diff --git a/src/Core/Search.php b/src/Core/Search.php index bd4a81a5f4..e26cc0edc3 100644 --- a/src/Core/Search.php +++ b/src/Core/Search.php @@ -33,22 +33,24 @@ class Search extends BaseObject * * @param string $user The user to search for * - * @return ResultList|null + * @return ResultList * @throws HTTPException\InternalServerErrorException * @throws \ImagickException */ public static function getContactsFromProbe($user) { + $emptyResultList = new ResultList(1, 0, 1); + if ((filter_var($user, FILTER_VALIDATE_EMAIL) && Network::isEmailDomainValid($user)) || (substr(Strings::normaliseLink($user), 0, 7) == "http://")) { $user_data = Probe::uri($user); if (empty($user_data)) { - return null; + return $emptyResultList; } if (!(in_array($user_data["network"], [Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::OSTATUS, Protocol::DIASPORA]))) { - return null; + return $emptyResultList; } $contactDetails = Contact::getDetailsByURL(defaults($user_data, 'url', ''), local_user()); @@ -67,9 +69,8 @@ class Search extends BaseObject ); return new ResultList(1, 1, 1, [$result]); - } else { - return null; + return $emptyResultList; } } @@ -82,7 +83,7 @@ class Search extends BaseObject * @param int $type specific type of searching * @param int $page * - * @return ResultList|null + * @return ResultList * @throws HTTPException\InternalServerErrorException */ public static function getContactsFromGlobalDirectory($search, $type = self::TYPE_ALL, $page = 1) @@ -106,15 +107,14 @@ class Search extends BaseObject $searchUrl .= '&page=' . $page; } - $red = 0; - $resultJson = Network::fetchUrl($searchUrl, false, $red, 0, 'application/json'); + $resultJson = Network::fetchUrl($searchUrl, false, 0, 'application/json'); $results = json_decode($resultJson, true); $resultList = new ResultList( defaults($results, 'page', 1), - defaults($results, 'count', 1), - defaults($results, 'itemsperpage', 1) + defaults($results, 'count', 0), + defaults($results, 'itemsperpage', 30) ); $profiles = defaults($results, 'profiles', []); @@ -148,7 +148,7 @@ class Search extends BaseObject * @param int $start * @param int $itemPage * - * @return ResultList|null + * @return ResultList * @throws HTTPException\InternalServerErrorException */ public static function getContactsFromLocalDirectory($search, $type = self::TYPE_ALL, $start = 0, $itemPage = 80) @@ -173,8 +173,10 @@ class Search extends BaseObject ($type === self::TYPE_FORUM), ]); + $resultList = new ResultList($start, $itemPage, $count); + if (empty($count)) { - return null; + return $resultList; } $data = DBA::select('gcontact', ['nurl'], [ @@ -195,11 +197,9 @@ class Search extends BaseObject ]); if (!DBA::isResult($data)) { - return null; + return $resultList; } - $resultList = new ResultList($start, $itemPage, $count); - while ($row = DBA::fetch($data)) { if (PortableContact::alternateOStatusUrl($row["nurl"])) { continue;