]> git.mxchange.org Git - friendica.git/commitdiff
Replace remaining references to default banner image by api.mastodon_banner configura...
authorHypolite Petovan <hypolite@mrpetovan.com>
Thu, 17 Aug 2023 11:35:19 +0000 (07:35 -0400)
committerHypolite Petovan <hypolite@mrpetovan.com>
Fri, 18 Aug 2023 01:58:53 +0000 (21:58 -0400)
- Ensure leading slash is present at every place the configuration value is used

src/Contact/Header.php [new file with mode: 0644]
src/Model/Contact.php
src/Module/Api/Mastodon/InstanceV2.php
src/Module/Photo.php
src/Object/Api/Mastodon/Instance.php

diff --git a/src/Contact/Header.php b/src/Contact/Header.php
new file mode 100644 (file)
index 0000000..d5116d2
--- /dev/null
@@ -0,0 +1,47 @@
+<?php
+/**
+ * @copyright Copyright (C) 2010-2023, the Friendica project
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace Friendica\Contact;
+
+use Friendica\Core\Config\Capability\IManageConfigValues;
+
+class Header
+{
+       /** @var IManageConfigValues */
+       private $config;
+
+       public function __construct(IManageConfigValues $config)
+       {
+               $this->config = $config;
+       }
+
+       /**
+        * Returns the Mastodon banner path relative to the Friendica folder.
+        *
+        * Ensures the existence of a leading slash.
+        *
+        * @return string
+        */
+       public function getMastodonBannerPath(): string
+       {
+               return '/' . ltrim($this->config->get('api', 'mastodon_banner'), '/');
+       }
+}
index c6001ebb443fde9a074b8ef388b58a3de44734f2..d91abe9bcdb0b3070fa579b0171be4da3b4ef6e1 100644 (file)
@@ -22,6 +22,7 @@
 namespace Friendica\Model;
 
 use Friendica\Contact\Avatar;
+use Friendica\Contact\Header;
 use Friendica\Contact\Introduction\Exception\IntroductionNotFoundException;
 use Friendica\Contact\LocalRelationship\Entity\LocalRelationship;
 use Friendica\Content\Conversation as ConversationContent;
@@ -1899,7 +1900,7 @@ class Contact
                switch ($platform) {
                        case 'friendica':
                        case 'friendika':
-                               $header = DI::baseUrl() . '/images/friendica-banner.jpg';
+                               $header = DI::baseUrl() . (new Header(DI::config()))->getMastodonBannerPath();
                                break;
                        case 'diaspora':
                                /**
index 402e0ae93c9fa06a0871092e0462676c46c2ae58..bf5cbcfb5575dfc2d858af772493d285517afa93 100644 (file)
@@ -23,6 +23,7 @@ namespace Friendica\Module\Api\Mastodon;
 
 use Exception;
 use Friendica\App;
+use Friendica\Contact\Header;
 use Friendica\Core\Config\Capability\IManageConfigValues;
 use Friendica\Core\L10n;
 use Friendica\Core\System;
@@ -49,6 +50,9 @@ class InstanceV2 extends BaseApi
        /** @var IManageConfigValues */
        private $config;
 
+       /** @var Header */
+       private $contactHeader;
+
        public function __construct(
                App $app,
                L10n $l10n,
@@ -64,8 +68,9 @@ class InstanceV2 extends BaseApi
        ) {
                parent::__construct($app, $l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
 
-               $this->database = $database;
-               $this->config   = $config;
+               $this->database      = $database;
+               $this->config        = $config;
+               $this->contactHeader = new Header($config);
        }
 
        /**
@@ -82,7 +87,7 @@ class InstanceV2 extends BaseApi
                $version              = '2.8.0 (compatible; Friendica ' . App::VERSION . ')';
                $description          = $this->config->get('config', 'info');
                $usage                = $this->buildUsageInfo();
-               $thumbnail            = new InstanceEntity\Thumbnail($this->baseUrl->withPath('images/friendica-banner.jpg'));
+               $thumbnail            = new InstanceEntity\Thumbnail($this->baseUrl . $this->contactHeader->getMastodonBannerPath());
                $languages            = [$this->config->get('system', 'language')];
                $configuration        = $this->buildConfigurationInfo();
                $registration         = $this->buildRegistrationsInfo();
index 954b3f3eecca60dab3911b439eab9a08fea4d734..c8e0656d2df62ac9014697cdabd14a636ad73526 100644 (file)
@@ -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;
@@ -482,6 +483,6 @@ class Photo extends BaseApi
                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()));
        }
 }
index 2012182519988dea18823ee12fe4fe5ecdd5ea2e..a7549afd8489cd055cf9cbe59fe994403c85cfd1 100644 (file)
@@ -24,6 +24,7 @@ namespace Friendica\Object\Api\Mastodon;
 use Friendica\App;
 use Friendica\App\BaseURL;
 use Friendica\BaseDataTransferObject;
+use Friendica\Contact\Header;
 use Friendica\Core\Config\Capability\IManageConfigValues;
 use Friendica\Database\Database;
 use Friendica\DI;
@@ -91,7 +92,7 @@ class Instance extends BaseDataTransferObject
                $this->version           = '2.8.0 (compatible; Friendica ' . App::VERSION . ')';
                $this->urls              = ['streaming_api' => '']; // Not supported
                $this->stats             = new Stats($config, $database);
-               $this->thumbnail         = $baseUrl . $config->get('api', 'mastodon_banner');
+               $this->thumbnail         = $baseUrl . (new Header($config))->getMastodonBannerPath();
                $this->languages         = [$config->get('system', 'language')];
                $this->max_toot_chars    = (int)$config->get('config', 'api_import_size', $config->get('config', 'max_import_size'));
                $this->registrations     = ($register_policy != Register::CLOSED);