*/
public function createFromPhoto(int $id): array
{
- $photo = Photo::selectFirst(['resource-id', 'uid', 'id', 'title', 'type'], ['id' => $id]);
+ $photo = Photo::selectFirst(['resource-id', 'uid', 'id', 'title', 'type', 'width', 'height'], ['id' => $id]);
if (empty($photo)) {
return [];
}
- $attachment = ['id' => $photo['id'], 'description' => $photo['title']];
+ $attachment = [
+ 'id' => $photo['id'],
+ 'description' => $photo['title'],
+ 'width' => $photo['width'],
+ 'height' => $photo['height'],
+ ];
$photoTypes = Images::supportedTypes();
$ext = $photoTypes[$photo['type']];
$preview_url = '';
}
-
$object = new \Friendica\Object\Api\Mastodon\Attachment($attachment, 'image', $url, $preview_url, '');
return $object->toArray();
}
namespace Friendica\Object\Api\Mastodon;
use Friendica\BaseDataTransferObject;
+use Friendica\Core\Logger;
+use Friendica\Core\System;
/**
* Class Attachment
/**
* Creates an attachment
*
- * @param array $attachment
- * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+ * @param array $attachment Expected keys: id, description
+ * If $type == 'image': width, height[, preview-width, preview-height]
+ * @param string $type One of: audio, video, gifv, image, unknown
+ * @param string $url
+ * @param string $preview
+ * @param string $remote
*/
public function __construct(array $attachment, string $type, string $url, string $preview, string $remote)
{
$this->meta['original']['aspect'] = (float) ((int) $attachment['width'] / (int) $attachment['height']);
}
- if ((int) $attachment['preview-width'] > 0 && (int) $attachment['preview-height'] > 0) {
+ if (isset($attachment['preview-width']) && (int) $attachment['preview-width'] > 0 && (int) $attachment['preview-height'] > 0) {
$this->meta['small']['width'] = (int) $attachment['preview-width'];
$this->meta['small']['height'] = (int) $attachment['preview-height'];
$this->meta['small']['size'] = (int) $attachment['preview-width'] . 'x' . (int) $attachment['preview-height'];