// Generated by CoffeeScript 2.5.1 (function() { var Mercury, log, original_text; Mercury = require('@postlight/mercury-parser'); log = require('./log.js'); original_text = (app) => { var DEV; DEV = process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'docker' || process.env.NODE_ENV === 'debug'; log.debug("Starting NewsBlur Original Text Fetcher / Mercury Parser..."); if (!DEV && !process.env.NODE_ENV) { log.debug("Specify NODE_ENV="); return; } else if (DEV) { log.debug("Running as development server"); } else { log.debug("Running as production server"); } return app.get(/\/rss_feeds\/original_text_fetcher\/?/, (req, res) => { var api_key, url; res.setHeader('Content-Type', 'application/json'); if (req.query.test) { return res.end("OK"); } url = req.query.url; if (!url) { log.debug("Missing url"); return res.end(JSON.stringify({ error: "Missing `url` query parameter." })); } api_key = req.header('x-api-key') || req.query.apikey; if (!DEV && (!api_key || api_key.indexOf("djtXZrSIEfDa3Dex9FQ9AR") === -1)) { log.debug(`Mismatched API key: ${url} / ${api_key}`); return res.end(JSON.stringify({ error: "Invalid API key. You need to set up your own Original Text server." })); } return Mercury.parse(url).then((result) => { log.debug(`Fetched: ${url}`); return res.end(JSON.stringify(result)); }).catch((error) => { log.debug(`Failed to fetch: ${url}: ${error}`); // throw new Error("Failed to fetch: #{url}: #{error}") return res.end(JSON.stringify({ error: `Failed to fetch ${url}: ${error}` })); }); }); }; exports.original_text = original_text; }).call(this);