]> git.mxchange.org Git - friendica.git/commitdiff
Avoid empty posts on Diaspora
authorMichael <heluecht@pirati.ca>
Fri, 30 Apr 2021 22:35:16 +0000 (22:35 +0000)
committerMichael <heluecht@pirati.ca>
Fri, 30 Apr 2021 22:35:16 +0000 (22:35 +0000)
src/Model/Post/Media.php
src/Protocol/DFRN.php
src/Protocol/Diaspora.php
src/Protocol/OStatus.php

index 06935f8067d9c3ec87ed00075ae7a3b247a625a2..89b5d37704dfa0926a0c32bd61046ca739623902 100644 (file)
@@ -526,15 +526,19 @@ class Media
         * Add media attachments to the body
         *
         * @param int $uriid
+        * @param string $body
         * @return string body
         */
-       public static function addAttachmentsToBody(int $uriid)
+       public static function addAttachmentsToBody(int $uriid, string $body = '')
        {
-               $item = Post::selectFirst(['body'], ['uri-id' => $uriid]);
-               if (!DBA::isResult($item)) {
-                       return '';
+               if (empty($body)) {
+                       $item = Post::selectFirst(['body'], ['uri-id' => $uriid]);
+                       if (!DBA::isResult($item)) {
+                               return '';
+                       }
+                       $body = $item['body'];
                }
-               $body = preg_replace("/\s*\[attachment .*?\].*?\[\/attachment\]\s*/ism", '', $item['body']);
+               $body = preg_replace("/\s*\[attachment .*?\].*?\[\/attachment\]\s*/ism", '', $body);
 
                foreach (self::getByURIId($uriid, [self::IMAGE, self::AUDIO, self::VIDEO]) as $media) {
                        if (Item::containsLink($body, $media['url'])) {
index 0c348610e24ed5115f16425a4677f9621962c5ba..c02b02090d34f49d01760021fa9a47ca2697d79d 100644 (file)
@@ -899,7 +899,7 @@ class DFRN
                        $entry->setAttribute("xmlns:statusnet", ActivityNamespace::STATUSNET);
                }
 
-               $body = Post\Media::addAttachmentsToBody($item['uri-id']);
+               $body = Post\Media::addAttachmentsToBody($item['uri-id'], $item['body']);
 
                if ($item['private'] == Item::PRIVATE) {
                        $body = Item::fixPrivatePhotos($body, $owner['uid'], $item, $cid);
index 36c97cdea0570d2dc6051947bf3165f9908b7d87..16f934eccf3cbef0d475be9de2228ec16163644b 100644 (file)
@@ -3406,7 +3406,7 @@ class Diaspora
                        $type = "reshare";
                } else {
                        $title = $item["title"];
-                       $body = Post\Media::addAttachmentsToBody($item['uri-id']);
+                       $body = Post\Media::addAttachmentsToBody($item['uri-id'], $item['body']);
 
                        // Fetch the title from an attached link - if there is one
                        if (empty($item["title"]) && DI::pConfig()->get($owner['uid'], 'system', 'attach_link_title')) {
@@ -3620,7 +3620,7 @@ class Diaspora
                        $thread_parent_item = Post::selectFirst(['guid', 'author-id', 'author-link', 'gravity'], ['uri' => $item['thr-parent'], 'uid' => $item['uid']]);
                }
 
-               $body = Post\Media::addAttachmentsToBody($item['uri-id']);
+               $body = Post\Media::addAttachmentsToBody($item['uri-id'], $item['body']);
 
                // The replied to autor mention is prepended for clarity if:
                // - Item replied isn't yours
index 8021673862bc9f933812efc0cd7087f88f2e15d9..9de0138ad6f64782dd19f5ca3e48f84a3d177d2f 100644 (file)
@@ -1885,7 +1885,7 @@ class OStatus
                XML::addElement($doc, $entry, "id", $item["uri"]);
                XML::addElement($doc, $entry, "title", html_entity_decode($title, ENT_QUOTES, 'UTF-8'));
 
-               $body = Post\Media::addAttachmentsToBody($item['uri-id']);
+               $body = Post\Media::addAttachmentsToBody($item['uri-id'], $item['body']);
                $body = self::formatPicturePost($body);
 
                if (!empty($item['title'])) {