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