]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/APContact.php
Use a constant for the avatar base path
[friendica.git] / src / Model / APContact.php
index 76ca3aaed9fb2d4fa9121ffff70cb898fa0b8db4..0255af7a33cf2c9d653f45d0e443cc0e5c502f82 100644 (file)
@@ -365,7 +365,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 +431,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