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)) {
$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;
}
);
$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);
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
/** @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'] ?? '';
}
/**