X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FProtocol%2FActivityPub%2FReceiver.php;h=97bd7dc7e76a05007c6c9c8103138aa816314bb9;hb=fa1f48e1711c64d42ddb0f72c7670fa28f56482d;hp=7ae68cd4d1247238fc50a15ef6fa1030ff7d4463;hpb=064c0cd5ffa472796e4a3e495dcbba1a944e78e0;p=friendica.git diff --git a/src/Protocol/ActivityPub/Receiver.php b/src/Protocol/ActivityPub/Receiver.php index 7ae68cd4d1..97bd7dc7e7 100644 --- a/src/Protocol/ActivityPub/Receiver.php +++ b/src/Protocol/ActivityPub/Receiver.php @@ -207,7 +207,13 @@ class Receiver return []; } $object_data['object_id'] = $object_id; - $object_data['directmessage'] = JsonLD::fetchElement($activity, 'litepub:directMessage'); + + // Test if it is an answer to a mail + if (DBA::exists('mail', ['uri' => $object_data['reply-to-id']])) { + $object_data['directmessage'] = true; + } else { + $object_data['directmessage'] = JsonLD::fetchElement($activity, 'litepub:directMessage'); + } // We had been able to retrieve the object data - so we can trust the source $trust_source = true; @@ -220,6 +226,13 @@ class Receiver $object_data['author'] = JsonLD::fetchElement($activity, 'as:actor', '@id'); $object_data['object_id'] = $object_id; $object_data['object_type'] = ''; // Since we don't fetch the object, we don't know the type + } elseif (in_array($type, ['as:Add'])) { + $object_data = []; + $object_data['id'] = JsonLD::fetchElement($activity, '@id'); + $object_data['target_id'] = JsonLD::fetchElement($activity, 'as:target', '@id'); + $object_data['object_id'] = JsonLD::fetchElement($activity, 'as:object', '@id'); + $object_data['object_type'] = JsonLD::fetchElement($activity['as:object'], '@type'); + $object_data['object_content'] = JsonLD::fetchElement($activity['as:object'], 'as:content', '@type'); } else { $object_data = []; $object_data['id'] = JsonLD::fetchElement($activity, '@id'); @@ -360,6 +373,12 @@ class Receiver } break; + case 'as:Add': + if ($object_data['object_type'] == 'as:tag') { + ActivityPub\Processor::addTag($object_data); + } + break; + case 'as:Announce': if (in_array($object_data['object_type'], self::CONTENT_TYPES)) { $profile = APContact::getByURL($object_data['actor']); @@ -936,11 +955,6 @@ class Receiver $object_data['receiver'] = self::getReceivers($object, $object_data['actor'], $object_data['tags']); - // Test if it is an answer to a mail - if (DBA::exists('mail', ['uri' => $object_data['reply-to-id']])) { - $object_data['directmessage'] = true; - } - // Common object data: // Unhandled