]> git.mxchange.org Git - friendica.git/commitdiff
Handle invalid avatar pictures
authorMichael <heluecht@pirati.ca>
Sun, 24 Oct 2021 11:33:35 +0000 (11:33 +0000)
committerMichael <heluecht@pirati.ca>
Sun, 24 Oct 2021 11:33:35 +0000 (11:33 +0000)
src/Module/Photo.php

index b43add0ebc3dd85f049122fcf48f1c7a49bfcd7d..0b03f4a7995965bbfaa5bbc36988357973b6c24c 100644 (file)
@@ -36,6 +36,7 @@ use Friendica\Network\HTTPException;
 use Friendica\Object\Image;
 use Friendica\Util\Images;
 use Friendica\Util\Network;
+use Friendica\Util\ParseUrl;
 use Friendica\Util\Proxy;
 
 /**
@@ -284,14 +285,26 @@ class Photo extends BaseModule
                                        $url = $contact['avatar'];
                                } elseif (!empty($contact['avatar'])) {
                                        $url = $contact['avatar'];
-                               } elseif ($customsize <= Proxy::PIXEL_MICRO) {
-                                       $url = Contact::getDefaultAvatar($contact, Proxy::SIZE_MICRO);
-                               } elseif ($customsize <= Proxy::PIXEL_THUMB) {
-                                       $url = Contact::getDefaultAvatar($contact, Proxy::SIZE_THUMB);
-                               } else {
-                                       $url = Contact::getDefaultAvatar($contact, Proxy::SIZE_SMALL);
                                }
-                               return MPhoto::createPhotoForExternalResource($url);
+                               $mimetext = '';
+                               if (!empty($url)) {
+                                       $mime = ParseUrl::getContentType($url);
+                                       if (empty($mime) || ($mime[0] != 'image')) {
+                                               $url = '';
+                                       } else {
+                                               $mimetext = $mime[0] . '/' . $mime[1];
+                                       }
+                               }
+                               if (empty($url)) {
+                                       if ($customsize <= Proxy::PIXEL_MICRO) {
+                                               $url = Contact::getDefaultAvatar($contact, Proxy::SIZE_MICRO);
+                                       } elseif ($customsize <= Proxy::PIXEL_THUMB) {
+                                               $url = Contact::getDefaultAvatar($contact, Proxy::SIZE_THUMB);
+                                       } else {
+                                               $url = Contact::getDefaultAvatar($contact, Proxy::SIZE_SMALL);
+                                       }
+                               }
+                               return MPhoto::createPhotoForExternalResource($url, 0, $mimetext);
                        case "header":
                                $contact = Contact::getById($id, ['uid', 'url', 'header']);
                                if (empty($contact)) {