4 use Friendica\Core\Config;
5 use Friendica\Core\System;
7 require_once 'mod/hostxrd.php';
8 require_once 'mod/nodeinfo.php';
9 require_once 'mod/xrd.php';
11 function _well_known_init(App $a)
14 switch ($a->argv[1]) {
18 case "x-social-relay":
22 nodeinfo_wellknown($a);
29 System::httpExit(404);
33 function wk_social_relay()
35 $subscribe = (bool) Config::get('system', 'relay_subscribe', false);
38 $scope = Config::get('system', 'relay_scope', SR_SCOPE_ALL);
40 $scope = SR_SCOPE_NONE;
45 if ($scope == SR_SCOPE_TAGS) {
46 $server_tags = Config::get('system', 'relay_server_tags');
47 $tagitems = explode(",", $server_tags);
49 /// @todo Check if it was better to use "strtolower" on the tags
50 foreach ($tagitems AS $tag) {
51 $tag = trim($tag, "# ");
55 if (Config::get('system', 'relay_user_tags')) {
56 $terms = q("SELECT DISTINCT(`term`) FROM `search`");
58 foreach ($terms AS $term) {
59 $tag = trim($term["term"], "#");
66 foreach ($tags AS $tag) {
73 'subscribe' => $subscribe,
76 'protocols' => ['diaspora' => ['receive' => System::baseUrl() . '/receive/public'],
77 'dfrn' => ['receive' => System::baseUrl() . '/dfrn_notify']]
80 header('Content-type: application/json; charset=utf-8');
81 echo json_encode($relay, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);