let area = document.querySelector('#area-main'); let entries = []; let users = {}; let fetchData; async function genTree(treeId) { fetchData = await fetch(`https://scratch.mit.edu/projects/${treeId}/remixtree/bare`) .then(x => x.json()); entries.push(treeId) let entry = fetchData[treeId]; while (entry) { entry = entry.parent_id; entries.push(entry); entry = fetchData[entry]; if (entry) users[entry.username] = true; } return entry; } async function main() { await genTree("946114669"); // latest project await genTree("654605857"); // tree bug here, unavoidable without jank console.log(entries) document.querySelector('.contributors').textContent = Object.keys(users).join(', '); } main(); let i = 0; function sanitize(content) { const decoder = document.createElement('div'); decoder.textContent = content; return decoder.innerHTML; } setInterval(function() { if ((window.innerHeight + window.scrollY) >= document.body.scrollHeight) { let h = ''; for (let j = 0; j < 35; j++) { let entry = entries[i]; h += `
${sanitize(fetchData[entry].title)} [${entries.length - i }]
`; i++; } area.innerHTML += h; } },500);