X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FProtocol%2FActivityPub%2FReceiver.php;h=97bd7dc7e76a05007c6c9c8103138aa816314bb9;hb=32b8c6f65e9b50cec79e7c5021b80e5541c74143;hp=2e8cacb2961a9acae85fa84b08a90dce3911aaab;hpb=c9cce8492e5b2607b2a092474d1de4d188b7a2c9;p=friendica.git diff --git a/src/Protocol/ActivityPub/Receiver.php b/src/Protocol/ActivityPub/Receiver.php index 2e8cacb296..97bd7dc7e7 100644 --- a/src/Protocol/ActivityPub/Receiver.php +++ b/src/Protocol/ActivityPub/Receiver.php @@ -208,6 +208,13 @@ class Receiver } $object_data['object_id'] = $object_id; + // 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; } elseif (in_array($type, ['as:Like', 'as:Dislike']) || @@ -219,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'); @@ -359,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']);