]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Photo.php
Changes:
[friendica.git] / src / Module / Photo.php
index 7f3429b028afa03f792c5618e7d4f71a774f4dff..133c91d8d93d8e952f7650ae490ea55199d4b882 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2010-2023, the Friendica project
+ * @copyright Copyright (C) 2010-2024, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -22,6 +22,7 @@
 namespace Friendica\Module;
 
 use Friendica\BaseModule;
+use Friendica\Contact\Header;
 use Friendica\Core\Logger;
 use Friendica\Core\Protocol;
 use Friendica\Database\DBA;
@@ -49,7 +50,7 @@ use Friendica\Worker\UpdateContact;
 /**
  * Photo Module
  */
-class Photo extends BaseModule
+class Photo extends BaseApi
 {
        /**
         * Module initializer
@@ -76,7 +77,7 @@ class Photo extends BaseModule
                        throw new NotModifiedException();
                }
 
-               Profile::addVisitorCookieForHTTPSigner();
+               Profile::addVisitorCookieForHTTPSigner($this->server);
 
                $customsize = 0;
                $square_resize = true;
@@ -149,7 +150,7 @@ class Photo extends BaseModule
                                        }
                        }
 
-                       $photo = MPhoto::getPhoto($photoid, $scale);
+                       $photo = MPhoto::getPhoto($photoid, $scale, self::getCurrentUserID());
                        if ($photo === false) {
                                throw new HTTPException\NotFoundException(DI::l10n()->t('The Photo with id %s is not available.', $photoid));
                        }
@@ -282,7 +283,7 @@ class Photo extends BaseModule
                                }
 
                                if (Network::isLocalLink($url) && preg_match('|.*?/photo/(.*[a-fA-F0-9])\-(.*[0-9])\..*[\w]|', $url, $matches)) {
-                                       return MPhoto::getPhoto($matches[1], $matches[2]);
+                                       return MPhoto::getPhoto($matches[1], $matches[2], self::getCurrentUserID());
                                }
 
                                return MPhoto::createPhotoForExternalResource($url, (int)DI::userSession()->getLocalUserId(), $media['mimetype'] ?? '', $media['blurhash'], $width, $height);
@@ -293,7 +294,7 @@ class Photo extends BaseModule
                                }
 
                                if (Network::isLocalLink($media['url']) && preg_match('|.*?/photo/(.*[a-fA-F0-9])\-(.*[0-9])\..*[\w]|', $media['url'], $matches)) {
-                                       return MPhoto::getPhoto($matches[1], $matches[2]);
+                                       return MPhoto::getPhoto($matches[1], $matches[2], self::getCurrentUserID());
                                }
 
                                return MPhoto::createPhotoForExternalResource($media['url'], (int)DI::userSession()->getLocalUserId(), $media['mimetype'], $media['blurhash'], $media['width'], $media['height']);
@@ -351,9 +352,8 @@ class Photo extends BaseModule
                                }
 
                                // If it is a local link, we save resources by just redirecting to it.
-                               if (Network::isLocalLink($url)) {
+                               if (!empty($url) && Network::isLocalLink($url)) {
                                        System::externalRedirect($url);
-                                       System::exit();
                                }
 
                                $mimetext = '';
@@ -402,7 +402,6 @@ class Photo extends BaseModule
                                        }
                                        if (Network::isLocalLink($url)) {
                                                System::externalRedirect($url);
-                                               System::exit();
                                        }
                                }
                                return MPhoto::createPhotoForExternalResource($url, 0, $mimetext, $contact['blurhash'] ?? null, $customsize, $customsize);
@@ -430,7 +429,6 @@ class Photo extends BaseModule
                                        $url = Contact::getDefaultHeader($contact);
                                        if (Network::isLocalLink($url)) {
                                                System::externalRedirect($url);
-                                               System::exit();
                                        }
                                }
                                return MPhoto::createPhotoForExternalResource($url);
@@ -467,7 +465,6 @@ class Photo extends BaseModule
 
                        if (Network::isLocalLink($default)) {
                                System::externalRedirect($default);
-                               System::exit();
                        }
 
                        $parts = parse_url($default);
@@ -486,6 +483,6 @@ class Photo extends BaseModule
                if (!empty($photo)) {
                        return $photo;
                }
-               return MPhoto::createPhotoForImageData(file_get_contents(DI::basePath() . '/images/friendica-banner.jpg'));
+               return MPhoto::createPhotoForImageData(file_get_contents(DI::basePath() . (new Header(DI::config()))->getMastodonBannerPath()));
        }
 }