generative js

master
Michael Murtaugh 1 year ago
parent 1866681540
commit f3bcec732b

@ -9,24 +9,36 @@ function choice (arr) {
return ret;
}
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']);
function make_phrase (nn, terms) {
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']);
}
const sleep = delaysecs => new Promise(resolve => setTimeout(resolve, delaysecs*1000));
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();
while (true) {
let nn = template.cloneNode(true);
call.appendChild(nn);
make_phrase(nn, terms);
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;
}
template.style.visibility = "hidden";
});
await (sleep(0.1));
}
}
make_phrases();

Loading…
Cancel
Save