return $fields;
}
- $fetchResult = HTTPSignature::fetchRaw($avatar, 0, [HttpClientOptions::ACCEPT_CONTENT => [HttpClientAccept::IMAGE]]);
+ try {
+ $fetchResult = HTTPSignature::fetchRaw($avatar, 0, [HttpClientOptions::ACCEPT_CONTENT => [HttpClientAccept::IMAGE]]);
+ } catch (\Exception $exception) {
+ Logger::notice('Avatar is invalid', ['avatar' => $avatar, 'exception' => $exception]);
+ return $fields;
+ }
$img_str = $fetchResult->getBody();
if (empty($img_str)) {
return $fields;
}
- $filename = self::getFilename($contact['url']);
+ $filename = self::getFilename($contact['url'], $avatar);
$timestamp = time();
$fields['blurhash'] = $image->getBlurHash();
return $fields;
}
- $filename = self::getFilename($contact['url']);
+ $filename = self::getFilename($contact['url'], $contact['avatar']);
$timestamp = time();
$fields['photo'] = self::storeAvatarCache($image, $filename, Proxy::PIXEL_SMALL, $timestamp);
return $fields;
}
- private static function getFilename(string $url): string
+ private static function getFilename(string $url, string $host): string
{
- $guid = Item::guidFromUri($url);
+ $guid = Item::guidFromUri($url, $host);
return substr($guid, 0, 2) . '/' . substr($guid, 3, 2) . '/' . substr($guid, 5, 3) . '/' .
substr($guid, 9, 2) .'/' . substr($guid, 11, 2) . '/' . substr($guid, 13, 4). '/' . substr($guid, 18) . '-';