(async function () { console.log("Starting top_posts"); const API = window.UPVOTE_API; const NUM_BEST = window.NUM_BEST; const res = await fetch(`${API}/posts/best?top=${NUM_BEST}`, { credentials: "include", }); const data = await res.json(); const URL = window.location.origin; const ul = document.getElementById("top-posts"); for (post of data) { const postUrl = post.slug.replace("posts-", ""); const pageUrl = `/posts/${postUrl}`; try { const pageResponse = await fetch(pageUrl); const html = await pageResponse.text(); const doc = new DOMParser().parseFromString(html, "text/html"); const title = doc.querySelector('meta[property="og:title"]')?.content || doc.title || slug; const li = document.createElement("li"); li.innerHTML = ` ${title} `; ul.appendChild(li); } catch (err) { console.error(err); } } })();