'use strict'; const fs = require('fs').promises; const linkify = require('linkify-it')(); const questions = require('./jeopardy_raw.json'); async function init() { const curatedQuestions = await Promise.all(questions.map(async (question) => { const links = linkify.match(question.question); if (links?.length > 0 || /\[jpe?g\]/.test(question.question)) { console.log(`Discarding question due URL: ${question.question}`); return null; } return { ...question, question: question.question.replace(/^'|'$/g, ''), answer: question.answer .replace(/"|\\/g, '') // strip off quotes and backslashes first, to make sure they don't get in the way of stripping off articles from the beginning of a string .replace(/^(the|an|a)\b(?!-)\s*|\(.*\)\s*/gi, '') .trim(), fullAnswer: question.answer.replace(/\\/g, ''), }; })); await fs.writeFile('assets/jeopardy.json', JSON.stringify(curatedQuestions.filter(Boolean), null, 4)); } init();