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);
*/
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()]);