{
$app = self::getApp();
- // @TODO: Replace with parameter from router
- // if the first argument is ".well-known", print the well-known text
- if (($app->argc > 1) && ($app->argv[0] == '.well-known')) {
- self::printWellKnown($app);
- // otherwise print the nodeinfo
- } elseif ($parameters['version'] == '1.0') {
+ if ($parameters['version'] == '1.0') {
self::printNodeInfo1($app);
} elseif ($parameters['version'] == '2.0') {
self::printNodeInfo2($app);
}
}
- /**
- * Prints the well-known nodeinfo redirect
- *
- * @param App $app
- *
- * @throws \Friendica\Network\HTTPException\NotFoundException
- */
- private static function printWellKnown(App $app)
- {
- $nodeinfo = [
- 'links' => [
- ['rel' => 'http://nodeinfo.diaspora.software/ns/schema/1.0',
- 'href' => $app->getBaseURL() . '/nodeinfo/1.0'],
- ['rel' => 'http://nodeinfo.diaspora.software/ns/schema/2.0',
- 'href' => $app->getBaseURL() . '/nodeinfo/2.0'],
- ]
- ];
-
- header('Content-type: application/json; charset=utf-8');
- echo json_encode($nodeinfo, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
- exit;
- }
-
/**
* Return the supported services
*
--- /dev/null
+<?php
+
+namespace Friendica\Module\WellKnown;
+
+use Friendica\App;
+use Friendica\BaseModule;
+
+/**
+ * Standardized way of exposing metadata about a server running one of the distributed social networks.
+ * @see https://github.com/jhass/nodeinfo/blob/master/PROTOCOL.md
+ */
+class NodeInfo extends BaseModule
+{
+ public static function rawContent(array $parameters = [])
+ {
+ $app = self::getApp();
+
+ self::printWellKnown($app);
+ }
+
+ /**
+ * Prints the well-known nodeinfo redirect
+ *
+ * @param App $app
+ *
+ * @throws \Friendica\Network\HTTPException\NotFoundException
+ */
+ private static function printWellKnown(App $app)
+ {
+ $nodeinfo = [
+ 'links' => [
+ ['rel' => 'http://nodeinfo.diaspora.software/ns/schema/1.0',
+ 'href' => $app->getBaseURL() . '/nodeinfo/1.0'],
+ ['rel' => 'http://nodeinfo.diaspora.software/ns/schema/2.0',
+ 'href' => $app->getBaseURL() . '/nodeinfo/2.0'],
+ ]
+ ];
+
+ header('Content-type: application/json; charset=utf-8');
+ echo json_encode($nodeinfo, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
+ exit;
+ }
+}
'/.well-known' => [
'/host-meta' => [Module\WellKnown\HostMeta::class, [R::GET]],
- '/nodeinfo' => [Module\NodeInfo::class, [R::GET]],
+ '/nodeinfo' => [Module\WellKnown\NodeInfo::class, [R::GET]],
'/webfinger' => [Module\Xrd::class, [R::GET]],
'/x-social-relay' => [Module\WellKnown\XSocialRelay::class, [R::GET]],
],