<?php require_once("mod/hostxrd.php"); require_once("mod/nodeinfo.php"); function _well_known_init(&$a){ 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; }