From 26cffd379a30b8e8538c4e552a7db912e68bfc13 Mon Sep 17 00:00:00 2001 From: Michael Date: Fri, 28 Feb 2020 09:21:40 +0000 Subject: [PATCH] Store the raw data in a different way --- src/Protocol/ActivityPub/Processor.php | 4 ++++ src/Protocol/ActivityPub/Receiver.php | 33 +++----------------------- 2 files changed, 7 insertions(+), 30 deletions(-) diff --git a/src/Protocol/ActivityPub/Processor.php b/src/Protocol/ActivityPub/Processor.php index 089d41729f..67cc2e2905 100644 --- a/src/Protocol/ActivityPub/Processor.php +++ b/src/Protocol/ActivityPub/Processor.php @@ -448,6 +448,10 @@ class Processor $item['owner-link'] = $activity['actor']; $item['owner-id'] = Contact::getIdForURL($activity['actor'], 0, true); + if (!empty($activity['raw'])) { + $item['source'] = $activity['raw']; + } + $isForum = false; if (!empty($activity['thread-completion'])) { diff --git a/src/Protocol/ActivityPub/Receiver.php b/src/Protocol/ActivityPub/Receiver.php index 7d25d94f17..b7622e962f 100644 --- a/src/Protocol/ActivityPub/Receiver.php +++ b/src/Protocol/ActivityPub/Receiver.php @@ -303,33 +303,6 @@ class Receiver return 0; } - /** - * Store the unprocessed data into the conversation table - * This has to be done outside the regular function, - * since we store everything - not only item posts. - * - * @param array $activity Array with activity data - * @param string $body The raw message - * @throws \Exception - */ - private static function storeConversation($activity, $body) - { - if (empty($body) || empty($activity['id'])) { - return; - } - - $conversation = [ - 'protocol' => Conversation::PARCEL_ACTIVITYPUB, - 'item-uri' => $activity['id'], - 'reply-to-uri' => $activity['reply-to-id'] ?? '', - 'conversation-href' => $activity['context'] ?? '', - 'conversation-uri' => $activity['conversation'] ?? '', - 'source' => $body, - 'received' => DateTimeFormat::utcNow()]; - - DBA::insert('conversation', $conversation, true); - } - /** * Processes the activity object * @@ -380,9 +353,9 @@ class Receiver return; } - // Only store content related stuff - and no announces, since they possibly overwrite the original content - if (in_array($object_data['object_type'], self::CONTENT_TYPES) && ($type != 'as:Announce')) { - self::storeConversation($object_data, $body); + if (!empty($body)) { + $object_data['raw'] = $body; + $object_data['protocol'] = Conversation::PARCEL_ACTIVITYPUB; } // Internal flag for thread completion. See Processor.php