X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FAPContact.php;h=69f9be5135095d3df00c0eb35dcc58073dc94c50;hb=624e4c192c7f837ac0587a50da6e1409081eb519;hp=76ca3aaed9fb2d4fa9121ffff70cb898fa0b8db4;hpb=4eecf733e156eca7ea7cc4458b2daa8adda96209;p=friendica.git diff --git a/src/Model/APContact.php b/src/Model/APContact.php index 76ca3aaed9..69f9be5135 100644 --- a/src/Model/APContact.php +++ b/src/Model/APContact.php @@ -241,9 +241,11 @@ class APContact $apcontact['name'] = $apcontact['nick']; } - $apcontact['about'] = HTML::toBBCode(JsonLD::fetchElement($compacted, 'as:summary', '@value')); + $aboutHtml = JsonLD::fetchElement($compacted, 'as:summary', '@value'); + $apcontact['about'] = (!empty($aboutHtml) ? HTML::toBBCode($aboutHtml) : ''); $ims = JsonLD::fetchElementArray($compacted, 'vcard:hasInstantMessage'); + if (!empty($ims)) { foreach ($ims as $link) { if (substr($link, 0, 5) == 'xmpp:') { @@ -365,7 +367,7 @@ class APContact // To-Do // Unhandled - // tag, attachment, image, nomadicLocations, signature, featured, movedTo, liked + // tag, attachment, image, nomadicLocations, signature, movedTo, liked // Unhandled from Misskey // sharedInbox, isCat @@ -431,6 +433,30 @@ class APContact $apcontact['uri-id'] = ItemURI::insert(['uri' => $apcontact['url'], 'guid' => $apcontact['uuid']]); } + foreach (APContact\Endpoint::ENDPOINT_NAMES as $type => $name) { + $value = JsonLD::fetchElement($compacted, $name, '@id'); + if (empty($value)) { + continue; + } + APContact\Endpoint::update($apcontact['uri-id'], $type, $value); + } + + if (!empty($compacted['as:endpoints'])) { + foreach ($compacted['as:endpoints'] as $name => $endpoint) { + if (empty($endpoint['@id']) || !is_string($endpoint['@id'])) { + continue; + } + + if (in_array($name, APContact\Endpoint::ENDPOINT_NAMES)) { + $key = array_search($name, APContact\Endpoint::ENDPOINT_NAMES); + APContact\Endpoint::update($apcontact['uri-id'], $key, $endpoint['@id']); + Logger::debug('Store endpoint', ['key' => $key, 'name' => $name, 'endpoint' => $endpoint['@id']]); + } elseif (!in_array($name, ['as:sharedInbox', 'as:uploadMedia', 'as:oauthTokenEndpoint', 'as:oauthAuthorizationEndpoint', 'litepub:oauthRegistrationEndpoint'])) { + Logger::debug('Unknown endpoint', ['name' => $name, 'endpoint' => $endpoint['@id']]); + } + } + } + $apcontact['updated'] = DateTimeFormat::utcNow(); // We delete the old entry when the URL is changed