$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')) {
'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'])) {
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]);
// 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