async function loadPublicStreams() { const grid = document.getElementById('stream-grid'); const empty = document.getElementById('streams-empty'); try { const resp = await fetch('/api/streams/public'); const streams = await resp.json(); if (!streams || streams.length === 0) { grid.innerHTML = ''; empty.style.display = ''; return; } empty.style.display = 'none'; grid.innerHTML = streams.map(s => streamCard(s, !!currentUser)).join(''); } catch (e) { console.error('Failed to load streams:', e); grid.innerHTML = ''; empty.style.display = ''; } } async function loadMyStreams() { const grid = document.getElementById('my-stream-grid'); const empty = document.getElementById('mine-empty'); try { const resp = await fetch('/api/streams/mine'); const streams = await resp.json(); if (!streams || streams.length === 0) { grid.innerHTML = ''; empty.style.display = ''; return; } empty.style.display = 'none'; grid.innerHTML = streams.map(s => streamCard(s, true)).join(''); } catch (e) { console.error('Failed to load my streams:', e); } } async function loadRedditLinks() { const list = document.getElementById('reddit-list'); const empty = document.getElementById('reddit-empty'); try { const [scrapedResp, streamsResp] = await Promise.all([ fetch('/api/scraped'), fetch('/api/streams/public') ]); const links = await scrapedResp.json(); const streams = await streamsResp.json(); const importedURLs = new Set((streams || []).map(s => s.url)); if (!links || links.length === 0) { list.innerHTML = ''; empty.style.display = ''; return; } empty.style.display = 'none'; list.innerHTML = links.map(l => { const imported = importedURLs.has(l.url); const actionHtml = imported ? `Imported` : ``; return `
No streams have been submitted yet.