. * */ namespace Friendica\Factory\Api\Mastodon; use Friendica\BaseFactory; use Friendica\Content\Text\BBCode; use Friendica\Core\Protocol; use Friendica\Model\Post; use Friendica\Network\HTTPException; class StatusSource extends BaseFactory { /** * @param int $uriId Uri-ID of the item * * @return \Friendica\Object\Api\Mastodon\StatusSource * @throws HTTPException\InternalServerErrorException * @throws \ImagickException*@throws \Exception */ public function createFromUriId(int $uriId, int $uid): \Friendica\Object\Api\Mastodon\StatusSource { $post = Post::selectFirst(['uri-id', 'raw-body', 'body', 'title'], ['uri-id' => $uriId, 'uid' => [0, $uid]]); $spoiler_text = $post['title'] ?: BBCode::toPlaintext(BBCode::getAbstract($post['body'], Protocol::ACTIVITYPUB)); $body = BBCode::toMarkdown(Post\Media::removeFromEndOfBody($post['body'])); return new \Friendica\Object\Api\Mastodon\StatusSource($post['uri-id'], $body, $spoiler_text); } }