X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2F_well_known.php;h=33070a1ecdf4dc071d65aabd94b67f530be47efe;hb=4631c13d083b49753acc8a8eae18503ea554afe3;hp=155810df367ae04c8e516d2c9ccaa1794668dee7;hpb=bb68461c6dec9d0ef1a8415fd66a5e8eac2558f3;p=friendica.git diff --git a/mod/_well_known.php b/mod/_well_known.php index 155810df36..33070a1ecd 100644 --- a/mod/_well_known.php +++ b/mod/_well_known.php @@ -1,14 +1,66 @@ argc > 1) { - switch($a->argv[1]) { - case "host-meta": - hostxrd_init($a); - break; - } - } - http_status_exit(404); - killme(); -} \ No newline at end of file + if ($a->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(&$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; +}