diff --git a/doc/FAQ-admin.md b/doc/FAQ-admin.md index e5f4f2a9f3..993a6c89ef 100644 --- a/doc/FAQ-admin.md +++ b/doc/FAQ-admin.md @@ -42,7 +42,7 @@ The listed emails need to be separated by a comma like this: 'admin_email' => 'mail1@example.com,mail2@example.com', ``` - + ### The Database structure seems not to be updated. What can I do? Please have a look at the Admin panel under [DB updates](/admin/dbsync/) and follow the link to *check database structure*. @@ -52,4 +52,4 @@ You can manually execute the structure update from the CLI in the base directory bin/console dbstructure update -if there occur any errors, please contact the [support group](https://forum.friendi.ca/profile/helpers). +if there occur any errors, please contact the [Friendica Support group](https://forum.friendi.ca/profile/helpers) or discuss in the [Friendica Admins group](https://forum.friendi.ca/profile/admins). diff --git a/doc/de/FAQ-admin.md b/doc/de/FAQ-admin.md index 2441a51304..3b171afe51 100644 --- a/doc/de/FAQ-admin.md +++ b/doc/de/FAQ-admin.md @@ -45,7 +45,7 @@ Die aufgelisteten Adressen werden wie folgt durch Kommas voneinander getrennt: 'admin_email' => 'mail1@example.com,mail2@example.com', ``` - + ### Die Datenbank Struktur schein nicht aktuell zu sein. Was kann ich tun? Rufe bitte im Admin Panel den Punkt [DB Updates](/admin/dbsync/) auf und folge dem Link *Datenbank Struktur überprüfen*. @@ -56,4 +56,4 @@ Starte dazu bitte vom Grundverzeichnis deiner Friendica Instanz folgendes Komman bin/console dbstructure update -sollten bei der Ausführung Fehler auftreten, kontaktiere bitte die [Support Gruppe](https://forum.friendi.ca/profile/helpers). +sollten bei der Ausführung Fehler auftreten, kontaktiere bitte die [Friendia Support](https://forum.friendi.ca/profile/helpers) Gruppe oder die [Friendica Admins](https://forum.friendi.ca/profile/admins) Gruppe. diff --git a/src/Content/Item.php b/src/Content/Item.php index 163db89aa4..c94ec1299b 100644 --- a/src/Content/Item.php +++ b/src/Content/Item.php @@ -638,7 +638,7 @@ class Item $body = $item['body']; } - if (empty($item['quote-uri-id'])) { + if (empty($item['quote-uri-id']) || ($item['quote-uri-id'] == $item['uri-id'])) { return $body; } @@ -729,7 +729,7 @@ class Item */ public function getSharedPost(array $item, array $fields = []): array { - if (!empty($item['quote-uri-id'])) { + if (!empty($item['quote-uri-id']) && ($item['quote-uri-id'] != $item['uri-id'])) { $shared = Post::selectFirst($fields, ['uri-id' => $item['quote-uri-id'], 'uid' => [0, $item['uid'] ?? 0]]); if (is_array($shared)) { return [ @@ -770,7 +770,7 @@ class Item return $attributes; } - if (!empty($item['quote-uri-id'])) { + if (!empty($item['quote-uri-id']) && ($item['quote-uri-id'] != $item['uri-id'])) { $shared = Post::selectFirst(['author-name', 'author-link', 'author-avatar', 'plink', 'created', 'guid', 'uri', 'body'], ['uri-id' => $item['quote-uri-id']]); if (!empty($shared)) { return [ diff --git a/src/Content/Text/Plaintext.php b/src/Content/Text/Plaintext.php index 86d720a02a..3b531f01bc 100644 --- a/src/Content/Text/Plaintext.php +++ b/src/Content/Text/Plaintext.php @@ -324,7 +324,7 @@ class Plaintext $post['text'] = Post\Media::removeFromBody($post['text']); $images = Post\Media::getByURIId($item['uri-id'], [Post\Media::IMAGE]); - if (!empty($item['quote-uri-id'])) { + if (!empty($item['quote-uri-id']) && ($item['quote-uri-id'] != $item['uri-id'])) { $images = array_merge($images, Post\Media::getByURIId($item['quote-uri-id'], [Post\Media::IMAGE])); } foreach ($images as $image) { @@ -355,7 +355,7 @@ class Plaintext // Look for audio or video links $media = Post\Media::getByURIId($item['uri-id'], [Post\Media::AUDIO, Post\Media::VIDEO]); - if (!empty($item['quote-uri-id'])) { + if (!empty($item['quote-uri-id']) && ($item['quote-uri-id'] != $item['uri-id'])) { $media = array_merge($media, Post\Media::getByURIId($item['quote-uri-id'], [Post\Media::AUDIO, Post\Media::VIDEO])); } diff --git a/src/Model/Item.php b/src/Model/Item.php index 8972d3b75e..41aae04134 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -1078,7 +1078,10 @@ class Item } if ($item['origin']) { - if (Photo::setPermissionFromBody($item['body'], $item['uid'], $item['contact-id'], $item['allow_cid'], $item['allow_gid'], $item['deny_cid'], $item['deny_gid'])) { + if ( + Photo::setPermissionFromBody($item['body'], $item['uid'], $item['contact-id'], $item['allow_cid'], $item['allow_gid'], $item['deny_cid'], $item['deny_gid']) + && ($item['object-type'] != Activity\ObjectType::EVENT) + ) { $item['object-type'] = Activity\ObjectType::IMAGE; } @@ -1181,6 +1184,11 @@ class Item } } + if (!empty($item['quote-uri-id']) && ($item['quote-uri-id'] == $item['uri-id'])) { + Logger::info('Quote-Uri-Id is identical to Uri-Id', ['uri-id' => $item['uri-id'], 'guid' => $item['guid']]); + unset($item['quote-uri-id']); + } + if (!empty($item['quote-uri-id'])) { $item['raw-body'] = BBCode::removeSharedData($item['raw-body']); $item['body'] = BBCode::removeSharedData($item['body']); @@ -3122,7 +3130,7 @@ class Item $item['body'] = BBCode::removeSharedData($item['body']); } elseif (empty($shared_item['uri-id']) && empty($item['quote-uri-id']) && ($item['network'] != Protocol::DIASPORA)) { $media = Post\Media::getByURIId($item['uri-id'], [Post\Media::ACTIVITY]); - if (!empty($media)) { + if (!empty($media) && ($media[0]['media-uri-id'] != $item['uri-id'])) { $shared_item = Post::selectFirst($fields, ['uri-id' => $media[0]['media-uri-id'], 'uid' => [$item['uid'], 0]]); if (empty($shared_item['uri-id'])) { $shared_item = Post::selectFirst($fields, ['plink' => $media[0]['url'], 'uid' => [$item['uid'], 0]]); diff --git a/src/Model/Post/Media.php b/src/Model/Post/Media.php index a0d55b6e00..e0c8d3561f 100644 --- a/src/Model/Post/Media.php +++ b/src/Model/Post/Media.php @@ -265,6 +265,11 @@ class Media return $media; } + if ($item['uri-id'] == $media['uri-id']) { + Logger::info('Media-Uri-Id is identical to Uri-Id', ['uri-id' => $media['uri-id']]); + return $media; + } + if ( !empty($item['plink']) && Strings::compareLink($item['plink'], $media['url']) && parse_url($item['plink'], PHP_URL_HOST) != parse_url($item['uri'], PHP_URL_HOST) diff --git a/src/Model/Post/UserNotification.php b/src/Model/Post/UserNotification.php index 726e82d7e0..41c8b50312 100644 --- a/src/Model/Post/UserNotification.php +++ b/src/Model/Post/UserNotification.php @@ -602,7 +602,7 @@ class UserNotification */ private static function checkQuoted(array $item, array $contacts): bool { - if (empty($item['quote-uri-id'])) { + if (empty($item['quote-uri-id']) || ($item['quote-uri-id'] == $item['uri-id'])) { return false; } $condition = ['uri-id' => $item['quote-uri-id'], 'uid' => $item['uid'], 'author-id' => $contacts, 'deleted' => false, 'gravity' => [item::GRAVITY_PARENT, Item::GRAVITY_COMMENT]]; diff --git a/src/Protocol/ActivityPub/Transmitter.php b/src/Protocol/ActivityPub/Transmitter.php index 4b0450a0cd..72a9c929fa 100644 --- a/src/Protocol/ActivityPub/Transmitter.php +++ b/src/Protocol/ActivityPub/Transmitter.php @@ -1752,7 +1752,7 @@ class Transmitter $body = BBCode::setMentionsToNicknames($body); - if (!empty($item['quote-uri-id'])) { + if (!empty($item['quote-uri-id']) && ($item['quote-uri-id'] != $item['uri-id'])) { if (Post::exists(['uri-id' => $item['quote-uri-id'], 'network' => [Protocol::ACTIVITYPUB, Protocol::DFRN]])) { $real_quote = true; $data['quoteUrl'] = $item['quote-uri']; @@ -1772,7 +1772,7 @@ class Transmitter if (!empty($language)) { $richbody = BBCode::setMentionsToNicknames($item['body'] ?? ''); $richbody = Post\Media::removeFromEndOfBody($richbody); - if (!empty($item['quote-uri-id'])) { + if (!empty($item['quote-uri-id']) && ($item['quote-uri-id'] != $item['uri-id'])) { if ($real_quote) { $richbody = DI::contentItem()->addShareLink($richbody, $item['quote-uri-id']); } else { @@ -1784,7 +1784,7 @@ class Transmitter $data['contentMap'][$language] = BBCode::convertForUriId($item['uri-id'], $richbody, BBCode::EXTERNAL); } - if (!empty($item['quote-uri-id'])) { + if (!empty($item['quote-uri-id']) && ($item['quote-uri-id'] != $item['uri-id'])) { $source = DI::contentItem()->addSharedPost($item, $item['body']); } else { $source = $item['body']; diff --git a/view/theme/frio/templates/search_item.tpl b/view/theme/frio/templates/search_item.tpl index 2d130cab80..bdc2ca3840 100644 --- a/view/theme/frio/templates/search_item.tpl +++ b/view/theme/frio/templates/search_item.tpl @@ -240,10 +240,10 @@ {{if $item.ignore}}