diff --git a/src/Protocol/ActivityPub/Processor.php b/src/Protocol/ActivityPub/Processor.php index 1850c572a4..ccc3138408 100644 --- a/src/Protocol/ActivityPub/Processor.php +++ b/src/Protocol/ActivityPub/Processor.php @@ -138,22 +138,27 @@ class Processor $item['changed'] = DateTimeFormat::utcNow(); $item['edited'] = $activity['updated']; $item['title'] = HTML::toBBCode($activity['name']); - $item['content-warning'] = HTML::toBBCode($activity['summary']); - $content = HTML::toBBCode($activity['content']); - $content = self::replaceEmojis($content, $activity['emojis']); - $content = self::convertMentions($content); + if (!empty($activity['source'])) { + $content = $activity['source']; + } else { + $item['content-warning'] = HTML::toBBCode($activity['summary']); - if (($item['thr-parent'] != $item['uri']) && ($item['gravity'] == GRAVITY_COMMENT)) { - $parent = Item::selectFirst(['id', 'author-link', 'alias'], ['uri' => $item['thr-parent']]); - if (!DBA::isResult($parent)) { - Logger::warning('Unknown parent item.', ['uri' => $item['thr-parent']]); - return; + $content = HTML::toBBCode($activity['content']); + $content = self::replaceEmojis($content, $activity['emojis']); + $content = self::convertMentions($content); + + if (($item['thr-parent'] != $item['uri']) && ($item['gravity'] == GRAVITY_COMMENT)) { + $parent = Item::selectFirst(['id', 'author-link', 'alias'], ['uri' => $item['thr-parent']]); + if (!DBA::isResult($parent)) { + Logger::warning('Unknown parent item.', ['uri' => $item['thr-parent']]); + return; + } + + $potential_implicit_mentions = self::getImplicitMentionList($parent); + $content = self::removeImplicitMentionsFromBody($content, $potential_implicit_mentions); + $activity['tags'] = self::convertImplicitMentionsInTags($activity['tags'], $potential_implicit_mentions); } - - $potential_implicit_mentions = self::getImplicitMentionList($parent); - $content = self::removeImplicitMentionsFromBody($content, $potential_implicit_mentions); - $activity['tags'] = self::convertImplicitMentionsInTags($activity['tags'], $potential_implicit_mentions); } $item['body'] = $content; @@ -339,6 +344,7 @@ class Processor $item = self::constructAttachList($activity['attachments'], $item); if (!empty($activity['source'])) { + $item['content-warning'] = ''; $item['body'] = $activity['source']; } diff --git a/src/Protocol/ActivityPub/Transmitter.php b/src/Protocol/ActivityPub/Transmitter.php index 79263f8ac0..8f9687a804 100644 --- a/src/Protocol/ActivityPub/Transmitter.php +++ b/src/Protocol/ActivityPub/Transmitter.php @@ -1021,7 +1021,7 @@ class Transmitter return $data; } - $data['summary'] = BBCode::getAbstract($item['body'], Protocol::ACTIVITYPUB); + $data['summary'] = BBCode::convert(BBCode::getAbstract($item['body'], Protocol::ACTIVITYPUB), false, 7); if ($item['uri'] != $item['thr-parent']) { $data['inReplyTo'] = $item['thr-parent']; @@ -1056,7 +1056,7 @@ class Transmitter if ($type == 'Note') { $body = self::removePictures($body); } elseif (($type == 'Article') && empty($data['summary'])) { - $data['summary'] = Plaintext::shorten(self::removePictures($body), 1000); + $data['summary'] = BBCode::convert(Plaintext::shorten(self::removePictures($body), 1000), false, 7); } if ($type == 'Event') {