From 61e5589db30fecd0364d84d917ab24dc2e8672cf Mon Sep 17 00:00:00 2001 From: Ceda EI Date: Sat, 29 Jun 2019 14:36:25 +0530 Subject: [PATCH] [feature] Add better raw mode detection. Enable raw mode if - useragent has curl and raw mode is not set to 0, n or false - raw mode is set to something other than 0, false, n --- routes/getSnippet.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/routes/getSnippet.js b/routes/getSnippet.js index 1ef0eb3..d111c10 100644 --- a/routes/getSnippet.js +++ b/routes/getSnippet.js @@ -4,7 +4,20 @@ module.exports = (req, res) => { const { models, mongoose } = req; const [ id, language ] = (req.params.id || '').split('.'); - const rawMode = Boolean(req.query.raw); + // Check if raw mode is set OR (useragent has curl AND raw mode is not false) + const rawMode = + ( + req.query.raw !== undefined && + req.query.raw !== "0" && + req.query.raw.toLowerCase() !== "false" && + req.query.raw.toLowerCase() !== "n" + ) || + ( + req.headers['user-agent'].toLowerCase().includes("curl") && + req.query.raw !== "0" && + req.query.raw.toLowerCase() === "false" && + req.query.raw.toLowerCase() === "n" + ); return models.snippets.findOne({ _id: mongoose.Types.ObjectId(id) }) .then(doc => { if (!doc) {