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;
$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');
}
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']);
$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