]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/WellKnown/HostMeta.php
Changes:
[friendica.git] / src / Module / WellKnown / HostMeta.php
index 2ca66f93ba91babf73957cf8ae0b9c4c44da6010..717f13879c15ab26f940e6e59923074616887379 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2010-2022, the Friendica project
+ * @copyright Copyright (C) 2010-2024, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
 namespace Friendica\Module\WellKnown;
 
 use Friendica\BaseModule;
-use Friendica\Core\Renderer;
 use Friendica\Core\System;
 use Friendica\DI;
 use Friendica\Module\Response;
 use Friendica\Protocol\Salmon;
 use Friendica\Util\Crypto;
+use Friendica\Util\XML;
 
 /**
  * Prints the metadata for describing this host
@@ -46,14 +46,50 @@ class HostMeta extends BaseModule
                        $config->set('system', 'site_pubkey', $res['pubkey']);
                }
 
-               $tpl = Renderer::getMarkupTemplate('xrd_host.tpl');
-               $content = Renderer::replaceMacros($tpl, [
-                       '$zhost'  => DI::baseUrl()->getHostname(),
-                       '$zroot'  => DI::baseUrl()->get(),
-                       '$domain' => DI::baseUrl()->get(),
-                       '$bigkey' => Salmon::salmonKey($config->get('system', 'site_pubkey'))
-               ]);
+               $domain = (string)DI::baseUrl();
 
-               System::httpExit($content, Response::TYPE_XML, 'application/xrd+xml');
+               XML::fromArray([
+                       'XRD' => [
+                               '@attributes' => [
+                                       'xmlns'    => 'http://docs.oasis-open.org/ns/xri/xrd-1.0',
+                               ],
+                               'hm:Host' => DI::baseUrl()->getHost(),
+                               '1:link' => [
+                                       '@attributes' => [
+                                               'rel'      => 'lrdd',
+                                               'type'     => 'application/xrd+xml',
+                                               'template' => $domain . '/xrd?uri={uri}'
+                                       ]
+                               ],
+                               '2:link' => [
+                                       '@attributes' => [
+                                               'rel'      => 'lrdd',
+                                               'type'     => 'application/json',
+                                               'template' => $domain . '/.well-known/webfinger?resource={uri}'
+                                       ]
+                               ],
+                               '3:link' => [
+                                       '@attributes' => [
+                                               'rel'  => 'acct-mgmt',
+                                               'href' => $domain . '/amcd'
+                                       ]
+                               ],
+                               '4:link' => [
+                                       '@attributes' => [
+                                               'rel'  => 'http://services.mozilla.com/amcd/0.1',
+                                               'href' => $domain . '/amcd'
+                                       ]
+                               ],
+                               'Property' => [
+                                       '@attributes' => [
+                                               'type'      => 'http://salmon-protocol.org/ns/magic-key',
+                                               'mk:key_id' => '1'
+                                       ],
+                                       Salmon::salmonKey($config->get('system', 'site_pubkey'))
+                               ]
+                       ],
+               ], $xml, false, ['hm' => 'http://host-meta.net/xrd/1.0', 'mk' => 'http://salmon-protocol.org/ns/magic-key']);
+
+               $this->httpExit($xml->saveXML(), Response::TYPE_XML, 'application/xrd+xml');
        }
 }