From e1bf279bb5d6474116ffb8d5b4e5d9875ebb0025 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?= Date: Fri, 4 Oct 2019 10:29:28 +0900 Subject: [PATCH] Fix #5468 (#5470) * Update activitypub.ts * Update activitypub.ts * Update activitypub.ts * Update activitypub.ts * fix type error * trust the module * remove space * accept charset --- src/server/activitypub.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/server/activitypub.ts b/src/server/activitypub.ts index 6c8a2b915..92e23380c 100644 --- a/src/server/activitypub.ts +++ b/src/server/activitypub.ts @@ -40,18 +40,21 @@ function inbox(ctx: Router.RouterContext) { ctx.status = 202; } +const ACTIVITY_JSON = 'application/activity+json; charset=utf-8'; +const LD_JSON = 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"; charset=utf-8'; + function isActivityPubReq(ctx: Router.RouterContext) { ctx.response.vary('Accept'); - const accepted = ctx.accepts('html', 'application/activity+json', 'application/ld+json'); - return ['application/activity+json', 'application/ld+json'].includes(accepted as string); + const accepted = ctx.accepts('html', ACTIVITY_JSON, LD_JSON); + return typeof accepted === 'string' && !accepted.match(/html/); } export function setResponseType(ctx: Router.RouterContext) { - const accept = ctx.accepts('application/activity+json', 'application/ld+json'); - if (accept === 'application/ld+json') { - ctx.response.type = 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"; charset=utf-8'; + const accept = ctx.accepts(ACTIVITY_JSON, LD_JSON); + if (accept === LD_JSON) { + ctx.response.type = LD_JSON; } else { - ctx.response.type = 'application/activity+json; charset=utf-8'; + ctx.response.type = ACTIVITY_JSON; } }