SVNからのミラー
This commit is contained in:
151
src/Site/Controller/Fediverse.php
Normal file
151
src/Site/Controller/Fediverse.php
Normal file
@@ -0,0 +1,151 @@
|
||||
<?php
|
||||
namespace Site\Controller;
|
||||
|
||||
use Site\Controller\BlogPost;
|
||||
use Site\Controller\Mods;
|
||||
use Site\Lib\Activitypub;
|
||||
|
||||
class Fediverse extends BlogPost {
|
||||
use Mods;
|
||||
|
||||
/**
|
||||
* @param array $params パラメータ配列
|
||||
* @return void
|
||||
*/
|
||||
public function apfinger(array $params): void {
|
||||
try {
|
||||
header('Content-Type: application/jrd+json');
|
||||
$ap = new Activitypub();
|
||||
echo $ap->getWebfinger();
|
||||
exit;
|
||||
} catch (\Exception $e) {
|
||||
header('Content-Type: text/plain; charset=utf-8');
|
||||
echo 'フェディバースの作成に失敗: '.$e->getMessage();
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $params パラメータ配列
|
||||
* @return void
|
||||
*/
|
||||
public function apactor(array $params): void {
|
||||
try {
|
||||
header('Content-Type: application/activity+json');
|
||||
$ap = new Activitypub();
|
||||
echo $ap->getActor();
|
||||
exit;
|
||||
} catch (\Exception $e) {
|
||||
header('Content-Type: text/plain; charset=utf-8');
|
||||
echo 'フェディバースの作成に失敗: '.$e->getMessage();
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $params パラメータ配列
|
||||
* @return void
|
||||
*/
|
||||
public function apinbox(array $params): void {
|
||||
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
||||
header('HTTP/1.1 405 Method Not Allowed');
|
||||
header('Allow: POST');
|
||||
exit;
|
||||
}
|
||||
|
||||
$input = file_get_contents('php://input');
|
||||
$activity = json_decode($input, true);
|
||||
if (!$activity || !isset($activity['type'])) {
|
||||
header('HTTP/1.1 400 Bad Request');
|
||||
header('Content-Type: application/activity+json');
|
||||
echo json_encode(['error' => '不正なアクティビティ']);
|
||||
exit;
|
||||
}
|
||||
|
||||
logger(\LogType::ActivityPub, "受付に入れた:".json_encode($activity));
|
||||
|
||||
try {
|
||||
header('Content-Type: application/activity+json');
|
||||
$ap = new Activitypub();
|
||||
$ap->postInbox($activity);
|
||||
exit;
|
||||
} catch (\Exception $e) {
|
||||
header('Content-Type: text/plain; charset=utf-8');
|
||||
echo 'フェディバースの作成に失敗: '.$e->getMessage();
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $params パラメータ配列
|
||||
* @return void
|
||||
*/
|
||||
public function apactivity(array $params): void {
|
||||
$uuid = '';
|
||||
if (isset($params['uuid'])) $uuid = $params['uuid'];
|
||||
|
||||
try {
|
||||
header('Content-Type: application/activity+json');
|
||||
$posts = $this->getPosts('/blog/');
|
||||
$ap = new Activitypub($posts);
|
||||
echo $ap->getActivity($uuid);
|
||||
exit;
|
||||
} catch (\Exception $e) {
|
||||
header('Content-Type: text/plain; charset=utf-8');
|
||||
echo 'フェディバースの作成に失敗: '.$e->getMessage();
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $params パラメータ配列
|
||||
* @return void
|
||||
*/
|
||||
public function apoutbox(array $params): void {
|
||||
try {
|
||||
header('Content-Type: application/activity+json');
|
||||
$posts = $this->getPosts('/blog/');
|
||||
$ap = new Activitypub($posts);
|
||||
echo $ap->getOutbox();
|
||||
exit;
|
||||
} catch (\Exception $e) {
|
||||
header('Content-Type: text/plain; charset=utf-8');
|
||||
echo 'フェディバースの作成に失敗: '.$e->getMessage();
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $params パラメータ配列
|
||||
* @return void
|
||||
*/
|
||||
public function apfollowers(array $params): void {
|
||||
try {
|
||||
header('Content-Type: application/activity+json');
|
||||
$ap = new Activitypub();
|
||||
echo $ap->getFollowers();
|
||||
exit;
|
||||
} catch (\Exception $e) {
|
||||
header('Content-Type: text/plain; charset=utf-8');
|
||||
echo 'フェディバースの作成に失敗: '.$e->getMessage();
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $params パラメータ配列
|
||||
* @return void
|
||||
*/
|
||||
public function apfollowing(array $params): void {
|
||||
try {
|
||||
header('Content-Type: application/activity+json');
|
||||
$ap = new Activitypub();
|
||||
echo $ap->getFollowing();
|
||||
exit;
|
||||
} catch (\Exception $e) {
|
||||
header('Content-Type: text/plain; charset=utf-8');
|
||||
echo 'フェディバースの作成に失敗: '.$e->getMessage();
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user