diff --git a/src/Content/Text/BBCode.php b/src/Content/Text/BBCode.php index f73583303..fe2e94c68 100644 --- a/src/Content/Text/BBCode.php +++ b/src/Content/Text/BBCode.php @@ -1021,6 +1021,19 @@ class BBCode public static function fetchShareAttributes(string $text): array { DI::profiler()->startRecording('rendering'); + if (preg_match('#(.*?)\[share](.*)\[/share]#', $text, $matches)) { + return [ + 'author' => '', + 'profile' => '', + 'avatar' => '', + 'link' => '', + 'posted' => '', + 'guid' => '', + 'message_id' => $matches[2], + 'comment' => trim($matches[1]), + 'shared' => '', + ]; + } // See Issue https://github.com/friendica/friendica/issues/10454 // Hashtags in usernames are expanded to links. This here is a quick fix. $text = preg_replace('~([@!#])\[url=.*?](.*?)\[/url]~ism', '$1$2', $text); diff --git a/src/Model/Item.php b/src/Model/Item.php index a88e61124..9253a282e 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -3666,19 +3666,10 @@ class Item */ public static function improveSharedDataInBody(array $item): string { - if (preg_match('#\[share](.*)\[/share]#', $item['body'], $matches)) { - $shared = [ - 'message_id' => $matches[1], - 'link' => '', - 'guid' => '', - 'profile' => '', - ]; - } else { - $shared = BBCode::fetchShareAttributes($item['body']); - if (empty($shared['link']) && empty($shared['message_id'])) { - return $item['body']; - } - } + $shared = BBCode::fetchShareAttributes($item['body']); + if (empty($shared['link']) && empty($shared['message_id'])) { + return $item['body']; + } $id = self::fetchByLink($shared['link'] ?: $shared['message_id']); Logger::debug('Fetched shared post', ['uri-id' => $item['uri-id'], 'id' => $id, 'author' => $shared['profile'], 'url' => $shared['link'], 'guid' => $shared['guid'], 'uri' => $shared['message_id'], 'callstack' => System::callstack()]);