From 8974c147e03df876a7225af4412f4f79e4582b9c Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Sun, 9 Aug 2015 08:31:42 +0200 Subject: [PATCH] First steps for a public relay for posts. --- mod/_well_known.php | 50 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 41 insertions(+), 9 deletions(-) diff --git a/mod/_well_known.php b/mod/_well_known.php index 6792d36fe0..5c8a3380fd 100644 --- a/mod/_well_known.php +++ b/mod/_well_known.php @@ -2,13 +2,45 @@ require_once("mod/hostxrd.php"); function _well_known_init(&$a){ - if ($a->argc > 1) { - switch($a->argv[1]) { - case "host-meta": - hostxrd_init($a); - break; - } - } - http_status_exit(404); - killme(); + if ($a->argc > 1) { + switch($a->argv[1]) { + case "host-meta": + hostxrd_init($a); + break; + case "x-social-relay": + wk_social_relay($a); + break; + } + } + http_status_exit(404); + killme(); +} + +function wk_social_relay(&$a) { + + define('SR_SCOPE_ALL', 'all'); + define('SR_SCOPE_TAGS', 'tags'); + + $subscribe = (bool)true; + $scope = SR_SCOPE_ALL; + //$scope = SR_SCOPE_TAGS; + + $tags = array(); + + if ($scope == SR_SCOPE_TAGS) { + $terms = q("SELECT DISTINCT(`term`) FROM `search`"); + + foreach($terms AS $term) { + $tag = trim($term["term"], "#"); + $tags[] = $tag; + } + } + + $relay = array("subscribe" => $subscribe, + "scope" => $scope, + "tags" => array_unique($tags)); + + header('Content-type: application/json; charset=utf-8'); + echo json_encode($relay, true); + exit; }