X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FItem.php;h=78275c8356f147350e9be19699e975841077d148;hb=31693c2d1f749d744964eee0b0fe79db589fac2c;hp=89390317fe42694f9888421ae65032536a614de6;hpb=843502badcf6737dae1f8ea7a0b9ebe2984caa9a;p=friendica.git diff --git a/src/Model/Item.php b/src/Model/Item.php index 89390317fe..78275c8356 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -210,8 +210,6 @@ class Item } } - Post\Media::insertFromAttachmentData($item['uri-id'], $fields['body']); - $content_fields = ['raw-body' => trim($fields['raw-body'] ?? $fields['body'])]; // Remove all media attachments from the body and store them in the post-media table @@ -220,6 +218,10 @@ class Item $content_fields['raw-body'] = self::setHashtags($content_fields['raw-body']); Post\Media::insertFromRelevantUrl($item['uri-id'], $content_fields['raw-body'], $fields['body'], $item['author-network']); + + Post\Media::insertFromAttachmentData($item['uri-id'], $fields['body']); + $content_fields['raw-body'] = BBCode::removeAttachment($content_fields['raw-body']); + Post\Content::update($item['uri-id'], $content_fields); } @@ -1143,8 +1145,6 @@ class Item $item['body'] = BBCode::removeSharedData($item['body']); } - Post\Media::insertFromAttachmentData($item['uri-id'], $item['body']); - // Remove all media attachments from the body and store them in the post-media table $item['raw-body'] = Post\Media::insertFromBody($item['uri-id'], $item['raw-body']); $item['raw-body'] = self::setHashtags($item['raw-body']); @@ -1152,6 +1152,10 @@ class Item $author = Contact::getById($item['author-id'], ['network']); Post\Media::insertFromRelevantUrl($item['uri-id'], $item['raw-body'], $item['body'], $author['network'] ?? ''); + Post\Media::insertFromAttachmentData($item['uri-id'], $item['body']); + $item['body'] = BBCode::removeAttachment($item['body']); + $item['raw-body'] = BBCode::removeAttachment($item['raw-body']); + // Check for hashtags in the body and repair or add hashtag links $item['body'] = self::setHashtags($item['body']); @@ -1211,8 +1215,8 @@ class Item Post\Thread::insert($item['uri-id'], $item); } - // The content of activities normally doesn't matter - except for likes from Misskey - if (!in_array($item['verb'], self::ACTIVITIES) || in_array($item['verb'], [Activity::LIKE, Activity::DISLIKE]) && !empty($item['body']) && ($item['body'] != $item['verb'])) { + // The content of activities normally doesn't matter - except for likes from Misskey + if (!in_array($item['verb'], self::ACTIVITIES) || in_array($item['verb'], [Activity::LIKE, Activity::DISLIKE]) && !empty($item['body']) && (mb_strlen($item['body']) == 1)) { Post\Content::insert($item['uri-id'], $item); } @@ -1715,7 +1719,7 @@ class Item if (!empty($item['event-id'])) { $event_post = Post::selectFirst(['event-id'], ['uri-id' => $item['uri-id'], 'uid' => $uid]); if (!empty($event_post['event-id'])) { - $event = DBA::selectFirst('event', ['edited', 'start', 'finish', 'summary', 'desc', 'location', 'nofinish', 'adjust'], ['id' => $item['event-id']]); + $event = DBA::selectFirst('event', ['edited', 'start', 'finish', 'summary', 'desc', 'location', 'nofinish'], ['id' => $item['event-id']]); if (!empty($event)) { // We aren't using "Event::store" here, since we don't want to trigger any further action $ret = DBA::update('event', $event, ['id' => $event_post['event-id']]); @@ -3003,8 +3007,9 @@ class Item $fields = ['uri-id', 'uri', 'body', 'title', 'author-name', 'author-link', 'author-avatar', 'guid', 'created', 'plink', 'network', 'has-media', 'quote-uri-id', 'post-type']; - $shared_uri_id = 0; - $shared_links = []; + $shared_uri_id = 0; + $shared_links = []; + $quote_shared_links = []; $shared = DI::contentItem()->getSharedPost($item, $fields); if (!empty($shared['post'])) { @@ -3023,7 +3028,14 @@ class Item $shared_links[] = strtolower($media[0]['url']); } - $quote_uri_id = $shared_item['uri-id'] ?? 0; + if (!empty($shared_item['uri-id'])) { + $data = BBCode::getAttachmentData($shared_item['body']); + if (!empty($data['url'])) { + $quote_shared_links[] = $data['url']; + } + + $quote_uri_id = $shared_item['uri-id']; + } } } @@ -3098,7 +3110,7 @@ class Item if (!empty($shared_attachments)) { $s = self::addVisualAttachments($shared_attachments, $shared_item, $s, true); - $s = self::addLinkAttachment($shared_uri_id ?: $item['uri-id'], $shared_attachments, $body, $s, true, []); + $s = self::addLinkAttachment($shared_uri_id ?: $item['uri-id'], $shared_attachments, $body, $s, true, $quote_shared_links); $s = self::addNonVisualAttachments($shared_attachments, $item, $s, true); $body = BBCode::removeSharedData($body); } @@ -3418,7 +3430,7 @@ class Item DI::profiler()->stopRecording(); if (isset($data['url']) && !in_array(strtolower($data['url']), $ignore_links)) { - if (!empty($data['description']) || !empty($data['image']) || !empty($data['preview'])) { + if (!empty($data['description']) || !empty($data['image']) || !empty($data['preview']) || (!empty($data['title']) && !Strings::compareLink($data['title'], $data['url']))) { $parts = parse_url($data['url']); if (!empty($parts['scheme']) && !empty($parts['host'])) { if (empty($data['provider_name'])) {