From 70699878ee57790fee98f4d66301a68c89ac643e Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 16 Jul 2020 19:22:38 +0000 Subject: [PATCH] Replaced more calls of "Probe::uri" with "Contact::getByURL" --- src/Core/Search.php | 10 ++---- src/Protocol/OStatus.php | 59 ++-------------------------------- src/Worker/SearchDirectory.php | 4 +-- 3 files changed, 7 insertions(+), 66 deletions(-) diff --git a/src/Core/Search.php b/src/Core/Search.php index 60137e66f..ea979610e 100644 --- a/src/Core/Search.php +++ b/src/Core/Search.php @@ -26,10 +26,8 @@ use Friendica\DI; use Friendica\Model\Contact; use Friendica\Model\GContact; use Friendica\Network\HTTPException; -use Friendica\Network\Probe; use Friendica\Object\Search\ContactResult; use Friendica\Object\Search\ResultList; -use Friendica\Protocol\PortableContact; use Friendica\Util\Network; use Friendica\Util\Strings; @@ -64,8 +62,7 @@ class Search if ((filter_var($user, FILTER_VALIDATE_EMAIL) && Network::isEmailDomainValid($user)) || (substr(Strings::normaliseLink($user), 0, 7) == "http://")) { - /// @todo Possibly use "getIdForURL" instead? - $user_data = Probe::uri($user); + $user_data = Contact::getByURL($user); if (empty($user_data)) { return $emptyResultList; } @@ -74,9 +71,6 @@ class Search return $emptyResultList; } - // Ensure that we do have a contact entry - Contact::getIdForURL($user_data['url'] ?? ''); - $contactDetails = Contact::getByURLForUser($user_data['url'] ?? '', local_user()); $result = new ContactResult( @@ -87,7 +81,7 @@ class Search $user_data['photo'] ?? '', $user_data['network'] ?? '', $contactDetails['id'] ?? 0, - 0, + $user_data['id'] ?? 0, $user_data['tags'] ?? '' ); diff --git a/src/Protocol/OStatus.php b/src/Protocol/OStatus.php index 1ab8f9b80..0b95a3a19 100644 --- a/src/Protocol/OStatus.php +++ b/src/Protocol/OStatus.php @@ -1617,59 +1617,6 @@ class OStatus return $source; } - /** - * Fetches contact data from the contact or the gcontact table - * - * @param string $url URL of the contact - * @param array $owner Contact data of the poster - * - * @return array Contact array - * @throws \Friendica\Network\HTTPException\InternalServerErrorException - * @throws \ImagickException - */ - private static function contactEntry($url, array $owner) - { - $r = q( - "SELECT * FROM `contact` WHERE `nurl` = '%s' AND `uid` IN (0, %d) ORDER BY `uid` DESC LIMIT 1", - DBA::escape(Strings::normaliseLink($url)), - intval($owner["uid"]) - ); - if (DBA::isResult($r)) { - $contact = $r[0]; - $contact["uid"] = -1; - } - - if (!DBA::isResult($r)) { - $gcontact = DBA::selectFirst('gcontact', [], ['nurl' => Strings::normaliseLink($url)]); - if (DBA::isResult($r)) { - $contact = $gcontact; - $contact["uid"] = -1; - $contact["success_update"] = $contact["updated"]; - } - } - - if (!DBA::isResult($r)) { - $contact = $owner; - } - - if (!isset($contact["poll"])) { - $data = Probe::uri($url); - $contact["poll"] = $data["poll"]; - - if (!$contact["alias"]) { - $contact["alias"] = $data["alias"]; - } - } - - if (!isset($contact["alias"])) { - $contact["alias"] = $contact["url"]; - } - - $contact['account-type'] = $owner['account-type']; - - return $contact; - } - /** * Adds an entry element with reshared content * @@ -1699,7 +1646,7 @@ class OStatus return false; } - $contact = self::contactEntry($repeated_item['author-link'], $owner); + $contact = Contact::getByURL($repeated_item['author-link']) ?: $owner; $title = $owner["nick"]." repeated a notice by ".$contact["nick"]; @@ -1841,7 +1788,7 @@ class OStatus $item["created"] = $item["edited"] = date("c"); $item["private"] = Item::PRIVATE; - $contact = Probe::uri($item['follow']); + $contact = Contact::getByURL($item['follow']); $item['follow'] = $contact['url']; if ($contact['alias']) { @@ -1948,7 +1895,7 @@ class OStatus $entry = $doc->createElement("entry"); if ($owner['account-type'] == User::ACCOUNT_TYPE_COMMUNITY) { - $contact = self::contactEntry($item['author-link'], $owner); + $contact = Contact::getByURL($item['author-link']) ?: $owner; $author = self::addAuthor($doc, $contact, false); $entry->appendChild($author); } diff --git a/src/Worker/SearchDirectory.php b/src/Worker/SearchDirectory.php index c099a5e28..2ffe6120e 100644 --- a/src/Worker/SearchDirectory.php +++ b/src/Worker/SearchDirectory.php @@ -27,9 +27,9 @@ use Friendica\Core\Protocol; use Friendica\Core\Search; use Friendica\Database\DBA; use Friendica\DI; +use Friendica\Model\Contact; use Friendica\Model\GContact; use Friendica\Model\GServer; -use Friendica\Network\Probe; use Friendica\Util\Network; use Friendica\Util\Strings; @@ -81,7 +81,7 @@ class SearchDirectory Logger::info('Friendica server seems to be okay.', ['server' => $server_url]); } - $data = Probe::uri($jj->url); + $data = Contact::getByURL($jj->url); if ($data['network'] == Protocol::DFRN) { Logger::info('Add profile to local directory', ['profile' => $jj->url]);