* Adds attachment data to the JSON document
*
* @param array $item Data of the item that is to be posted
- * @param string $type Object type
*
* @return array with attachment data
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
- private static function createAttachmentList(array $item, string $type): array
+ private static function createAttachmentList(array $item): array
{
$attachments = [];
- $uriids = [$item['uri-id']];
- $shared = BBCode::fetchShareAttributes($item['body']);
- if (!empty($shared['guid'])) {
- $shared_item = Post::selectFirst(['uri-id'], ['guid' => $shared['guid']]);
- if (!empty($shared_item['uri-id'])) {
- $uriids[] = $shared_item['uri-id'];
- }
- }
-
$urls = [];
- foreach ($uriids as $uriid) {
- foreach (Post\Media::getByURIId($uriid, [Post\Media::AUDIO, Post\Media::IMAGE, Post\Media::VIDEO, Post\Media::DOCUMENT, Post\Media::TORRENT]) as $attachment) {
- if (in_array($attachment['url'], $urls)) {
- continue;
- }
- $urls[] = $attachment['url'];
-
- $attach = ['type' => 'Document',
- 'mediaType' => $attachment['mimetype'],
- 'url' => $attachment['url'],
- 'name' => $attachment['description']];
+ foreach (Post\Media::getByURIId($item['uri-id'], [Post\Media::AUDIO, Post\Media::IMAGE, Post\Media::VIDEO, Post\Media::DOCUMENT, Post\Media::TORRENT]) as $attachment) {
+ if (in_array($attachment['url'], $urls)) {
+ continue;
+ }
+ $urls[] = $attachment['url'];
- if (!empty($attachment['height'])) {
- $attach['height'] = $attachment['height'];
- }
+ $attach = ['type' => 'Document',
+ 'mediaType' => $attachment['mimetype'],
+ 'url' => $attachment['url'],
+ 'name' => $attachment['description']];
- if (!empty($attachment['width'])) {
- $attach['width'] = $attachment['width'];
- }
+ if (!empty($attachment['height'])) {
+ $attach['height'] = $attachment['height'];
+ }
- if (!empty($attachment['preview'])) {
- $attach['image'] = $attachment['preview'];
- }
+ if (!empty($attachment['width'])) {
+ $attach['width'] = $attachment['width'];
+ }
- $attachments[] = $attach;
+ if (!empty($attachment['preview'])) {
+ $attach['image'] = $attachment['preview'];
}
+
+ $attachments[] = $attach;
}
return $attachments;
$language = self::getLanguage($item);
if (!empty($language)) {
$richbody = BBCode::setMentionsToNicknames($item['body'] ?? '');
+
+ $shared = BBCode::fetchShareAttributes($richbody);
+ if (!empty($shared['link']) && !empty($shared['guid']) && !empty($shared['comment'])) {
+ $richbody = self::ReplaceSharedData($richbody);
+ }
+
$richbody = BBCode::removeAttachment($richbody);
$data['contentMap'][$language] = BBCode::convertForUriId($item['uri-id'], $richbody, BBCode::EXTERNAL);
$data['diaspora:comment'] = $item['signed_text'];
}
- $data['attachment'] = self::createAttachmentList($item, $type);
- $data['tag'] = self::createTagList($item, $data['quoteUrl'] ?? '');
+ $data['attachment'] = self::createAttachmentList($item);
+ $data['tag'] = self::createTagList($item, ''); // $data['quoteUrl'] ??
if (empty($data['location']) && (!empty($item['coord']) || !empty($item['location']))) {
$data['location'] = self::createLocation($item);