X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FContact%2FAvatar.php;h=fc4b7e38cba62279c37d05ca04877e5fa71f5163;hb=15eb8407928c24a96c17528304e23b0558c37bba;hp=e039a52799fc524e98f605cbb00ad51e198307a1;hpb=21f172c585aff8c606774a05fde1548ddff1667d;p=friendica.git diff --git a/src/Contact/Avatar.php b/src/Contact/Avatar.php index e039a52799..fc4b7e38cb 100644 --- a/src/Contact/Avatar.php +++ b/src/Contact/Avatar.php @@ -73,7 +73,12 @@ class Avatar 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)) { @@ -87,7 +92,7 @@ class Avatar return $fields; } - $filename = self::getFilename($contact['url']); + $filename = self::getFilename($contact['url'], $avatar); $timestamp = time(); $fields['blurhash'] = $image->getBlurHash(); @@ -115,7 +120,7 @@ class Avatar 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); @@ -125,9 +130,9 @@ class Avatar 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) . '-';