Merge pull request #9462 from annando/provider

Publish the provider fields in the API
This commit is contained in:
Hypolite Petovan 2020-10-26 16:04:25 -04:00 committed by GitHub
commit bdfa9f327f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 32 additions and 18 deletions

View file

@ -146,13 +146,15 @@ class BBCode
public static function getAttachmentData($body) public static function getAttachmentData($body)
{ {
$data = [ $data = [
'type' => '', 'type' => '',
'text' => '', 'text' => '',
'after' => '', 'after' => '',
'image' => null, 'image' => null,
'url' => '', 'url' => '',
'title' => '', 'provider_name' => '',
'description' => '', 'provider_url' => '',
'title' => '',
'description' => '',
]; ];
if (!preg_match("/(.*)\[attachment(.*?)\](.*?)\[\/attachment\](.*)/ism", $body, $match)) { if (!preg_match("/(.*)\[attachment(.*?)\](.*?)\[\/attachment\](.*)/ism", $body, $match)) {
@ -253,6 +255,16 @@ class BBCode
$data['after'] = trim($match[4]); $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; return $data;
} }

View file

@ -78,7 +78,7 @@ class Status extends BaseFactory
); );
$sensitive = DBA::exists('tag-view', ['uri-id' => $uriId, 'name' => 'nsfw']); $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); $mentions = DI::mstdnMention()->createFromUriId($uriId);
$tags = DI::mstdnTag()->createFromUriId($uriId); $tags = DI::mstdnTag()->createFromUriId($uriId);

View file

@ -22,10 +22,6 @@
namespace Friendica\Object\Api\Mastodon; namespace Friendica\Object\Api\Mastodon;
use Friendica\BaseEntity; 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 * Class Card
@ -43,21 +39,27 @@ class Card extends BaseEntity
/** @var string */ /** @var string */
protected $type; protected $type;
/** @var string */ /** @var string */
protected $provider_name;
/** @var string */
protected $provider_url;
/** @var string */
protected $image; protected $image;
/** /**
* Creates a status record from an item record. * Creates a card record from an attachment array.
* *
* @param array $attachment Attachment record * @param array $attachment Attachment record
* @throws \Friendica\Network\HTTPException\InternalServerErrorException * @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/ */
public function __construct(array $attachment) public function __construct(array $attachment)
{ {
$this->url = $attachment['url'] ?? ''; $this->url = $attachment['url'] ?? '';
$this->title = $attachment['title'] ?? ''; $this->title = $attachment['title'] ?? '';
$this->description = $attachment['description'] ?? ''; $this->description = $attachment['description'] ?? '';
$this->type = $attachment['type'] ?? ''; $this->type = $attachment['type'] ?? '';
$this->image = $attachment['image'] ?? ''; $this->image = $attachment['image'] ?? '';
$this->provider_name = $attachment['provider_name'] ?? '';
$this->provider_url = $attachment['provider_url'] ?? '';
} }
/** /**