X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FContact.php;h=f35808f050c9843986cabf3be7f3f25d6bf0c1b7;hb=4f332e3b5202f39809a14aaf5df2bbca2417af11;hp=1408e4a0cb3f3ece6efcd30d3f0d0f6365e5f28a;hpb=d54d2c58e87dd576fe27809c501ce9a7574fb45a;p=friendica.git diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 1408e4a0cb..f35808f050 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -570,7 +570,7 @@ class Contact { if (!parse_url($url, PHP_URL_SCHEME)) { $addr_parts = explode('@', $url); - return (count($addr_parts) == 2) && ($addr_parts[1] == DI::baseUrl()->getHostname()); + return (count($addr_parts) == 2) && ($addr_parts[1] == DI::baseUrl()->getHost()); } return Strings::compareLink(self::getBasepath($url, true), DI::baseUrl()); @@ -2204,23 +2204,33 @@ class Contact return; } + if (!Network::isValidHttpUrl($avatar)) { + Logger::warning('Invalid avatar', ['cid' => $cid, 'avatar' => $avatar]); + $avatar = ''; + } + $uid = $contact['uid']; // Only update the cached photo links of public contacts when they already are cached if (($uid == 0) && !$force && empty($contact['thumb']) && empty($contact['micro']) && !$create_cache) { if (($contact['avatar'] != $avatar) || empty($contact['blurhash'])) { $update_fields = ['avatar' => $avatar]; - if (!Network::isLocalLink($avatar) && Network::isValidHttpUrl($avatar)) { - $fetchResult = HTTPSignature::fetchRaw($avatar, 0, [HttpClientOptions::ACCEPT_CONTENT => [HttpClientAccept::IMAGE]]); - - $img_str = $fetchResult->getBody(); - if (!empty($img_str)) { - $image = new Image($img_str, Images::getMimeTypeByData($img_str)); - if ($image->isValid()) { - $update_fields['blurhash'] = $image->getBlurHash(); - } else { - return; + if (!Network::isLocalLink($avatar)) { + try { + $fetchResult = HTTPSignature::fetchRaw($avatar, 0, [HttpClientOptions::ACCEPT_CONTENT => [HttpClientAccept::IMAGE]]); + + $img_str = $fetchResult->getBody(); + if (!empty($img_str)) { + $image = new Image($img_str, Images::getMimeTypeByData($img_str)); + if ($image->isValid()) { + $update_fields['blurhash'] = $image->getBlurHash(); + } else { + return; + } } + } catch (\Exception $exception) { + Logger::notice('Error fetching avatar', ['avatar' => $avatar, 'exception' => $exception]); + return; } } elseif (!empty($contact['blurhash'])) { $update_fields['blurhash'] = null;