throw new Error('Your configuration files miss keys: ' + missed)
}
-import { API_VERSION, CONFIG, STATIC_PATHS } from './server/initializers/constants'
+import { ACCEPT_HEADERS, API_VERSION, CONFIG, STATIC_PATHS } from './server/initializers/constants'
checkFFmpeg(CONFIG)
const errorMessage = checkConfig()
// Always serve index client page (the client is a single page application, let it handle routing)
app.use('/*', function (req, res) {
- if (req.accepts('html')) {
+ if (req.accepts(ACCEPT_HEADERS) === 'html') {
return res.sendFile(path.join(__dirname, '../client/dist/index.html'))
}
}
}
+const ACCEPT_HEADERS = ACTIVITY_PUB.POTENTIAL_ACCEPT_HEADERS.concat('html', 'application/json')
+
// ---------------------------------------------------------------------------
const OPENGRAPH_AND_OEMBED_COMMENT = '<!-- open graph and oembed tags -->'
export {
API_VERSION,
+ ACCEPT_HEADERS,
BCRYPT_SALT_SIZE,
CACHE,
CONFIG,
import { ActivityPubSignature } from '../../shared'
import { isSignatureVerified, logger } from '../helpers'
import { database as db } from '../initializers'
-import { ACTIVITY_PUB } from '../initializers/constants'
+import { ACCEPT_HEADERS, ACTIVITY_PUB } from '../initializers/constants'
import { fetchRemoteAccount, saveAccountAndServerIfNotExist } from '../lib/activitypub/account'
async function checkSignature (req: Request, res: Response, next: NextFunction) {
function executeIfActivityPub (fun: RequestHandler | RequestHandler[]) {
return (req: Request, res: Response, next: NextFunction) => {
- if (!req.accepts(ACTIVITY_PUB.POTENTIAL_ACCEPT_HEADERS)) {
+ const accepted = req.accepts(ACCEPT_HEADERS)
+ if (accepted === false || ACTIVITY_PUB.POTENTIAL_ACCEPT_HEADERS.indexOf(accepted) === -1) {
return next()
}