X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FObjects.php;h=783e849bfe35cd756d8feaae99dde9867115278b;hb=6cbfa5b862ce7a241fd4339129749f87dc19760c;hp=2104e8042fd98e3c2cc9f7bc57eb9782a7627826;hpb=41f781c52af32b8748368b5c51f68b31fe0b7164;p=friendica.git diff --git a/src/Module/Objects.php b/src/Module/Objects.php index 2104e8042f..783e849bfe 100644 --- a/src/Module/Objects.php +++ b/src/Module/Objects.php @@ -5,8 +5,8 @@ namespace Friendica\Module; use Friendica\BaseModule; -use Friendica\Core\System; use Friendica\Database\DBA; +use Friendica\DI; use Friendica\Model\Item; use Friendica\Protocol\ActivityPub; @@ -15,16 +15,16 @@ use Friendica\Protocol\ActivityPub; */ class Objects extends BaseModule { - public static function rawContent() + public static function rawContent(array $parameters = []) { - $a = self::getApp(); + $a = DI::app(); if (empty($a->argv[1])) { throw new \Friendica\Network\HTTPException\NotFoundException(); } if (!ActivityPub::isRequest()) { - $a->internalRedirect(str_replace('objects/', 'display/', $a->query_string)); + DI::baseUrl()->redirect(str_replace('objects/', 'display/', DI::args()->getQueryString())); } /// @todo Add Authentication to enable fetching of non public content @@ -37,12 +37,19 @@ class Objects extends BaseModule // If no original post could be found, it could possibly be a forum post, there we remove the "origin" field. // @TODO: Replace with parameter from router $item = Item::selectFirst(['id', 'author-link'], ['guid' => $a->argv[1], 'private' => false]); - if (!DBA::isResult($item) || !strstr($item['author-link'], System::baseUrl())) { + if (!DBA::isResult($item) || !strstr($item['author-link'], DI::baseUrl()->get())) { throw new \Friendica\Network\HTTPException\NotFoundException(); } } - $data = ActivityPub\Transmitter::createObjectFromItemID($item['id']); + $activity = ActivityPub\Transmitter::createActivityFromItem($item['id'], true); + // Only display "Create" activity objects here, no reshares or anything else + if (!is_array($activity['object']) || ($activity['type'] != 'Create')) { + throw new \Friendica\Network\HTTPException\NotFoundException(); + } + + $data = ['@context' => ActivityPub::CONTEXT]; + $data = array_merge($data, $activity['object']); header('Content-Type: application/activity+json'); echo json_encode($data);