X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2F_well_known.php;h=407fc756a931fef7cfe0a39adc79816def46b1b6;hb=fc87c51bb4620762590b291a9617f3ee44ec8609;hp=eedddf1e5b46c97968e8bcf6835e4dc79dffbad2;hpb=ee39aba490fb7e17ba9c01a9a4f4aedc51bee564;p=friendica.git diff --git a/mod/_well_known.php b/mod/_well_known.php index eedddf1e5b..407fc756a9 100644 --- a/mod/_well_known.php +++ b/mod/_well_known.php @@ -1,67 +1,83 @@ -argc > 1) { - switch($a->argv[1]) { - case "host-meta": - hostxrd_init($a); - break; - case "x-social-relay": - wk_social_relay($a); - break; - case "nodeinfo": - nodeinfo_wellknown($a); - break; - } - } - http_status_exit(404); - killme(); -} - -function wk_social_relay(App &$a) { - - define('SR_SCOPE_ALL', 'all'); - define('SR_SCOPE_TAGS', 'tags'); - - $subscribe = (bool)get_config('system', 'relay_subscribe'); - - if ($subscribe) - $scope = get_config('system', 'relay_scope'); - else - $scope = ""; - - $tags = array(); - - if ($scope == SR_SCOPE_TAGS) { - - $server_tags = get_config('system', 'relay_server_tags'); - $tagitems = explode(",", $server_tags); - - foreach($tagitems AS $tag) - $tags[trim($tag, "# ")] = trim($tag, "# "); - - if (get_config('system', 'relay_user_tags')) { - $terms = q("SELECT DISTINCT(`term`) FROM `search`"); - - foreach($terms AS $term) { - $tag = trim($term["term"], "#"); - $tags[$tag] = $tag; - } - } - } - - $taglist = array(); - foreach($tags AS $tag) - $taglist[] = $tag; - - $relay = array("subscribe" => $subscribe, - "scope" => $scope, - "tags" => $taglist); - - header('Content-type: application/json; charset=utf-8'); - echo json_encode($relay, JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES); - exit; -} +argc > 1) { + switch ($a->argv[1]) { + case "host-meta": + hostxrd_init($a); + break; + case "x-social-relay": + wk_social_relay(); + break; + case "nodeinfo": + nodeinfo_wellknown($a); + break; + case "webfinger": + xrd_init($a); + break; + } + } + System::httpExit(404); + killme(); +} + +function wk_social_relay() +{ + $subscribe = (bool) Config::get('system', 'relay_subscribe', false); + + if ($subscribe) { + $scope = Config::get('system', 'relay_scope', SR_SCOPE_ALL); + } else { + $scope = SR_SCOPE_NONE; + } + + $tags = []; + + if ($scope == SR_SCOPE_TAGS) { + $server_tags = Config::get('system', 'relay_server_tags'); + $tagitems = explode(",", $server_tags); + + /// @todo Check if it was better to use "strtolower" on the tags + foreach ($tagitems AS $tag) { + $tag = trim($tag, "# "); + $tags[$tag] = $tag; + } + + if (Config::get('system', 'relay_user_tags')) { + $terms = q("SELECT DISTINCT(`term`) FROM `search`"); + + foreach ($terms AS $term) { + $tag = trim($term["term"], "#"); + $tags[$tag] = $tag; + } + } + } + + $taglist = []; + foreach ($tags AS $tag) { + if (!empty($tag)) { + $taglist[] = $tag; + } + } + + $relay = [ + 'subscribe' => $subscribe, + 'scope' => $scope, + 'tags' => $taglist, + 'protocols' => ['diaspora' => ['receive' => System::baseUrl() . '/receive/public'], + 'dfrn' => ['receive' => System::baseUrl() . '/dfrn_notify']] + ]; + + header('Content-type: application/json; charset=utf-8'); + echo json_encode($relay, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); + exit; +}