X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2F_well_known.php;h=622d7fd93f647e9838e29af57f3649b8f5f02828;hb=6494d05ddeb8117a27490fc8dd140c32581d722c;hp=155810df367ae04c8e516d2c9ccaa1794668dee7;hpb=9c7d5d42e1dc3370a4d371472175e17bc505e5ca;p=friendica.git diff --git a/mod/_well_known.php b/mod/_well_known.php index 155810df36..622d7fd93f 100644 --- a/mod/_well_known.php +++ b/mod/_well_known.php @@ -1,14 +1,68 @@ -argc > 1) { - switch($a->argv[1]) { - case "host-meta": - hostxrd_init($a); - break; - } - } - http_status_exit(404); - killme(); -} \ No newline at end of file +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) { + + $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 = array(); + + if ($scope == SR_SCOPE_TAGS) { + $server_tags = Config::get('system', 'relay_server_tags'); + $tagitems = explode(",", $server_tags); + + foreach($tagitems AS $tag) { + $tags[trim($tag, "# ")] = trim($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 = 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; +}