Improved support for "Page" type
This commit is contained in:
parent
9d25c3a8f6
commit
9eec2bf5f3
3 changed files with 15 additions and 1 deletions
|
@ -169,6 +169,12 @@ class Media
|
|||
if (empty($media['mimetype']) || empty($media['size'])) {
|
||||
$timeout = DI::config()->get('system', 'xrd_timeout');
|
||||
$curlResult = DI::httpClient()->head($media['url'], [HttpClientOptions::TIMEOUT => $timeout]);
|
||||
|
||||
// Workaround for systems that can't handle a HEAD request
|
||||
if (!$curlResult->isSuccess() && ($curlResult->getReturnCode() == 405)) {
|
||||
$curlResult = DI::httpClient()->get($media['url'], [HttpClientOptions::TIMEOUT => $timeout]);
|
||||
}
|
||||
|
||||
if ($curlResult->isSuccess()) {
|
||||
if (empty($media['mimetype'])) {
|
||||
$media['mimetype'] = $curlResult->getHeader('Content-Type')[0] ?? '';
|
||||
|
|
|
@ -125,7 +125,7 @@ class Processor
|
|||
$data = ['uri-id' => $uriid];
|
||||
$data['type'] = Post\Media::UNKNOWN;
|
||||
$data['url'] = $attachment['url'];
|
||||
$data['mimetype'] = $attachment['mediaType'];
|
||||
$data['mimetype'] = $attachment['mediaType'] ?? null;
|
||||
$data['height'] = $attachment['height'] ?? null;
|
||||
$data['width'] = $attachment['width'] ?? null;
|
||||
$data['size'] = $attachment['size'] ?? null;
|
||||
|
|
|
@ -1454,6 +1454,14 @@ class Receiver
|
|||
$object_data['attachments'] = array_merge($object_data['attachments'], self::processAttachmentUrls($object['as:url'] ?? []));
|
||||
}
|
||||
|
||||
// For page types we expect that the alternate url posts to some page.
|
||||
// So we add this to the attachments if it differs from the id.
|
||||
// Currently only Lemmy is using the page type.
|
||||
if (($object_data['object_type'] == 'as:Page') && !empty($object_data['alternate-url']) && !Strings::compareLink($object_data['alternate-url'], $object_data['id'])) {
|
||||
$object_data['attachments'][] = ['url' => $object_data['alternate-url']];
|
||||
$object_data['alternate-url'] = null;
|
||||
}
|
||||
|
||||
$receiverdata = self::getReceivers($object, $object_data['actor'], $object_data['tags'], true);
|
||||
$receivers = $reception_types = [];
|
||||
foreach ($receiverdata as $key => $data) {
|
||||
|
|
Loading…
Reference in a new issue