diff options
Diffstat (limited to 'routes')
| -rw-r--r-- | routes/actor.php | 4 | ||||
| -rw-r--r-- | routes/user.php | 30 |
2 files changed, 34 insertions, 0 deletions
diff --git a/routes/actor.php b/routes/actor.php index 021b9f8..51c0e1a 100644 --- a/routes/actor.php +++ b/routes/actor.php @@ -1,6 +1,7 @@ <?php use Digitigrade\HttpResponseStatus\NotFound; +use Digitigrade\HttpResponseStatus\TemporaryRedirect; use Digitigrade\Model\Actor; use Digitigrade\Model\Note; use Digitigrade\Router; @@ -10,6 +11,9 @@ Router::getInstance()->mount('/user/:handle', function (array $args) { if ($actor == null) { throw new NotFound("i don't know any local user called " . $args['handle']); } + if (str_contains($_SERVER['HTTP_ACCEPT'], 'text/html')) { + throw new TemporaryRedirect(path_to_uri("/@/$actor->handle")); + } json_response($actor); }); diff --git a/routes/user.php b/routes/user.php new file mode 100644 index 0000000..5532448 --- /dev/null +++ b/routes/user.php @@ -0,0 +1,30 @@ +<?php + +use Digitigrade\HttpResponseStatus\NotFound; +use Digitigrade\Model\Actor; +use Digitigrade\Router; + +Router::getInstance()->mount('/@/:handle', function (array $args) { + $actor = Actor::findLocalByHandle($args['handle']); + if ($actor == null) { + throw new NotFound("i don't know any local user called " . $args['handle']); + } + + ?> + <!DOCTYPE html> + <html> + + <head> + <title><?= $actor->displayName ?> (@<?= $actor->handle ?>)</title> + </head> + + <body> + <h1><?= $actor->displayName ?></h1> + <p>@<?= $actor->handle ?></p> + <hr> + <p><?= $actor->bio ?></p> + </body> + + </html> + <?php +});
\ No newline at end of file |
