]> git.mxchange.org Git - friendica.git/commitdiff
Add configuration
authorMichael <heluecht@pirati.ca>
Sat, 7 Jan 2023 21:28:21 +0000 (21:28 +0000)
committerMichael <heluecht@pirati.ca>
Sat, 7 Jan 2023 21:28:21 +0000 (21:28 +0000)
src/Protocol/Diaspora.php
static/defaults.config.php

index 9f23fe13b763f5d4bd3641802a3129ad6d4516e3..fd000dbe8e90e42a318dd1331f64b5b870b3ab06 100644 (file)
@@ -3316,10 +3316,16 @@ class Diaspora
 
                        $type = 'reshare';
                } else {
-                       $item['body'] = Post\Media::removeFromEndOfBody($item['body']);
+                       $native_photos = DI::config()->get('diaspora', 'native_photos');
+                       if ($native_photos) {
+                               $item['body'] = Post\Media::removeFromEndOfBody($item['body']);
+                               $attach_media = [Post\Media::AUDIO, Post\Media::VIDEO];
+                       } else {
+                               $attach_media = [Post\Media::AUDIO, Post\Media::IMAGE, Post\Media::VIDEO];
+                       }
 
                        $title = $item['title'];
-                       $body  = Post\Media::addAttachmentsToBody($item['uri-id'], DI::contentItem()->addSharedPost($item), [Post\Media::AUDIO, Post\Media::VIDEO]);
+                       $body  = Post\Media::addAttachmentsToBody($item['uri-id'], DI::contentItem()->addSharedPost($item), $attach_media);
 
                        // Fetch the title from an attached link - if there is one
                        if (empty($item['title']) && DI::pConfig()->get($owner['uid'], 'system', 'attach_link_title')) {
@@ -3367,7 +3373,9 @@ class Diaspora
                                'location' => $location
                        ];
 
-                       $message = self::addPhotos($item, $message);
+                       if ($native_photos) {
+                               $message = self::addPhotos($item, $message);
+                       }
 
                        // Diaspora rejects messages when they contain a location without "lat" or "lng"
                        if (!isset($location['lat']) || !isset($location['lng'])) {
@@ -3403,6 +3411,13 @@ class Diaspora
                return $msg;
        }
 
+       /**
+        * Add photo elements to the message array
+        *
+        * @param array $item
+        * @param array $message
+        * @return array
+        */
        private static function addPhotos(array $item, array $message): array
        {
                $medias = Post\Media::getByURIId($item['uri-id'], [Post\Media::IMAGE]);
index 967ca54eb336989c9b7cfcc6fb816380de281ff5..b3175c5d7394fd774fd8aaf970c7b12cee271ff5 100644 (file)
@@ -711,6 +711,13 @@ return [
                // Must be writable by the ejabberd process. if set then it will prevent the running of multiple processes.
                'lockpath' => '',
        ],
+       'diaspora' => [
+               // native_photos (Boolean)
+               // If enabled, photos to Diaspora will be transmitted via the "photo" element instead of embedding them to the body.
+               // This is some visual improvement over the embedding but comes with the cost of losing accessibility.
+               // Is is disabled by default until Diaspora eventually will work on issue https://github.com/diaspora/diaspora/issues/8297
+               'native_photos' => false,
+       ],
        'debug' => [
                // ap_inbox_log (Boolean)
                // Logs every call to /inbox as a JSON file in Friendica's temporary directory