]> git.mxchange.org Git - friendica.git/commitdiff
Publish the provider fields in the API
authorMichael <heluecht@pirati.ca>
Mon, 26 Oct 2020 19:40:09 +0000 (19:40 +0000)
committerMichael <heluecht@pirati.ca>
Mon, 26 Oct 2020 19:40:09 +0000 (19:40 +0000)
src/Content/Text/BBCode.php
src/Factory/Api/Mastodon/Status.php
src/Object/Api/Mastodon/Card.php

index e241abadc89b6efb9b83a0271354a84575c36dac..1229337294c61bc919832884120582dd3b912156 100644 (file)
@@ -146,13 +146,15 @@ class BBCode
        public static function getAttachmentData($body)
        {
                $data = [
-                       'type'        => '',
-                       'text'        => '',
-                       'after'       => '',
-                       'image'       => null,
-                       'url'         => '',
-                       'title'       => '',
-                       'description' => '',
+                       'type'          => '',
+                       'text'          => '',
+                       'after'         => '',
+                       'image'         => null,
+                       'url'           => '',
+                       'provider_name' => '',
+                       'provider_url'  => '',
+                       'title'         => '',
+                       'description'   => '',
                ];
 
                if (!preg_match("/(.*)\[attachment(.*?)\](.*?)\[\/attachment\](.*)/ism", $body, $match)) {
@@ -253,6 +255,16 @@ class BBCode
 
                $data['after'] = trim($match[4]);
 
+               $parts = parse_url($data['url']);
+               if (!empty($parts['scheme']) && !empty($parts['host'])) {
+                       $data['provider_name'] = $parts['host'];
+                       $data['provider_url'] = $parts['scheme'] . '://' . $parts['host'];
+
+                       if (!empty($parts['port'])) {
+                               $data['provider_url'] .= ':' . $parts['port'];
+                       }
+               }
+
                return $data;
        }
 
index 0069c91b32619e57385b84598a4f243be74ce981..b4ef0a0f7fa568cda0694911488ee8a825cf8ef6 100644 (file)
@@ -78,7 +78,7 @@ class Status extends BaseFactory
                );
 
                $sensitive = DBA::exists('tag-view', ['uri-id' => $uriId, 'name' => 'nsfw']);
-               $application = new \Friendica\Object\Api\Mastodon\Application($item['app']);
+               $application = new \Friendica\Object\Api\Mastodon\Application($item['app'] ?? '');
                $mentions = DI::mstdnMention()->createFromUriId($uriId);
                $tags = DI::mstdnTag()->createFromUriId($uriId);
 
index 46aea3c2802bea268f55e92eb96ca0cdc9729976..2f46e4779de5de2d36d065eb86025ad93d1b609d 100644 (file)
 namespace Friendica\Object\Api\Mastodon;
 
 use Friendica\BaseEntity;
-use Friendica\Content\Text\BBCode;
-use Friendica\Object\Api\Mastodon\Status\Counts;
-use Friendica\Object\Api\Mastodon\Status\UserAttributes;
-use Friendica\Util\DateTimeFormat;
 
 /**
  * Class Card
@@ -43,21 +39,27 @@ class Card extends BaseEntity
        /** @var string */
        protected $type;
        /** @var string */
+       protected $provider_name;
+       /** @var string */
+       protected $provider_url;
+       /** @var string */
        protected $image;
 
        /**
-        * Creates a status record from an item record.
+        * Creates a card record from an attachment array.
         *
         * @param array   $attachment Attachment record
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
        public function __construct(array $attachment)
        {
-               $this->url         = $attachment['url'] ?? '';
-               $this->title       = $attachment['title'] ?? '';
-               $this->description = $attachment['description'] ?? '';
-               $this->type        = $attachment['type'] ?? '';
-               $this->image       = $attachment['image'] ?? '';
+               $this->url           = $attachment['url'] ?? '';
+               $this->title         = $attachment['title'] ?? '';
+               $this->description   = $attachment['description'] ?? '';
+               $this->type          = $attachment['type'] ?? '';
+               $this->image         = $attachment['image'] ?? '';
+               $this->provider_name = $attachment['provider_name'] ?? '';
+               $this->provider_url  = $attachment['provider_url'] ?? '';
        }
 
        /**