]> git.mxchange.org Git - friendica.git/blob - mod/_well_known.php
Merge remote-tracking branch 'upstream/develop' into pleroma2
[friendica.git] / mod / _well_known.php
1 <?php
2
3 use Friendica\App;
4 use Friendica\Core\Config;
5
6 require_once("mod/hostxrd.php");
7 require_once("mod/nodeinfo.php");
8 require_once("mod/xrd.php");
9
10 function _well_known_init(App $a) {
11         if ($a->argc > 1) {
12                 switch($a->argv[1]) {
13                         case "host-meta":
14                                 hostxrd_init($a);
15                                 break;
16                         case "x-social-relay":
17                                 wk_social_relay($a);
18                                 break;
19                         case "nodeinfo":
20                                 nodeinfo_wellknown($a);
21                                 break;
22                         case "webfinger":
23                                 xrd_init($a);
24                                 break;
25                 }
26         }
27         http_status_exit(404);
28         killme();
29 }
30
31 function wk_social_relay(App $a) {
32
33         $subscribe = (bool)Config::get('system', 'relay_subscribe', false);
34
35         if ($subscribe) {
36                 $scope = Config::get('system', 'relay_scope', SR_SCOPE_ALL);
37         } else {
38                 $scope = SR_SCOPE_NONE;
39         }
40
41         $tags = array();
42
43         if ($scope == SR_SCOPE_TAGS) {
44                 $server_tags = Config::get('system', 'relay_server_tags');
45                 $tagitems = explode(",", $server_tags);
46
47                 foreach($tagitems AS $tag) {
48                         $tags[trim($tag, "# ")] = trim($tag, "# ");
49                 }
50
51                 if (Config::get('system', 'relay_user_tags')) {
52                         $terms = q("SELECT DISTINCT(`term`) FROM `search`");
53
54                         foreach($terms AS $term) {
55                                 $tag = trim($term["term"], "#");
56                                 $tags[$tag] = $tag;
57                         }
58                 }
59         }
60
61         $taglist = array();
62         foreach($tags AS $tag) {
63                 $taglist[] = $tag;
64         }
65
66         $relay = array("subscribe" => $subscribe,
67                         "scope" => $scope,
68                         "tags" => $taglist);
69
70         header('Content-type: application/json; charset=utf-8');
71         echo json_encode($relay, JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES);
72         exit;
73 }