diff --git a/src/Model/Post/Media.php b/src/Model/Post/Media.php index 06935f8067..89b5d37704 100644 --- a/src/Model/Post/Media.php +++ b/src/Model/Post/Media.php @@ -526,15 +526,19 @@ class Media * Add media attachments to the body * * @param int $uriid + * @param string $body * @return string body */ - public static function addAttachmentsToBody(int $uriid) + public static function addAttachmentsToBody(int $uriid, string $body = '') { - $item = Post::selectFirst(['body'], ['uri-id' => $uriid]); - if (!DBA::isResult($item)) { - return ''; + if (empty($body)) { + $item = Post::selectFirst(['body'], ['uri-id' => $uriid]); + if (!DBA::isResult($item)) { + return ''; + } + $body = $item['body']; } - $body = preg_replace("/\s*\[attachment .*?\].*?\[\/attachment\]\s*/ism", '', $item['body']); + $body = preg_replace("/\s*\[attachment .*?\].*?\[\/attachment\]\s*/ism", '', $body); foreach (self::getByURIId($uriid, [self::IMAGE, self::AUDIO, self::VIDEO]) as $media) { if (Item::containsLink($body, $media['url'])) { diff --git a/src/Protocol/DFRN.php b/src/Protocol/DFRN.php index 0c348610e2..c02b02090d 100644 --- a/src/Protocol/DFRN.php +++ b/src/Protocol/DFRN.php @@ -899,7 +899,7 @@ class DFRN $entry->setAttribute("xmlns:statusnet", ActivityNamespace::STATUSNET); } - $body = Post\Media::addAttachmentsToBody($item['uri-id']); + $body = Post\Media::addAttachmentsToBody($item['uri-id'], $item['body']); if ($item['private'] == Item::PRIVATE) { $body = Item::fixPrivatePhotos($body, $owner['uid'], $item, $cid); diff --git a/src/Protocol/Diaspora.php b/src/Protocol/Diaspora.php index 36c97cdea0..16f934eccf 100644 --- a/src/Protocol/Diaspora.php +++ b/src/Protocol/Diaspora.php @@ -3406,7 +3406,7 @@ class Diaspora $type = "reshare"; } else { $title = $item["title"]; - $body = Post\Media::addAttachmentsToBody($item['uri-id']); + $body = Post\Media::addAttachmentsToBody($item['uri-id'], $item['body']); // Fetch the title from an attached link - if there is one if (empty($item["title"]) && DI::pConfig()->get($owner['uid'], 'system', 'attach_link_title')) { @@ -3620,7 +3620,7 @@ class Diaspora $thread_parent_item = Post::selectFirst(['guid', 'author-id', 'author-link', 'gravity'], ['uri' => $item['thr-parent'], 'uid' => $item['uid']]); } - $body = Post\Media::addAttachmentsToBody($item['uri-id']); + $body = Post\Media::addAttachmentsToBody($item['uri-id'], $item['body']); // The replied to autor mention is prepended for clarity if: // - Item replied isn't yours diff --git a/src/Protocol/OStatus.php b/src/Protocol/OStatus.php index 8021673862..9de0138ad6 100644 --- a/src/Protocol/OStatus.php +++ b/src/Protocol/OStatus.php @@ -1885,7 +1885,7 @@ class OStatus XML::addElement($doc, $entry, "id", $item["uri"]); XML::addElement($doc, $entry, "title", html_entity_decode($title, ENT_QUOTES, 'UTF-8')); - $body = Post\Media::addAttachmentsToBody($item['uri-id']); + $body = Post\Media::addAttachmentsToBody($item['uri-id'], $item['body']); $body = self::formatPicturePost($body); if (!empty($item['title'])) {