Tune AP URL negotiating with Accept (#3824)
This commit is contained in:
parent
96515c4544
commit
41e3a9a004
2 changed files with 31 additions and 3 deletions
|
@ -83,7 +83,7 @@ router.get('/notes/:note', async (ctx, next) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.body = pack(await renderNote(note, false));
|
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);
|
setResponseType(ctx);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -162,7 +162,9 @@ async function userInfo(ctx: Router.IRouterContext, user: IUser) {
|
||||||
setResponseType(ctx);
|
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)) {
|
if (!ObjectID.isValid(ctx.params.user)) {
|
||||||
ctx.status = 404;
|
ctx.status = 404;
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -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
|
// Note
|
||||||
router.get('/notes/:note', async ctx => {
|
router.get('/notes/:note', async ctx => {
|
||||||
if (ObjectID.isValid(ctx.params.note)) {
|
if (ObjectID.isValid(ctx.params.note)) {
|
||||||
|
@ -159,7 +180,12 @@ router.get('/notes/:note', async ctx => {
|
||||||
note: _note,
|
note: _note,
|
||||||
summary: getNoteSummary(_note)
|
summary: getNoteSummary(_note)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
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');
|
ctx.set('Cache-Control', 'private, max-age=0, must-revalidate');
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue