Ensure $attachment has a width and a height when it's an image in Mastodon\Attachment
- Address https://github.com/friendica/friendica/issues/11993#issuecomment-1323274513
This commit is contained in:
parent
a5af1408d6
commit
7c6d54c989
|
@ -94,12 +94,17 @@ class Attachment extends BaseFactory
|
||||||
*/
|
*/
|
||||||
public function createFromPhoto(int $id): array
|
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)) {
|
if (empty($photo)) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
$attachment = ['id' => $photo['id'], 'description' => $photo['title']];
|
$attachment = [
|
||||||
|
'id' => $photo['id'],
|
||||||
|
'description' => $photo['title'],
|
||||||
|
'width' => $photo['width'],
|
||||||
|
'height' => $photo['height'],
|
||||||
|
];
|
||||||
|
|
||||||
$photoTypes = Images::supportedTypes();
|
$photoTypes = Images::supportedTypes();
|
||||||
$ext = $photoTypes[$photo['type']];
|
$ext = $photoTypes[$photo['type']];
|
||||||
|
@ -113,7 +118,6 @@ class Attachment extends BaseFactory
|
||||||
$preview_url = '';
|
$preview_url = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$object = new \Friendica\Object\Api\Mastodon\Attachment($attachment, 'image', $url, $preview_url, '');
|
$object = new \Friendica\Object\Api\Mastodon\Attachment($attachment, 'image', $url, $preview_url, '');
|
||||||
return $object->toArray();
|
return $object->toArray();
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,8 @@
|
||||||
namespace Friendica\Object\Api\Mastodon;
|
namespace Friendica\Object\Api\Mastodon;
|
||||||
|
|
||||||
use Friendica\BaseDataTransferObject;
|
use Friendica\BaseDataTransferObject;
|
||||||
|
use Friendica\Core\Logger;
|
||||||
|
use Friendica\Core\System;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class Attachment
|
* Class Attachment
|
||||||
|
@ -50,8 +52,12 @@ class Attachment extends BaseDataTransferObject
|
||||||
/**
|
/**
|
||||||
* Creates an attachment
|
* Creates an attachment
|
||||||
*
|
*
|
||||||
* @param array $attachment
|
* @param array $attachment Expected keys: id, description
|
||||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
* 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)
|
public function __construct(array $attachment, string $type, string $url, string $preview, string $remote)
|
||||||
{
|
{
|
||||||
|
@ -70,7 +76,7 @@ class Attachment extends BaseDataTransferObject
|
||||||
$this->meta['original']['aspect'] = (float) ((int) $attachment['width'] / (int) $attachment['height']);
|
$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']['width'] = (int) $attachment['preview-width'];
|
||||||
$this->meta['small']['height'] = (int) $attachment['preview-height'];
|
$this->meta['small']['height'] = (int) $attachment['preview-height'];
|
||||||
$this->meta['small']['size'] = (int) $attachment['preview-width'] . 'x' . (int) $attachment['preview-height'];
|
$this->meta['small']['size'] = (int) $attachment['preview-width'] . 'x' . (int) $attachment['preview-height'];
|
||||||
|
|
Loading…
Reference in New Issue
Block a user