Merge pull request #8891 from annando/probe-replace

Replaced more calls of "Probe::uri" with "Contact::getByURL"
This commit is contained in:
Hypolite Petovan 2020-07-16 15:40:20 -04:00 committed by GitHub
commit cbc757e123
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 66 deletions

View file

@ -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'] ?? ''
);

View file

@ -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);
}

View file

@ -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]);