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;
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;
}
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(
$user_data['photo'] ?? '',
$user_data['network'] ?? '',
$contactDetails['id'] ?? 0,
- 0,
+ $user_data['id'] ?? 0,
$user_data['tags'] ?? ''
);
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
*
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"];
$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']) {
$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);
}
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;
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]);