* @copyright 2018, Maxence Lange * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . * */ namespace OCA\Social; use Exception; use OCA\Social\Service\ActorService; use OCP\AppFramework\QueryException; require_once(__DIR__ . '/../appinfo/autoload.php'); if (!array_key_exists('resource', $_GET)) { echo 'missing resource'; exit(); } $subject = $_GET['resource']; $urlGenerator = \OC::$server->getURLGenerator(); list($type, $account) = explode(':', $subject, 2); if ($type !== 'acct') { echo 'no acct'; exit(); } $username = substr($account, 0, strrpos($account, '@')); /** @var ActorService $actorService */ try { $actorService = \OC::$server->query(ActorService::class); $actorService->getActor($username); } catch (Exception $e) { http_response_code(404); exit; } $finger = [ 'subject' => $subject, 'links' => [ [ 'rel' => 'self', 'type' => 'application/activity+json', 'href' => $urlGenerator->linkToRouteAbsolute( 'social.ActivityPub.actorAlias', ['username' => $username] ) ] ] ]; header('Content-type: application/json'); echo json_encode($finger);