function randint (from, to) { return from + Math.floor((Math.random() * (to-from))); } function choice (arr) { let ri = randint(0, arr.length-1); let ret = arr[ri]; arr.splice(ri, 1); return ret; } async function make_phrase (nn, terms, delay) { nn.querySelector(".actor").innerHTML = choice(terms['actor']); await sleep(delay); nn.querySelector(".action").innerHTML = choice(terms['action']); await sleep(delay); if (randint(0, 2) == 0) { nn.querySelector(".prefix").innerHTML = choice(terms['prefix'])+'-'; } else { nn.querySelector(".prefix").remove(); } nn.querySelector(".sort").innerHTML = choice(terms['sort']); await sleep(delay); nn.querySelector(".media").innerHTML = choice(terms['media']); } const sleep = delaysecs => new Promise(resolve => setTimeout(resolve, delaysecs*1000)); let limit = 25; async function make_phrases () { let terms = await (await fetch("terms.json")).json(); // console.log("terms", terms); let call = document.querySelector("#call"); let template = call.querySelector(".phrase"); template.remove(); let count = 0; while (true) { let nn = template.cloneNode(true); call.appendChild(nn); await make_phrase(nn, terms, 0.25); if (terms['actor'].length == 0 || terms['action'].length == 0 || terms['prefix'].length == 0 || terms['sort'].length == 0 || terms['media'].length == 0) { console.log("out of terms, stopping"); break; } count += 1; if (limit > 0 && count>=limit) { break }; await (sleep(1.0)); } } make_phrases(); // fetch("terms.json") // .then(response => response.json()) // .then(terms => { // console.log("terms", terms); // let call = document.querySelector("#call"); // let template = call.querySelector(".phrase"); // for (var i=0; i<20; i++) { // let nn = template.cloneNode(true); // call.appendChild(nn); // nn.querySelector(".actor").innerHTML = choice(terms['actor']); // nn.querySelector(".action").innerHTML = choice(terms['action']); // if (randint(0, 2) == 0) { // nn.querySelector(".prefix").innerHTML = choice(terms['prefix']) + '-'; // } else { // nn.querySelector(".prefix").remove(); // } // nn.querySelector(".sort").innerHTML = choice(terms['sort']); // nn.querySelector(".media").innerHTML = choice(terms['media']); // } // template.style.display = "none"; // });