'writable' => 1,
]);
+ if (!$contact_id) {
+ DI::logger()->warning('Contact had not been added', ['url' => $url, 'uid' => $importer['uid']]);
+ $contact_record = DBA::selectFirst('contact', ['id'], ['nurl' => Strings::normaliseLink($url), 'uid' => $importer['uid']]);
+ if (empty($contact_record['id'])) {
+ DI::logger()->error('Contact had not been found', ['url' => $url, 'uid' => $importer['uid']]);
+ return null;
+ }
+ $contact_id = $contact_record['id'];
+ }
+
// Ensure to always have the correct network type, independent from the connection request method
self::updateFromProbe($contact_id);
return $serverdata;
}
+ if (!is_countable($data)) {
+ DI::logger()->notice('Unexpected return type', ['url' => $url, 'data' => $data, 'serverdata' => $serverdata]);
+ return $serverdata;
+ }
+
if (count($data) == 1) {
$serverdata['directory-type'] = self::DT_MASTODON;
}
// When the original picture is potentially animated but the preview isn't, we override the preview
if (in_array($media['mimetype'] ?? '', ['image/gif', 'image/png']) && !in_array($imagedata['mime'], ['image/gif', 'image/png'])) {
$media['preview'] = $media['url'];
- $media['preview-width'] = $media['width'];
- $media['preview-height'] = $media['height'];
+ $media['preview-width'] = $media['width'] ?? $imagedata[0];
+ $media['preview-height'] = $media['height'] ?? $imagedata[1];
return $media;
}
*/
public static function updateItem(array $activity)
{
- $item = Post::selectFirst(['uri', 'uri-id', 'thr-parent', 'gravity', 'post-type', 'private'], ['uri' => $activity['id']]);
+ $item = Post::selectFirst(['uri', 'uri-id', 'guid', 'thr-parent', 'gravity', 'post-type', 'private'], ['uri' => $activity['id']]);
if (!DBA::isResult($item)) {
DI::logger()->notice('No existing item, item will be created', ['uri' => $activity['id']]);
$item = self::createItem($activity, false);