X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FNodeInfo210.php;h=43857c87aa4033c1f0e732ab547fe8fa3948780c;hb=c18bda9397d0ea9d68ea7a81e6292459317fdbf5;hp=cb55411f23cfbd3414f72eaf7ef12b6c932cf85b;hpb=b67c10812ab962d1ec05cd8c9e256c503d64ca60;p=friendica.git diff --git a/src/Module/NodeInfo210.php b/src/Module/NodeInfo210.php index cb55411f23..43857c87aa 100644 --- a/src/Module/NodeInfo210.php +++ b/src/Module/NodeInfo210.php @@ -21,11 +21,15 @@ namespace Friendica\Module; +use Friendica\App; use Friendica\BaseModule; +use Friendica\Capabilities\ICanCreateResponses; use Friendica\Core\Addon; -use Friendica\Core\System; -use Friendica\DI; +use Friendica\Core\Config\Capability\IManageConfigValues; +use Friendica\Core\L10n; use Friendica\Model\Nodeinfo; +use Friendica\Util\Profiler; +use Psr\Log\LoggerInterface; /** * Version 1.0 of Nodeinfo 2, a sStandardized way of exposing metadata about a server running one of the distributed social networks. @@ -33,30 +37,38 @@ use Friendica\Model\Nodeinfo; */ class NodeInfo210 extends BaseModule { - public function rawContent() + /** @var IManageConfigValues */ + protected $config; + + public function __construct(L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, IManageConfigValues $config, array $server, array $parameters = []) { - $config = DI::config(); + parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters); + + $this->config = $config; + } + protected function rawContent(array $request = []) + { $nodeinfo = [ - 'version' => '1.0', - 'server' => [ - 'baseUrl' => DI::baseUrl()->get(), - 'name' => $config->get('config', 'sitename'), + 'version' => '1.0', + 'server' => [ + 'baseUrl' => $this->baseUrl->get(), + 'name' => $this->config->get('config', 'sitename'), 'software' => 'friendica', 'version' => FRIENDICA_VERSION . '-' . DB_UPDATE_VERSION, ], - 'organization' => Nodeinfo::getOrganization($config), + 'organization' => Nodeinfo::getOrganization($this->config), 'protocols' => ['dfrn', 'activitypub'], 'services' => [], - 'openRegistrations' => intval($config->get('config', 'register_policy')) !== Register::CLOSED, + 'openRegistrations' => intval($this->config->get('config', 'register_policy')) !== Register::CLOSED, 'usage' => [], ]; - if (!empty($config->get('system', 'diaspora_enabled'))) { + if (!empty($this->config->get('system', 'diaspora_enabled'))) { $nodeinfo['protocols'][] = 'diaspora'; } - if (empty($config->get('system', 'ostatus_disabled'))) { + if (empty($this->config->get('system', 'ostatus_disabled'))) { $nodeinfo['protocols'][] = 'ostatus'; } @@ -72,10 +84,11 @@ class NodeInfo210 extends BaseModule $nodeinfo['services']['inbound'][] = 'rss2.0'; $nodeinfo['services']['outbound'][] = 'atom1.0'; - if (function_exists('imap_open') && !$config->get('system', 'imap_disabled')) { + if (function_exists('imap_open') && !$this->config->get('system', 'imap_disabled')) { $nodeinfo['services']['inbound'][] = 'imap'; } - System::jsonExit($nodeinfo, 'application/json; charset=utf-8', JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); + $this->response->setType(ICanCreateResponses::TYPE_JSON, 'application/json; charset=utf-8'); + $this->response->addContent(json_encode($nodeinfo, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)); } }