]> git.mxchange.org Git - friendica.git/blobdiff - mod/xrd.php
Storing the protocol while following a contact
[friendica.git] / mod / xrd.php
index 2626b0c791a1d156b7a913808bf9d7ba09d1b1ae..b4cb60afed68c7b1c80b27a61cc0e84ab8b90a07 100644 (file)
@@ -4,19 +4,21 @@
  */
 
 use Friendica\App;
-use Friendica\Core\Addon;
+use Friendica\Core\Hook;
+use Friendica\Core\Renderer;
 use Friendica\Core\System;
 use Friendica\Database\DBA;
 use Friendica\Protocol\Salmon;
+use Friendica\Util\Strings;
 
 function xrd_init(App $a)
 {
        if ($a->argv[0] == 'xrd') {
                if (empty($_GET['uri'])) {
-                       killme();
+                       System::httpExit(404);
                }
 
-               $uri = urldecode(notags(trim($_GET['uri'])));
+               $uri = urldecode(Strings::escapeTags(trim($_GET['uri'])));
                if (defaults($_SERVER, 'HTTP_ACCEPT', '') == 'application/jrd+json') {
                        $mode = 'json';
                } else {
@@ -24,10 +26,10 @@ function xrd_init(App $a)
                }
        } else {
                if (empty($_GET['resource'])) {
-                       killme();
+                       System::httpExit(404);
                }
 
-               $uri = urldecode(notags(trim($_GET['resource'])));
+               $uri = urldecode(Strings::escapeTags(trim($_GET['resource'])));
                if (defaults($_SERVER, 'HTTP_ACCEPT', '') == 'application/xrd+xml') {
                        $mode = 'xml';
                } else {
@@ -48,7 +50,7 @@ function xrd_init(App $a)
 
        $user = DBA::selectFirst('user', [], ['nickname' => $name]);
        if (!DBA::isResult($user)) {
-               killme();
+               System::httpExit(404);
        }
 
        $profile_url = System::baseUrl().'/profile/'.$user['nickname'];
@@ -61,13 +63,13 @@ function xrd_init(App $a)
        }
 
        if ($mode == 'xml') {
-               xrd_xml($a, $addr, $alias, $profile_url, $user);
+               xrd_xml($addr, $alias, $profile_url, $user);
        } else {
-               xrd_json($a, $addr, $alias, $profile_url, $user);
+               xrd_json($addr, $alias, $profile_url, $user);
        }
 }
 
-function xrd_json($a, $uri, $alias, $profile_url, $r)
+function xrd_json($uri, $alias, $profile_url, $r)
 {
        $salmon_key = Salmon::salmonKey($r['spubkey']);
 
@@ -90,24 +92,24 @@ function xrd_json($a, $uri, $alias, $profile_url, $r)
                        ['rel' => 'http://salmon-protocol.org/ns/salmon-mention', 'href' => System::baseUrl().'/salmon/'.$r['nickname'].'/mention'],
                        ['rel' => 'http://ostatus.org/schema/1.0/subscribe', 'template' => System::baseUrl().'/follow?url={uri}'],
                        ['rel' => 'magic-public-key', 'href' => 'data:application/magic-public-key,'.$salmon_key],
-                       ['rel' => 'http://purl.org/openwebauth/v1', 'type' => 'application/x-dfrn+json', 'href' => System::baseUrl().'/owa']
+                       ['rel' => 'http://purl.org/openwebauth/v1', 'type' => 'application/x-zot+json', 'href' => System::baseUrl().'/owa']
                ]
        ];
 
        echo json_encode($json);
-       killme();
+       exit();
 }
 
-function xrd_xml($a, $uri, $alias, $profile_url, $r)
+function xrd_xml($uri, $alias, $profile_url, $r)
 {
        $salmon_key = Salmon::salmonKey($r['spubkey']);
 
        header('Access-Control-Allow-Origin: *');
        header("Content-type: text/xml");
 
-       $tpl = get_markup_template('xrd_person.tpl');
+       $tpl = Renderer::getMarkupTemplate('xrd_person.tpl');
 
-       $o = replace_macros($tpl, [
+       $o = Renderer::replaceMacros($tpl, [
                '$nick'        => $r['nickname'],
                '$accturi'     => $uri,
                '$alias'       => $alias,
@@ -125,8 +127,8 @@ function xrd_xml($a, $uri, $alias, $profile_url, $r)
        );
 
        $arr = ['user' => $r, 'xml' => $o];
-       Addon::callHooks('personal_xrd', $arr);
+       Hook::callAll('personal_xrd', $arr);
 
        echo $arr['xml'];
-       killme();
+       exit();
 }