summaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorMeiMei <30769358+mei23@users.noreply.github.com>2019-01-02 18:07:32 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2019-01-02 18:07:32 +0900
commit41e3a9a004b53fb81f8250d6d0fc369445e69037 (patch)
treed98f508988d14be000cfb498c093dfbf81a907f5 /src/server
parentResolve #3813 (#3814) (diff)
downloadmisskey-41e3a9a004b53fb81f8250d6d0fc369445e69037.tar.gz
misskey-41e3a9a004b53fb81f8250d6d0fc369445e69037.tar.bz2
misskey-41e3a9a004b53fb81f8250d6d0fc369445e69037.zip
Tune AP URL negotiating with Accept (#3824)
Diffstat (limited to 'src/server')
-rw-r--r--src/server/activitypub.ts6
-rw-r--r--src/server/web/index.ts28
2 files changed, 31 insertions, 3 deletions
diff --git a/src/server/activitypub.ts b/src/server/activitypub.ts
index 42d90ab91f..9adc3dd943 100644
--- a/src/server/activitypub.ts
+++ b/src/server/activitypub.ts
@@ -83,7 +83,7 @@ router.get('/notes/:note', async (ctx, next) => {
}
ctx.body = pack(await renderNote(note, false));
- ctx.set('Cache-Control', 'private, max-age=0, must-revalidate');
+ ctx.set('Cache-Control', 'public, max-age=180');
setResponseType(ctx);
});
@@ -162,7 +162,9 @@ async function userInfo(ctx: Router.IRouterContext, user: IUser) {
setResponseType(ctx);
}
-router.get('/users/:user', async ctx => {
+router.get('/users/:user', async (ctx, next) => {
+ if (!isActivityPubReq(ctx)) return await next();
+
if (!ObjectID.isValid(ctx.params.user)) {
ctx.status = 404;
return;
diff --git a/src/server/web/index.ts b/src/server/web/index.ts
index 998fd2adf2..59b8390ab5 100644
--- a/src/server/web/index.ts
+++ b/src/server/web/index.ts
@@ -148,6 +148,27 @@ router.get('/@:user', async (ctx, next) => {
}
});
+router.get('/users/:user', async ctx => {
+ if (!ObjectID.isValid(ctx.params.user)) {
+ ctx.status = 404;
+ return;
+ }
+
+ const userId = new ObjectID(ctx.params.user);
+
+ const user = await User.findOne({
+ _id: userId,
+ host: null
+ });
+
+ if (user === null) {
+ ctx.status = 404;
+ return;
+ }
+
+ ctx.redirect(`/@${user.username}${ user.host == null ? '' : '@' + user.host}`);
+});
+
// Note
router.get('/notes/:note', async ctx => {
if (ObjectID.isValid(ctx.params.note)) {
@@ -159,7 +180,12 @@ router.get('/notes/:note', async ctx => {
note: _note,
summary: getNoteSummary(_note)
});
- ctx.set('Cache-Control', 'private, max-age=0, must-revalidate');
+
+ if (['public', 'home'].includes(note.visibility)) {
+ ctx.set('Cache-Control', 'public, max-age=180');
+ } else {
+ ctx.set('Cache-Control', 'private, max-age=0, must-revalidate');
+ }
return;
}