From 975c32116dc26034e6ec7562a30c398c329d3f9d Mon Sep 17 00:00:00 2001 From: Michael Date: Tue, 11 May 2021 23:10:59 +0000 Subject: [PATCH] Handling media in shared posts --- src/Factory/Api/Mastodon/Status.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/Factory/Api/Mastodon/Status.php b/src/Factory/Api/Mastodon/Status.php index c26b9aa72..866cfe802 100644 --- a/src/Factory/Api/Mastodon/Status.php +++ b/src/Factory/Api/Mastodon/Status.php @@ -24,6 +24,7 @@ namespace Friendica\Factory\Api\Mastodon; use Friendica\App\BaseURL; use Friendica\BaseFactory; use Friendica\Content\ContactSelector; +use Friendica\Content\Text\BBCode; use Friendica\Database\DBA; use Friendica\DI; use Friendica\Model\Post; @@ -91,6 +92,22 @@ class Status extends BaseFactory $card = DI::mstdnCard()->createFromUriId($uriId); $attachments = DI::mstdnAttachment()->createFromUriId($uriId); + $shared = BBCode::fetchShareAttributes($item['body']); + if (!empty($shared['guid'])) { + $shared_item = Post::selectFirst(['uri-id', 'plink'], ['guid' => $shared['guid']]); + + $shared_uri_id = $shared_item['uri-id'] ?? 0; + + $mentions = array_merge($mentions, DI::mstdnMention()->createFromUriId($shared_uri_id)); + $tags = array_merge($tags, DI::mstdnTag()->createFromUriId($shared_uri_id)); + $attachments = array_merge($attachments, DI::mstdnAttachment()->createFromUriId($shared_uri_id)); + + if (empty($card->toArray())) { + $card = DI::mstdnCard()->createFromUriId($shared_uri_id); + } + } + + if ($item['vid'] == Verb::getID(Activity::ANNOUNCE)) { $reshare = $this->createFromUriId($item['thr-parent-id'], $uid)->toArray(); $reshared_item = Post::selectFirst(['title', 'body'], ['uri-id' => $item['thr-parent-id'], 'uid' => [0, $uid]]);