]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/Photo.php
Issue 9584: Only search posts from federated networks
[friendica.git] / src / Model / Photo.php
index 45a8a92e1993ee1aa7caa6769ff2e33e26c4d9ce..0f03b54b0dbac9677dfaca7ee2cb48a6211f5e76 100644 (file)
@@ -31,8 +31,8 @@ use Friendica\Model\Storage\SystemResource;
 use Friendica\Object\Image;
 use Friendica\Util\DateTimeFormat;
 use Friendica\Util\Images;
-use Friendica\Util\Network;
-use Friendica\Util\Security;
+use Friendica\Security\Security;
+use Friendica\Util\Proxy;
 use Friendica\Util\Strings;
 
 require_once "include/dba.php";
@@ -42,6 +42,8 @@ require_once "include/dba.php";
  */
 class Photo
 {
+       const CONTACT_PHOTOS = 'Contact Photos';
+
        /**
         * Select rows from the photo table and returns them as array
         *
@@ -409,7 +411,7 @@ class Photo
                $micro = "";
 
                $photo = DBA::selectFirst(
-                       "photo", ["resource-id"], ["uid" => $uid, "contact-id" => $cid, "scale" => 4, "album" => "Contact Photos"]
+                       "photo", ["resource-id"], ["uid" => $uid, "contact-id" => $cid, "scale" => 4, "album" => self::CONTACT_PHOTOS]
                );
                if (!empty($photo['resource-id'])) {
                        $resource_id = $photo["resource-id"];
@@ -421,7 +423,7 @@ class Photo
 
                $filename = basename($image_url);
                if (!empty($image_url)) {
-                       $ret = Network::curl($image_url, true);
+                       $ret = DI::httpRequest()->get($image_url);
                        $img_str = $ret->getBody();
                        $type = $ret->getContentType();
                } else {
@@ -432,15 +434,13 @@ class Photo
                        return false;
                }
 
-               if (empty($type)) {
-                       $type = Images::guessType($image_url, true);
-               }
+               $type = Images::getMimeTypeByData($img_str, $image_url, $type);
 
                $Image = new Image($img_str, $type);
                if ($Image->isValid()) {
                        $Image->scaleToSquare(300);
 
-                       $r = self::store($Image, $uid, $cid, $resource_id, $filename, "Contact Photos", 4);
+                       $r = self::store($Image, $uid, $cid, $resource_id, $filename, self::CONTACT_PHOTOS, 4);
 
                        if ($r === false) {
                                $photo_failure = true;
@@ -448,7 +448,7 @@ class Photo
 
                        $Image->scaleDown(80);
 
-                       $r = self::store($Image, $uid, $cid, $resource_id, $filename, "Contact Photos", 5);
+                       $r = self::store($Image, $uid, $cid, $resource_id, $filename, self::CONTACT_PHOTOS, 5);
 
                        if ($r === false) {
                                $photo_failure = true;
@@ -456,7 +456,7 @@ class Photo
 
                        $Image->scaleDown(48);
 
-                       $r = self::store($Image, $uid, $cid, $resource_id, $filename, "Contact Photos", 6);
+                       $r = self::store($Image, $uid, $cid, $resource_id, $filename, self::CONTACT_PHOTOS, 6);
 
                        if ($r === false) {
                                $photo_failure = true;
@@ -495,9 +495,10 @@ class Photo
                }
 
                if ($photo_failure) {
-                       $image_url = DI::baseUrl() . "/images/person-300.jpg";
-                       $thumb = DI::baseUrl() . "/images/person-80.jpg";
-                       $micro = DI::baseUrl() . "/images/person-48.jpg";
+                       $contact = Contact::getById($cid) ?: [];
+                       $image_url = Contact::getDefaultAvatar($contact, Proxy::SIZE_SMALL);
+                       $thumb = Contact::getDefaultAvatar($contact, Proxy::SIZE_THUMB);
+                       $micro = Contact::getDefaultAvatar($contact, Proxy::SIZE_MICRO);
                }
 
                return [$image_url, $thumb, $micro];
@@ -564,8 +565,8 @@ class Photo
                                        WHERE `uid` = %d  AND `album` != '%s' AND `album` != '%s' $sql_extra
                                        GROUP BY `album` ORDER BY `created` DESC",
                                        intval($uid),
-                                       DBA::escape("Contact Photos"),
-                                       DBA::escape(DI::l10n()->t("Contact Photos"))
+                                       DBA::escape(self::CONTACT_PHOTOS),
+                                       DBA::escape(DI::l10n()->t(self::CONTACT_PHOTOS))
                                );
                        } else {
                                // This query doesn't do the count and is much faster
@@ -573,8 +574,8 @@ class Photo
                                        FROM `photo` USE INDEX (`uid_album_scale_created`)
                                        WHERE `uid` = %d  AND `album` != '%s' AND `album` != '%s' $sql_extra",
                                        intval($uid),
-                                       DBA::escape("Contact Photos"),
-                                       DBA::escape(DI::l10n()->t("Contact Photos"))
+                                       DBA::escape(self::CONTACT_PHOTOS),
+                                       DBA::escape(DI::l10n()->t(self::CONTACT_PHOTOS))
                                );
                        }
                        DI::cache()->set($key, $albums, Duration::DAY);