2019-11-28 02:07:34 -05:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Friendica\Module\WellKnown;
|
|
|
|
|
|
|
|
use Friendica\App;
|
|
|
|
use Friendica\BaseModule;
|
2019-12-15 16:34:11 -05:00
|
|
|
use Friendica\DI;
|
2019-11-28 02:07:34 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 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 = [])
|
|
|
|
{
|
2019-12-15 16:34:11 -05:00
|
|
|
$app = DI::app();
|
2019-11-28 02:07:34 -05:00
|
|
|
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
}
|