return get(`https://projecteuler.net/problem=${n}`).then(data => { let getTime = parseInt(marky.stop(getMarker).duration); console.log(`${n} | GET | ${getTime}ms`); marky.mark(parseMarker); let $ = cheerio.load(data); let title = $('h2', '#content').html(); let content = $('.problem_content'); let paragraphs = Array.from($('p', content)) .map(paragraph => { return $(paragraph).html() .replace(' (right click and 'Save Link/Target As...')', '') .replace('×', 'x'); }); // console.log(paragraphs); // TODO: prob 32, note div // TODO: convert <ol> & <ul> // TODO: convert notes // { // let _paragraphs = paragraphs; // for(let i = 0; i < _paragraphs.length; i++) { // _paragraphs.push(_paragraphs[i].html() + '\n\n'); // } // paragraphs = _paragraphs; // } // console.log(paragraphs); // content = content.html(); let links = $('a', '.problem_content'); let files = []; for(let i = 0; i < links.length; i++) { if(!links[i].attribs || !links[i].attribs.href) continue; files.push(links[i].attribs.href) } let parseTime = parseInt(marky.stop(parseMarker).duration); console.log(`${n} | Parse | ${parseTime}ms`); return { title, paragraphs, files, }; });
const measure = (name, fn) => { marky.mark(name) fn() const performanceMeasure = marky.stop(name) return performanceMeasure.duration }
testFn(() => { const entry = marky.stop(options.name + n) stats[options.name].push(entry.duration) cb() })